@angular/compiler-cli 9.0.3 → 9.0.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 (71) hide show
  1. package/ngcc/index.d.ts +2 -2
  2. package/ngcc/index.js +4 -3
  3. package/ngcc/main-ngcc.js +4 -3
  4. package/ngcc/src/dependencies/dependency_resolver.d.ts +7 -1
  5. package/ngcc/src/dependencies/dependency_resolver.js +20 -6
  6. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.d.ts +3 -2
  7. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +36 -21
  8. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +15 -10
  9. package/ngcc/src/execution/api.d.ts +2 -4
  10. package/ngcc/src/execution/api.js +1 -1
  11. package/ngcc/src/execution/cluster/executor.d.ts +2 -2
  12. package/ngcc/src/execution/cluster/executor.js +1 -1
  13. package/ngcc/src/execution/cluster/master.js +15 -8
  14. package/ngcc/src/execution/single_process_executor.d.ts +13 -7
  15. package/ngcc/src/execution/single_process_executor.js +55 -38
  16. package/ngcc/src/execution/utils.js +1 -1
  17. package/ngcc/src/host/commonjs_host.js +2 -7
  18. package/ngcc/src/host/delegating_host.d.ts +44 -0
  19. package/ngcc/src/host/delegating_host.js +146 -0
  20. package/ngcc/src/host/esm5_host.js +1 -7
  21. package/ngcc/src/host/umd_host.js +2 -7
  22. package/ngcc/src/locking/lock_file.d.ts +29 -0
  23. package/ngcc/src/locking/lock_file.js +17 -0
  24. package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +41 -0
  25. package/ngcc/src/locking/lock_file_with_child_process/index.js +91 -0
  26. package/ngcc/src/locking/lock_file_with_child_process/unlocker.d.ts +2 -0
  27. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +44 -0
  28. package/ngcc/src/locking/lock_file_with_child_process/util.d.ts +17 -0
  29. package/ngcc/src/locking/lock_file_with_child_process/util.js +42 -0
  30. package/ngcc/src/locking/sync_locker.d.ts +36 -0
  31. package/ngcc/src/locking/sync_locker.js +67 -0
  32. package/ngcc/src/logging/console_logger.d.ts +3 -9
  33. package/ngcc/src/logging/console_logger.js +16 -15
  34. package/ngcc/src/logging/logger.d.ts +7 -0
  35. package/ngcc/src/logging/logger.js +8 -1
  36. package/ngcc/src/main.js +32 -24
  37. package/ngcc/src/packages/build_marker.d.ts +1 -1
  38. package/ngcc/src/packages/build_marker.js +1 -1
  39. package/ngcc/src/packages/configuration.d.ts +8 -0
  40. package/ngcc/src/packages/configuration.js +2 -2
  41. package/ngcc/src/packages/entry_point.d.ts +26 -2
  42. package/ngcc/src/packages/entry_point.js +34 -24
  43. package/ngcc/src/packages/transformer.js +8 -4
  44. package/ngcc/src/rendering/dts_renderer.js +2 -2
  45. package/ngcc/src/rendering/renderer.js +2 -2
  46. package/ngcc/src/rendering/source_maps.d.ts +2 -1
  47. package/ngcc/src/rendering/source_maps.js +24 -13
  48. package/ngcc/src/sourcemaps/segment_marker.d.ts +7 -15
  49. package/ngcc/src/sourcemaps/segment_marker.js +12 -41
  50. package/ngcc/src/sourcemaps/source_file.d.ts +31 -4
  51. package/ngcc/src/sourcemaps/source_file.js +130 -37
  52. package/package.json +2 -2
  53. package/src/ngtsc/annotations/src/directive.js +3 -2
  54. package/src/ngtsc/core/api/index.d.ts +11 -0
  55. package/src/ngtsc/core/api/index.js +20 -0
  56. package/src/ngtsc/core/api/src/interfaces.d.ts +65 -0
  57. package/src/ngtsc/core/api/src/interfaces.js +20 -0
  58. package/src/ngtsc/core/api/src/options.d.ts +32 -0
  59. package/src/ngtsc/core/api/src/options.js +20 -0
  60. package/src/ngtsc/core/{api.d.ts → api/src/public_options.d.ts} +14 -81
  61. package/src/ngtsc/core/api/src/public_options.js +20 -0
  62. package/src/ngtsc/diagnostics/src/error_code.d.ts +9 -0
  63. package/src/ngtsc/diagnostics/src/error_code.js +10 -1
  64. package/src/ngtsc/scope/src/local.js +50 -47
  65. package/src/ngtsc/typecheck/src/oob.d.ts +10 -0
  66. package/src/ngtsc/typecheck/src/oob.js +14 -1
  67. package/src/ngtsc/typecheck/src/type_check_block.js +11 -2
  68. package/src/version.js +1 -1
  69. package/ngcc/src/execution/lock_file.d.ts +0 -43
  70. package/ngcc/src/execution/lock_file.js +0 -129
  71. package/src/ngtsc/core/api.js +0 -20
@@ -0,0 +1,91 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/index", ["require", "exports", "child_process", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/ngcc/src/logging/logger", "@angular/compiler-cli/ngcc/src/locking/lock_file", "@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * @license
14
+ * Copyright Google Inc. All Rights Reserved.
15
+ *
16
+ * Use of this source code is governed by an MIT-style license that can be
17
+ * found in the LICENSE file at https://angular.io/license
18
+ */
19
+ var child_process_1 = require("child_process");
20
+ var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
21
+ var logger_1 = require("@angular/compiler-cli/ngcc/src/logging/logger");
22
+ var lock_file_1 = require("@angular/compiler-cli/ngcc/src/locking/lock_file");
23
+ var util_1 = require("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util");
24
+ /// <reference types="node" />
25
+ /**
26
+ * This `LockFile` implementation uses a child-process to remove the lock file when the main process
27
+ * exits (for whatever reason).
28
+ *
29
+ * There are a few milliseconds between the child-process being forked and it registering its
30
+ * `disconnect` event, which is responsible for tidying up the lock-file in the event that the main
31
+ * process exits unexpectedly.
32
+ *
33
+ * We eagerly create the unlocker child-process so that it maximizes the time before the lock-file
34
+ * is actually written, which makes it very unlikely that the unlocker would not be ready in the
35
+ * case that the developer hits Ctrl-C or closes the terminal within a fraction of a second of the
36
+ * lock-file being created.
37
+ *
38
+ * The worst case scenario is that ngcc is killed too quickly and leaves behind an orphaned
39
+ * lock-file. In which case the next ngcc run will display a helpful error message about deleting
40
+ * the lock-file.
41
+ */
42
+ var LockFileWithChildProcess = /** @class */ (function () {
43
+ function LockFileWithChildProcess(fs, logger) {
44
+ this.fs = fs;
45
+ this.logger = logger;
46
+ this.path = lock_file_1.getLockFilePath(fs);
47
+ this.unlocker = this.createUnlocker(this.path);
48
+ }
49
+ LockFileWithChildProcess.prototype.write = function () {
50
+ if (this.unlocker === null) {
51
+ // In case we already disconnected the previous unlocker child-process, perhaps by calling
52
+ // `remove()`. Normally the LockFile should only be used once per instance.
53
+ this.unlocker = this.createUnlocker(this.path);
54
+ }
55
+ this.logger.debug("Attemping to write lock-file at " + this.path + " with PID " + process.pid);
56
+ // To avoid race conditions, check for existence of the lock-file by trying to create it.
57
+ // This will throw an error if the file already exists.
58
+ this.fs.writeFile(this.path, process.pid.toString(), /* exclusive */ true);
59
+ this.logger.debug("Written lock-file at " + this.path + " with PID " + process.pid);
60
+ };
61
+ LockFileWithChildProcess.prototype.read = function () {
62
+ try {
63
+ if (this.fs instanceof file_system_1.CachedFileSystem) {
64
+ // The lock-file file is "volatile", it might be changed by an external process,
65
+ // so we must not rely upon the cached value when reading it.
66
+ this.fs.invalidateCaches(this.path);
67
+ }
68
+ return this.fs.readFile(this.path);
69
+ }
70
+ catch (_a) {
71
+ return '{unknown}';
72
+ }
73
+ };
74
+ LockFileWithChildProcess.prototype.remove = function () {
75
+ util_1.removeLockFile(this.fs, this.logger, this.path, process.pid.toString());
76
+ if (this.unlocker !== null) {
77
+ // If there is an unlocker child-process then disconnect from it so that it can exit itself.
78
+ this.unlocker.disconnect();
79
+ this.unlocker = null;
80
+ }
81
+ };
82
+ LockFileWithChildProcess.prototype.createUnlocker = function (path) {
83
+ this.logger.debug('Forking unlocker child-process');
84
+ var logLevel = this.logger.level !== undefined ? this.logger.level.toString() : logger_1.LogLevel.info.toString();
85
+ return child_process_1.fork(this.fs.resolve(__dirname, './unlocker.js'), [path, logLevel], { detached: true });
86
+ };
87
+ return LockFileWithChildProcess;
88
+ }());
89
+ exports.LockFileWithChildProcess = LockFileWithChildProcess;
90
+ });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9ja2luZy9sb2NrX2ZpbGVfd2l0aF9jaGlsZF9wcm9jZXNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsK0NBQWlEO0lBRWpELDJFQUErRjtJQUMvRix3RUFBc0Q7SUFDdEQsOEVBQXVEO0lBRXZELGlHQUFzQztJQUV0Qyw4QkFBOEI7SUFFOUI7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSDtRQUlFLGtDQUFzQixFQUFjLEVBQVksTUFBYztZQUF4QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1lBQVksV0FBTSxHQUFOLE1BQU0sQ0FBUTtZQUM1RCxJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBR0Qsd0NBQUssR0FBTDtZQUNFLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQzFCLDBGQUEwRjtnQkFDMUYsMkVBQTJFO2dCQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hEO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUNBQW1DLElBQUksQ0FBQyxJQUFJLGtCQUFhLE9BQU8sQ0FBQyxHQUFLLENBQUMsQ0FBQztZQUMxRix5RkFBeUY7WUFDekYsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQXdCLElBQUksQ0FBQyxJQUFJLGtCQUFhLE9BQU8sQ0FBQyxHQUFLLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBRUQsdUNBQUksR0FBSjtZQUNFLElBQUk7Z0JBQ0YsSUFBSSxJQUFJLENBQUMsRUFBRSxZQUFZLDhCQUFnQixFQUFFO29CQUN2QyxnRkFBZ0Y7b0JBQ2hGLDZEQUE2RDtvQkFDN0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3JDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1lBQUMsV0FBTTtnQkFDTixPQUFPLFdBQVcsQ0FBQzthQUNwQjtRQUNILENBQUM7UUFFRCx5Q0FBTSxHQUFOO1lBQ0UscUJBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEUsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtnQkFDMUIsNEZBQTRGO2dCQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtRQUNILENBQUM7UUFFUyxpREFBYyxHQUF4QixVQUF5QixJQUFvQjtZQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BELElBQU0sUUFBUSxHQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlGLE9BQU8sb0JBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0gsK0JBQUM7SUFBRCxDQUFDLEFBbkRELElBbURDO0lBbkRZLDREQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Q2hpbGRQcm9jZXNzLCBmb3JrfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgQ2FjaGVkRmlsZVN5c3RlbSwgRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7TG9nTGV2ZWwsIExvZ2dlcn0gZnJvbSAnLi4vLi4vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtMb2NrRmlsZSwgZ2V0TG9ja0ZpbGVQYXRofSBmcm9tICcuLi9sb2NrX2ZpbGUnO1xuXG5pbXBvcnQge3JlbW92ZUxvY2tGaWxlfSBmcm9tICcuL3V0aWwnO1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIiAvPlxuXG4vKipcbiAqIFRoaXMgYExvY2tGaWxlYCBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgY2hpbGQtcHJvY2VzcyB0byByZW1vdmUgdGhlIGxvY2sgZmlsZSB3aGVuIHRoZSBtYWluIHByb2Nlc3NcbiAqIGV4aXRzIChmb3Igd2hhdGV2ZXIgcmVhc29uKS5cbiAqXG4gKiBUaGVyZSBhcmUgYSBmZXcgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGNoaWxkLXByb2Nlc3MgYmVpbmcgZm9ya2VkIGFuZCBpdCByZWdpc3RlcmluZyBpdHNcbiAqIGBkaXNjb25uZWN0YCBldmVudCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRpZHlpbmcgdXAgdGhlIGxvY2stZmlsZSBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgbWFpblxuICogcHJvY2VzcyBleGl0cyB1bmV4cGVjdGVkbHkuXG4gKlxuICogV2UgZWFnZXJseSBjcmVhdGUgdGhlIHVubG9ja2VyIGNoaWxkLXByb2Nlc3Mgc28gdGhhdCBpdCBtYXhpbWl6ZXMgdGhlIHRpbWUgYmVmb3JlIHRoZSBsb2NrLWZpbGVcbiAqIGlzIGFjdHVhbGx5IHdyaXR0ZW4sIHdoaWNoIG1ha2VzIGl0IHZlcnkgdW5saWtlbHkgdGhhdCB0aGUgdW5sb2NrZXIgd291bGQgbm90IGJlIHJlYWR5IGluIHRoZVxuICogY2FzZSB0aGF0IHRoZSBkZXZlbG9wZXIgaGl0cyBDdHJsLUMgb3IgY2xvc2VzIHRoZSB0ZXJtaW5hbCB3aXRoaW4gYSBmcmFjdGlvbiBvZiBhIHNlY29uZCBvZiB0aGVcbiAqIGxvY2stZmlsZSBiZWluZyBjcmVhdGVkLlxuICpcbiAqIFRoZSB3b3JzdCBjYXNlIHNjZW5hcmlvIGlzIHRoYXQgbmdjYyBpcyBraWxsZWQgdG9vIHF1aWNrbHkgYW5kIGxlYXZlcyBiZWhpbmQgYW4gb3JwaGFuZWRcbiAqIGxvY2stZmlsZS4gSW4gd2hpY2ggY2FzZSB0aGUgbmV4dCBuZ2NjIHJ1biB3aWxsIGRpc3BsYXkgYSBoZWxwZnVsIGVycm9yIG1lc3NhZ2UgYWJvdXQgZGVsZXRpbmdcbiAqIHRoZSBsb2NrLWZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NrRmlsZVdpdGhDaGlsZFByb2Nlc3MgaW1wbGVtZW50cyBMb2NrRmlsZSB7XG4gIHBhdGg6IEFic29sdXRlRnNQYXRoO1xuICBwcml2YXRlIHVubG9ja2VyOiBDaGlsZFByb2Nlc3N8bnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZnM6IEZpbGVTeXN0ZW0sIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlcikge1xuICAgIHRoaXMucGF0aCA9IGdldExvY2tGaWxlUGF0aChmcyk7XG4gICAgdGhpcy51bmxvY2tlciA9IHRoaXMuY3JlYXRlVW5sb2NrZXIodGhpcy5wYXRoKTtcbiAgfVxuXG5cbiAgd3JpdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudW5sb2NrZXIgPT09IG51bGwpIHtcbiAgICAgIC8vIEluIGNhc2Ugd2UgYWxyZWFkeSBkaXNjb25uZWN0ZWQgdGhlIHByZXZpb3VzIHVubG9ja2VyIGNoaWxkLXByb2Nlc3MsIHBlcmhhcHMgYnkgY2FsbGluZ1xuICAgICAgLy8gYHJlbW92ZSgpYC4gTm9ybWFsbHkgdGhlIExvY2tGaWxlIHNob3VsZCBvbmx5IGJlIHVzZWQgb25jZSBwZXIgaW5zdGFuY2UuXG4gICAgICB0aGlzLnVubG9ja2VyID0gdGhpcy5jcmVhdGVVbmxvY2tlcih0aGlzLnBhdGgpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgQXR0ZW1waW5nIHRvIHdyaXRlIGxvY2stZmlsZSBhdCAke3RoaXMucGF0aH0gd2l0aCBQSUQgJHtwcm9jZXNzLnBpZH1gKTtcbiAgICAvLyBUbyBhdm9pZCByYWNlIGNvbmRpdGlvbnMsIGNoZWNrIGZvciBleGlzdGVuY2Ugb2YgdGhlIGxvY2stZmlsZSBieSB0cnlpbmcgdG8gY3JlYXRlIGl0LlxuICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cy5cbiAgICB0aGlzLmZzLndyaXRlRmlsZSh0aGlzLnBhdGgsIHByb2Nlc3MucGlkLnRvU3RyaW5nKCksIC8qIGV4Y2x1c2l2ZSAqLyB0cnVlKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgV3JpdHRlbiBsb2NrLWZpbGUgYXQgJHt0aGlzLnBhdGh9IHdpdGggUElEICR7cHJvY2Vzcy5waWR9YCk7XG4gIH1cblxuICByZWFkKCk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmZzIGluc3RhbmNlb2YgQ2FjaGVkRmlsZVN5c3RlbSkge1xuICAgICAgICAvLyBUaGUgbG9jay1maWxlIGZpbGUgaXMgXCJ2b2xhdGlsZVwiLCBpdCBtaWdodCBiZSBjaGFuZ2VkIGJ5IGFuIGV4dGVybmFsIHByb2Nlc3MsXG4gICAgICAgIC8vIHNvIHdlIG11c3Qgbm90IHJlbHkgdXBvbiB0aGUgY2FjaGVkIHZhbHVlIHdoZW4gcmVhZGluZyBpdC5cbiAgICAgICAgdGhpcy5mcy5pbnZhbGlkYXRlQ2FjaGVzKHRoaXMucGF0aCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5mcy5yZWFkRmlsZSh0aGlzLnBhdGgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuICd7dW5rbm93bn0nO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICByZW1vdmVMb2NrRmlsZSh0aGlzLmZzLCB0aGlzLmxvZ2dlciwgdGhpcy5wYXRoLCBwcm9jZXNzLnBpZC50b1N0cmluZygpKTtcbiAgICBpZiAodGhpcy51bmxvY2tlciAhPT0gbnVsbCkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgYW4gdW5sb2NrZXIgY2hpbGQtcHJvY2VzcyB0aGVuIGRpc2Nvbm5lY3QgZnJvbSBpdCBzbyB0aGF0IGl0IGNhbiBleGl0IGl0c2VsZi5cbiAgICAgIHRoaXMudW5sb2NrZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy51bmxvY2tlciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVVubG9ja2VyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogQ2hpbGRQcm9jZXNzIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRm9ya2luZyB1bmxvY2tlciBjaGlsZC1wcm9jZXNzJyk7XG4gICAgY29uc3QgbG9nTGV2ZWwgPVxuICAgICAgICB0aGlzLmxvZ2dlci5sZXZlbCAhPT0gdW5kZWZpbmVkID8gdGhpcy5sb2dnZXIubGV2ZWwudG9TdHJpbmcoKSA6IExvZ0xldmVsLmluZm8udG9TdHJpbmcoKTtcbiAgICByZXR1cm4gZm9yayh0aGlzLmZzLnJlc29sdmUoX19kaXJuYW1lLCAnLi91bmxvY2tlci5qcycpLCBbcGF0aCwgbG9nTGV2ZWxdLCB7ZGV0YWNoZWQ6IHRydWV9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ /// <amd-module name="@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/unlocker" />
2
+ export {};
@@ -0,0 +1,44 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/unlocker", ["require", "exports", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/ngcc/src/logging/console_logger", "@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * @license
14
+ * Copyright Google Inc. All Rights Reserved.
15
+ *
16
+ * Use of this source code is governed by an MIT-style license that can be
17
+ * found in the LICENSE file at https://angular.io/license
18
+ */
19
+ var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
20
+ var console_logger_1 = require("@angular/compiler-cli/ngcc/src/logging/console_logger");
21
+ var util_1 = require("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util");
22
+ /// <reference types="node" />
23
+ // This file is an entry-point for the child-process that is started by `LockFileWithChildProcess`
24
+ // to ensure that the lock-file is removed when the primary process exits unexpectedly.
25
+ // We have no choice but to use the node.js file-system here since we are in a separate process
26
+ // from the main ngcc run, which may be running a mock file-system from within a test.
27
+ var fs = new file_system_1.NodeJSFileSystem();
28
+ // We create a logger that has the same logging level as the parent process, since it should have
29
+ // been passed through as one of the args
30
+ var logLevel = parseInt(process.argv.pop(), 10);
31
+ var logger = new console_logger_1.ConsoleLogger(logLevel);
32
+ // We must store the parent PID now as it changes if the parent process is killed early
33
+ var ppid = process.ppid.toString();
34
+ // The path to the lock-file to remove should have been passed as one of the args
35
+ var lockFilePath = fs.resolve(process.argv.pop());
36
+ logger.debug("Starting unlocker at process " + process.pid + " on behalf of process " + ppid);
37
+ logger.debug("The lock-file path is " + lockFilePath);
38
+ /**
39
+ * When the parent process exits (for whatever reason) remove the loc-file if it exists and as long
40
+ * as it was one that was created by the parent process.
41
+ */
42
+ process.on('disconnect', function () { util_1.removeLockFile(fs, logger, lockFilePath, ppid); });
43
+ });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2NrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9ja2luZy9sb2NrX2ZpbGVfd2l0aF9jaGlsZF9wcm9jZXNzL3VubG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsMkVBQW1FO0lBQ25FLHdGQUEyRDtJQUMzRCxpR0FBc0M7SUFFdEMsOEJBQThCO0lBRTlCLGtHQUFrRztJQUNsRyx1RkFBdUY7SUFFdkYsK0ZBQStGO0lBQy9GLHNGQUFzRjtJQUN0RixJQUFNLEVBQUUsR0FBRyxJQUFJLDhCQUFnQixFQUFFLENBQUM7SUFFbEMsaUdBQWlHO0lBQ2pHLHlDQUF5QztJQUN6QyxJQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxJQUFNLE1BQU0sR0FBRyxJQUFJLDhCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0MsdUZBQXVGO0lBQ3ZGLElBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFckMsaUZBQWlGO0lBQ2pGLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUksQ0FBQyxDQUFDO0lBRXRELE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWdDLE9BQU8sQ0FBQyxHQUFHLDhCQUF5QixJQUFNLENBQUMsQ0FBQztJQUN6RixNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUF5QixZQUFjLENBQUMsQ0FBQztJQUV0RDs7O09BR0c7SUFDSCxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFRLHFCQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Tm9kZUpTRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Q29uc29sZUxvZ2dlcn0gZnJvbSAnLi4vLi4vbG9nZ2luZy9jb25zb2xlX2xvZ2dlcic7XG5pbXBvcnQge3JlbW92ZUxvY2tGaWxlfSBmcm9tICcuL3V0aWwnO1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIiAvPlxuXG4vLyBUaGlzIGZpbGUgaXMgYW4gZW50cnktcG9pbnQgZm9yIHRoZSBjaGlsZC1wcm9jZXNzIHRoYXQgaXMgc3RhcnRlZCBieSBgTG9ja0ZpbGVXaXRoQ2hpbGRQcm9jZXNzYFxuLy8gdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2stZmlsZSBpcyByZW1vdmVkIHdoZW4gdGhlIHByaW1hcnkgcHJvY2VzcyBleGl0cyB1bmV4cGVjdGVkbHkuXG5cbi8vIFdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byB1c2UgdGhlIG5vZGUuanMgZmlsZS1zeXN0ZW0gaGVyZSBzaW5jZSB3ZSBhcmUgaW4gYSBzZXBhcmF0ZSBwcm9jZXNzXG4vLyBmcm9tIHRoZSBtYWluIG5nY2MgcnVuLCB3aGljaCBtYXkgYmUgcnVubmluZyBhIG1vY2sgZmlsZS1zeXN0ZW0gZnJvbSB3aXRoaW4gYSB0ZXN0LlxuY29uc3QgZnMgPSBuZXcgTm9kZUpTRmlsZVN5c3RlbSgpO1xuXG4vLyBXZSBjcmVhdGUgYSBsb2dnZXIgdGhhdCBoYXMgdGhlIHNhbWUgbG9nZ2luZyBsZXZlbCBhcyB0aGUgcGFyZW50IHByb2Nlc3MsIHNpbmNlIGl0IHNob3VsZCBoYXZlXG4vLyBiZWVuIHBhc3NlZCB0aHJvdWdoIGFzIG9uZSBvZiB0aGUgYXJnc1xuY29uc3QgbG9nTGV2ZWwgPSBwYXJzZUludChwcm9jZXNzLmFyZ3YucG9wKCkgISwgMTApO1xuY29uc3QgbG9nZ2VyID0gbmV3IENvbnNvbGVMb2dnZXIobG9nTGV2ZWwpO1xuXG4vLyBXZSBtdXN0IHN0b3JlIHRoZSBwYXJlbnQgUElEIG5vdyBhcyBpdCBjaGFuZ2VzIGlmIHRoZSBwYXJlbnQgcHJvY2VzcyBpcyBraWxsZWQgZWFybHlcbmNvbnN0IHBwaWQgPSBwcm9jZXNzLnBwaWQudG9TdHJpbmcoKTtcblxuLy8gVGhlIHBhdGggdG8gdGhlIGxvY2stZmlsZSB0byByZW1vdmUgc2hvdWxkIGhhdmUgYmVlbiBwYXNzZWQgYXMgb25lIG9mIHRoZSBhcmdzXG5jb25zdCBsb2NrRmlsZVBhdGggPSBmcy5yZXNvbHZlKHByb2Nlc3MuYXJndi5wb3AoKSAhKTtcblxubG9nZ2VyLmRlYnVnKGBTdGFydGluZyB1bmxvY2tlciBhdCBwcm9jZXNzICR7cHJvY2Vzcy5waWR9IG9uIGJlaGFsZiBvZiBwcm9jZXNzICR7cHBpZH1gKTtcbmxvZ2dlci5kZWJ1ZyhgVGhlIGxvY2stZmlsZSBwYXRoIGlzICR7bG9ja0ZpbGVQYXRofWApO1xuXG4vKipcbiAqIFdoZW4gdGhlIHBhcmVudCBwcm9jZXNzIGV4aXRzIChmb3Igd2hhdGV2ZXIgcmVhc29uKSByZW1vdmUgdGhlIGxvYy1maWxlIGlmIGl0IGV4aXN0cyBhbmQgYXMgbG9uZ1xuICogYXMgaXQgd2FzIG9uZSB0aGF0IHdhcyBjcmVhdGVkIGJ5IHRoZSBwYXJlbnQgcHJvY2Vzcy5cbiAqL1xucHJvY2Vzcy5vbignZGlzY29ubmVjdCcsICgpID0+IHsgcmVtb3ZlTG9ja0ZpbGUoZnMsIGxvZ2dlciwgbG9ja0ZpbGVQYXRoLCBwcGlkKTsgfSk7XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /// <amd-module name="@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util" />
2
+ /**
3
+ * @license
4
+ * Copyright Google Inc. All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ import { AbsoluteFsPath, FileSystem } from '../../../../src/ngtsc/file_system';
10
+ import { Logger } from '../../logging/logger';
11
+ /**
12
+ * Remove the lock-file at the provided `lockFilePath` from the given file-system.
13
+ *
14
+ * It only removes the file if the pid stored in the file matches the provided `pid`.
15
+ * The provided `pid` is of the process that is exiting and so no longer needs to hold the lock.
16
+ */
17
+ export declare function removeLockFile(fs: FileSystem, logger: Logger, lockFilePath: AbsoluteFsPath, pid: string): void;
@@ -0,0 +1,42 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define("@angular/compiler-cli/ngcc/src/locking/lock_file_with_child_process/util", ["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * Remove the lock-file at the provided `lockFilePath` from the given file-system.
14
+ *
15
+ * It only removes the file if the pid stored in the file matches the provided `pid`.
16
+ * The provided `pid` is of the process that is exiting and so no longer needs to hold the lock.
17
+ */
18
+ function removeLockFile(fs, logger, lockFilePath, pid) {
19
+ try {
20
+ logger.debug("Attempting to remove lock-file at " + lockFilePath + ".");
21
+ var lockFilePid = fs.readFile(lockFilePath);
22
+ if (lockFilePid === pid) {
23
+ logger.debug("PIDs match (" + pid + "), so removing " + lockFilePath + ".");
24
+ fs.removeFile(lockFilePath);
25
+ }
26
+ else {
27
+ logger.debug("PIDs do not match (" + pid + " and " + lockFilePid + "), so not removing " + lockFilePath + ".");
28
+ }
29
+ }
30
+ catch (e) {
31
+ if (e.code === 'ENOENT') {
32
+ logger.debug("The lock-file at " + lockFilePath + " was already removed.");
33
+ // File already removed so quietly exit
34
+ }
35
+ else {
36
+ throw e;
37
+ }
38
+ }
39
+ }
40
+ exports.removeLockFile = removeLockFile;
41
+ });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9sb2NraW5nL2xvY2tfZmlsZV93aXRoX2NoaWxkX3Byb2Nlc3MvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVVBOzs7OztPQUtHO0lBQ0gsU0FBZ0IsY0FBYyxDQUMxQixFQUFjLEVBQUUsTUFBYyxFQUFFLFlBQTRCLEVBQUUsR0FBVztRQUMzRSxJQUFJO1lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyx1Q0FBcUMsWUFBWSxNQUFHLENBQUMsQ0FBQztZQUNuRSxJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlDLElBQUksV0FBVyxLQUFLLEdBQUcsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBZSxHQUFHLHVCQUFrQixZQUFZLE1BQUcsQ0FBQyxDQUFDO2dCQUNsRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxLQUFLLENBQ1Isd0JBQXNCLEdBQUcsYUFBUSxXQUFXLDJCQUFzQixZQUFZLE1BQUcsQ0FBQyxDQUFDO2FBQ3hGO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQW9CLFlBQVksMEJBQXVCLENBQUMsQ0FBQztnQkFDdEUsdUNBQXVDO2FBQ3hDO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFwQkQsd0NBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi8uLi9sb2dnaW5nL2xvZ2dlcic7XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBsb2NrLWZpbGUgYXQgdGhlIHByb3ZpZGVkIGBsb2NrRmlsZVBhdGhgIGZyb20gdGhlIGdpdmVuIGZpbGUtc3lzdGVtLlxuICpcbiAqIEl0IG9ubHkgcmVtb3ZlcyB0aGUgZmlsZSBpZiB0aGUgcGlkIHN0b3JlZCBpbiB0aGUgZmlsZSBtYXRjaGVzIHRoZSBwcm92aWRlZCBgcGlkYC5cbiAqIFRoZSBwcm92aWRlZCBgcGlkYCBpcyBvZiB0aGUgcHJvY2VzcyB0aGF0IGlzIGV4aXRpbmcgYW5kIHNvIG5vIGxvbmdlciBuZWVkcyB0byBob2xkIHRoZSBsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlTG9ja0ZpbGUoXG4gICAgZnM6IEZpbGVTeXN0ZW0sIGxvZ2dlcjogTG9nZ2VyLCBsb2NrRmlsZVBhdGg6IEFic29sdXRlRnNQYXRoLCBwaWQ6IHN0cmluZykge1xuICB0cnkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgQXR0ZW1wdGluZyB0byByZW1vdmUgbG9jay1maWxlIGF0ICR7bG9ja0ZpbGVQYXRofS5gKTtcbiAgICBjb25zdCBsb2NrRmlsZVBpZCA9IGZzLnJlYWRGaWxlKGxvY2tGaWxlUGF0aCk7XG4gICAgaWYgKGxvY2tGaWxlUGlkID09PSBwaWQpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgUElEcyBtYXRjaCAoJHtwaWR9KSwgc28gcmVtb3ZpbmcgJHtsb2NrRmlsZVBhdGh9LmApO1xuICAgICAgZnMucmVtb3ZlRmlsZShsb2NrRmlsZVBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFBJRHMgZG8gbm90IG1hdGNoICgke3BpZH0gYW5kICR7bG9ja0ZpbGVQaWR9KSwgc28gbm90IHJlbW92aW5nICR7bG9ja0ZpbGVQYXRofS5gKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBUaGUgbG9jay1maWxlIGF0ICR7bG9ja0ZpbGVQYXRofSB3YXMgYWxyZWFkeSByZW1vdmVkLmApO1xuICAgICAgLy8gRmlsZSBhbHJlYWR5IHJlbW92ZWQgc28gcXVpZXRseSBleGl0XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ /// <amd-module name="@angular/compiler-cli/ngcc/src/locking/sync_locker" />
2
+ /**
3
+ * @license
4
+ * Copyright Google Inc. All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ import { LockFile } from './lock_file';
10
+ /**
11
+ * SyncLocker is used to prevent more than one instance of ngcc executing at the same time,
12
+ * when being called in a synchronous context.
13
+ *
14
+ * * When ngcc starts executing, it creates a file in the `compiler-cli/ngcc` folder.
15
+ * * If it finds one is already there then it fails with a suitable error message.
16
+ * * When ngcc completes executing, it removes the file so that future ngcc executions can start.
17
+ */
18
+ export declare class SyncLocker {
19
+ private lockFile;
20
+ constructor(lockFile: LockFile);
21
+ /**
22
+ * Run the given function guarded by the lock file.
23
+ *
24
+ * @param fn the function to run.
25
+ * @returns the value returned from the `fn` call.
26
+ */
27
+ lock<T>(fn: () => T): T;
28
+ /**
29
+ * Write a lock file to disk, or error if there is already one there.
30
+ */
31
+ protected create(): void;
32
+ /**
33
+ * The lock-file already exists so raise a helpful error.
34
+ */
35
+ protected handleExistingLockFile(): void;
36
+ }
@@ -0,0 +1,67 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define("@angular/compiler-cli/ngcc/src/locking/sync_locker", ["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * SyncLocker is used to prevent more than one instance of ngcc executing at the same time,
14
+ * when being called in a synchronous context.
15
+ *
16
+ * * When ngcc starts executing, it creates a file in the `compiler-cli/ngcc` folder.
17
+ * * If it finds one is already there then it fails with a suitable error message.
18
+ * * When ngcc completes executing, it removes the file so that future ngcc executions can start.
19
+ */
20
+ var SyncLocker = /** @class */ (function () {
21
+ function SyncLocker(lockFile) {
22
+ this.lockFile = lockFile;
23
+ }
24
+ /**
25
+ * Run the given function guarded by the lock file.
26
+ *
27
+ * @param fn the function to run.
28
+ * @returns the value returned from the `fn` call.
29
+ */
30
+ SyncLocker.prototype.lock = function (fn) {
31
+ this.create();
32
+ try {
33
+ return fn();
34
+ }
35
+ finally {
36
+ this.lockFile.remove();
37
+ }
38
+ };
39
+ /**
40
+ * Write a lock file to disk, or error if there is already one there.
41
+ */
42
+ SyncLocker.prototype.create = function () {
43
+ try {
44
+ this.lockFile.write();
45
+ }
46
+ catch (e) {
47
+ if (e.code !== 'EEXIST') {
48
+ throw e;
49
+ }
50
+ this.handleExistingLockFile();
51
+ }
52
+ };
53
+ /**
54
+ * The lock-file already exists so raise a helpful error.
55
+ */
56
+ SyncLocker.prototype.handleExistingLockFile = function () {
57
+ var pid = this.lockFile.read();
58
+ throw new Error("ngcc is already running at process with id " + pid + ".\n" +
59
+ "If you are running multiple builds in parallel then you should pre-process your node_modules via the command line ngcc tool before starting the builds;\n" +
60
+ "See https://v9.angular.io/guide/ivy#speeding-up-ngcc-compilation.\n" +
61
+ ("(If you are sure no ngcc process is running then you should delete the lock-file at " + this.lockFile.path + ".)"));
62
+ };
63
+ return SyncLocker;
64
+ }());
65
+ exports.SyncLocker = SyncLocker;
66
+ });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY19sb2NrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9ja2luZy9zeW5jX2xvY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVNBOzs7Ozs7O09BT0c7SUFDSDtRQUNFLG9CQUFvQixRQUFrQjtZQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQUcsQ0FBQztRQUUxQzs7Ozs7V0FLRztRQUNILHlCQUFJLEdBQUosVUFBUSxFQUFXO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUk7Z0JBQ0YsT0FBTyxFQUFFLEVBQUUsQ0FBQzthQUNiO29CQUFTO2dCQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDO1FBRUQ7O1dBRUc7UUFDTywyQkFBTSxHQUFoQjtZQUNFLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN2QjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxDQUFDO2lCQUNUO2dCQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2FBQy9CO1FBQ0gsQ0FBQztRQUVEOztXQUVHO1FBQ08sMkNBQXNCLEdBQWhDO1lBQ0UsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUNYLGdEQUE4QyxHQUFHLFFBQUs7Z0JBQ3RELDJKQUEySjtnQkFDM0oscUVBQXFFO2lCQUNyRSx5RkFBdUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQUksQ0FBQSxDQUFDLENBQUM7UUFDckgsQ0FBQztRQUNILGlCQUFDO0lBQUQsQ0FBQyxBQTNDRCxJQTJDQztJQTNDWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TG9ja0ZpbGV9IGZyb20gJy4vbG9ja19maWxlJztcblxuLyoqXG4gKiBTeW5jTG9ja2VyIGlzIHVzZWQgdG8gcHJldmVudCBtb3JlIHRoYW4gb25lIGluc3RhbmNlIG9mIG5nY2MgZXhlY3V0aW5nIGF0IHRoZSBzYW1lIHRpbWUsXG4gKiB3aGVuIGJlaW5nIGNhbGxlZCBpbiBhIHN5bmNocm9ub3VzIGNvbnRleHQuXG4gKlxuICogKiBXaGVuIG5nY2Mgc3RhcnRzIGV4ZWN1dGluZywgaXQgY3JlYXRlcyBhIGZpbGUgaW4gdGhlIGBjb21waWxlci1jbGkvbmdjY2AgZm9sZGVyLlxuICogKiBJZiBpdCBmaW5kcyBvbmUgaXMgYWxyZWFkeSB0aGVyZSB0aGVuIGl0IGZhaWxzIHdpdGggYSBzdWl0YWJsZSBlcnJvciBtZXNzYWdlLlxuICogKiBXaGVuIG5nY2MgY29tcGxldGVzIGV4ZWN1dGluZywgaXQgcmVtb3ZlcyB0aGUgZmlsZSBzbyB0aGF0IGZ1dHVyZSBuZ2NjIGV4ZWN1dGlvbnMgY2FuIHN0YXJ0LlxuICovXG5leHBvcnQgY2xhc3MgU3luY0xvY2tlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9ja0ZpbGU6IExvY2tGaWxlKSB7fVxuXG4gIC8qKlxuICAgKiBSdW4gdGhlIGdpdmVuIGZ1bmN0aW9uIGd1YXJkZWQgYnkgdGhlIGxvY2sgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZuIHRoZSBmdW5jdGlvbiB0byBydW4uXG4gICAqIEByZXR1cm5zIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tIHRoZSBgZm5gIGNhbGwuXG4gICAqL1xuICBsb2NrPFQ+KGZuOiAoKSA9PiBUKTogVCB7XG4gICAgdGhpcy5jcmVhdGUoKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZuKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9ja0ZpbGUucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlIGEgbG9jayBmaWxlIHRvIGRpc2ssIG9yIGVycm9yIGlmIHRoZXJlIGlzIGFscmVhZHkgb25lIHRoZXJlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2NrRmlsZS53cml0ZSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLmNvZGUgIT09ICdFRVhJU1QnKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICB0aGlzLmhhbmRsZUV4aXN0aW5nTG9ja0ZpbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxvY2stZmlsZSBhbHJlYWR5IGV4aXN0cyBzbyByYWlzZSBhIGhlbHBmdWwgZXJyb3IuXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRXhpc3RpbmdMb2NrRmlsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBwaWQgPSB0aGlzLmxvY2tGaWxlLnJlYWQoKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBuZ2NjIGlzIGFscmVhZHkgcnVubmluZyBhdCBwcm9jZXNzIHdpdGggaWQgJHtwaWR9LlxcbmAgK1xuICAgICAgICBgSWYgeW91IGFyZSBydW5uaW5nIG11bHRpcGxlIGJ1aWxkcyBpbiBwYXJhbGxlbCB0aGVuIHlvdSBzaG91bGQgcHJlLXByb2Nlc3MgeW91ciBub2RlX21vZHVsZXMgdmlhIHRoZSBjb21tYW5kIGxpbmUgbmdjYyB0b29sIGJlZm9yZSBzdGFydGluZyB0aGUgYnVpbGRzO1xcbmAgK1xuICAgICAgICBgU2VlIGh0dHBzOi8vdjkuYW5ndWxhci5pby9ndWlkZS9pdnkjc3BlZWRpbmctdXAtbmdjYy1jb21waWxhdGlvbi5cXG5gICtcbiAgICAgICAgYChJZiB5b3UgYXJlIHN1cmUgbm8gbmdjYyBwcm9jZXNzIGlzIHJ1bm5pbmcgdGhlbiB5b3Ugc2hvdWxkIGRlbGV0ZSB0aGUgbG9jay1maWxlIGF0ICR7dGhpcy5sb2NrRmlsZS5wYXRofS4pYCk7XG4gIH1cbn1cbiJdfQ==
@@ -6,16 +6,10 @@
6
6
  * Use of this source code is governed by an MIT-style license that can be
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
- import { Logger } from './logger';
9
+ import { LogLevel, Logger } from './logger';
10
10
  export declare const DEBUG: string;
11
11
  export declare const WARN: string;
12
12
  export declare const ERROR: string;
13
- export declare enum LogLevel {
14
- debug = 0,
15
- info = 1,
16
- warn = 2,
17
- error = 3
18
- }
19
13
  /**
20
14
  * A simple logger that outputs directly to the Console.
21
15
  *
@@ -23,8 +17,8 @@ export declare enum LogLevel {
23
17
  * constructor parameter.
24
18
  */
25
19
  export declare class ConsoleLogger implements Logger {
26
- private logLevel;
27
- constructor(logLevel: LogLevel);
20
+ level: LogLevel;
21
+ constructor(level: LogLevel);
28
22
  debug(...args: string[]): void;
29
23
  info(...args: string[]): void;
30
24
  warn(...args: string[]): void;
@@ -4,12 +4,20 @@
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/logging/console_logger", ["require", "exports", "tslib"], factory);
7
+ define("@angular/compiler-cli/ngcc/src/logging/console_logger", ["require", "exports", "tslib", "@angular/compiler-cli/ngcc/src/logging/logger"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  var tslib_1 = require("tslib");
13
+ /**
14
+ * @license
15
+ * Copyright Google Inc. All Rights Reserved.
16
+ *
17
+ * Use of this source code is governed by an MIT-style license that can be
18
+ * found in the LICENSE file at https://angular.io/license
19
+ */
20
+ var logger_1 = require("@angular/compiler-cli/ngcc/src/logging/logger");
13
21
  var RESET = '\x1b[0m';
14
22
  var RED = '\x1b[31m';
15
23
  var YELLOW = '\x1b[33m';
@@ -17,13 +25,6 @@
17
25
  exports.DEBUG = BLUE + "Debug:" + RESET;
18
26
  exports.WARN = YELLOW + "Warning:" + RESET;
19
27
  exports.ERROR = RED + "Error:" + RESET;
20
- var LogLevel;
21
- (function (LogLevel) {
22
- LogLevel[LogLevel["debug"] = 0] = "debug";
23
- LogLevel[LogLevel["info"] = 1] = "info";
24
- LogLevel[LogLevel["warn"] = 2] = "warn";
25
- LogLevel[LogLevel["error"] = 3] = "error";
26
- })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
27
28
  /**
28
29
  * A simple logger that outputs directly to the Console.
29
30
  *
@@ -31,15 +32,15 @@
31
32
  * constructor parameter.
32
33
  */
33
34
  var ConsoleLogger = /** @class */ (function () {
34
- function ConsoleLogger(logLevel) {
35
- this.logLevel = logLevel;
35
+ function ConsoleLogger(level) {
36
+ this.level = level;
36
37
  }
37
38
  ConsoleLogger.prototype.debug = function () {
38
39
  var args = [];
39
40
  for (var _i = 0; _i < arguments.length; _i++) {
40
41
  args[_i] = arguments[_i];
41
42
  }
42
- if (this.logLevel <= LogLevel.debug)
43
+ if (this.level <= logger_1.LogLevel.debug)
43
44
  console.debug.apply(console, tslib_1.__spread([exports.DEBUG], args));
44
45
  };
45
46
  ConsoleLogger.prototype.info = function () {
@@ -47,7 +48,7 @@
47
48
  for (var _i = 0; _i < arguments.length; _i++) {
48
49
  args[_i] = arguments[_i];
49
50
  }
50
- if (this.logLevel <= LogLevel.info)
51
+ if (this.level <= logger_1.LogLevel.info)
51
52
  console.info.apply(console, tslib_1.__spread(args));
52
53
  };
53
54
  ConsoleLogger.prototype.warn = function () {
@@ -55,7 +56,7 @@
55
56
  for (var _i = 0; _i < arguments.length; _i++) {
56
57
  args[_i] = arguments[_i];
57
58
  }
58
- if (this.logLevel <= LogLevel.warn)
59
+ if (this.level <= logger_1.LogLevel.warn)
59
60
  console.warn.apply(console, tslib_1.__spread([exports.WARN], args));
60
61
  };
61
62
  ConsoleLogger.prototype.error = function () {
@@ -63,11 +64,11 @@
63
64
  for (var _i = 0; _i < arguments.length; _i++) {
64
65
  args[_i] = arguments[_i];
65
66
  }
66
- if (this.logLevel <= LogLevel.error)
67
+ if (this.level <= logger_1.LogLevel.error)
67
68
  console.error.apply(console, tslib_1.__spread([exports.ERROR], args));
68
69
  };
69
70
  return ConsoleLogger;
70
71
  }());
71
72
  exports.ConsoleLogger = ConsoleLogger;
72
73
  });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZV9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9nZ2luZy9jb25zb2xlX2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFTQSxJQUFNLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDeEIsSUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDO0lBQ3ZCLElBQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMxQixJQUFNLElBQUksR0FBRyxVQUFVLENBQUM7SUFFWCxRQUFBLEtBQUssR0FBTSxJQUFJLGNBQVMsS0FBTyxDQUFDO0lBQ2hDLFFBQUEsSUFBSSxHQUFNLE1BQU0sZ0JBQVcsS0FBTyxDQUFDO0lBQ25DLFFBQUEsS0FBSyxHQUFNLEdBQUcsY0FBUyxLQUFPLENBQUM7SUFFNUMsSUFBWSxRQUtYO0lBTEQsV0FBWSxRQUFRO1FBQ2xCLHlDQUFLLENBQUE7UUFDTCx1Q0FBSSxDQUFBO1FBQ0osdUNBQUksQ0FBQTtRQUNKLHlDQUFLLENBQUE7SUFDUCxDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7SUFFRDs7Ozs7T0FLRztJQUNIO1FBQ0UsdUJBQW9CLFFBQWtCO1lBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBRyxDQUFDO1FBQzFDLDZCQUFLLEdBQUw7WUFBTSxjQUFpQjtpQkFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO2dCQUFqQix5QkFBaUI7O1lBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSztnQkFBRSxPQUFPLENBQUMsS0FBSyxPQUFiLE9BQU8sb0JBQU8sYUFBSyxHQUFLLElBQUksR0FBRTtRQUNyRSxDQUFDO1FBQ0QsNEJBQUksR0FBSjtZQUFLLGNBQWlCO2lCQUFqQixVQUFpQixFQUFqQixxQkFBaUIsRUFBakIsSUFBaUI7Z0JBQWpCLHlCQUFpQjs7WUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLE9BQVosT0FBTyxtQkFBUyxJQUFJLEdBQUU7UUFDNUQsQ0FBQztRQUNELDRCQUFJLEdBQUo7WUFBSyxjQUFpQjtpQkFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO2dCQUFqQix5QkFBaUI7O1lBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsSUFBSSxPQUFaLE9BQU8sb0JBQU0sWUFBSSxHQUFLLElBQUksR0FBRTtRQUNsRSxDQUFDO1FBQ0QsNkJBQUssR0FBTDtZQUFNLGNBQWlCO2lCQUFqQixVQUFpQixFQUFqQixxQkFBaUIsRUFBakIsSUFBaUI7Z0JBQWpCLHlCQUFpQjs7WUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLE9BQWIsT0FBTyxvQkFBTyxhQUFLLEdBQUssSUFBSSxHQUFFO1FBQ3JFLENBQUM7UUFDSCxvQkFBQztJQUFELENBQUMsQUFkRCxJQWNDO0lBZFksc0NBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi9sb2dnZXInO1xuXG5jb25zdCBSRVNFVCA9ICdcXHgxYlswbSc7XG5jb25zdCBSRUQgPSAnXFx4MWJbMzFtJztcbmNvbnN0IFlFTExPVyA9ICdcXHgxYlszM20nO1xuY29uc3QgQkxVRSA9ICdcXHgxYlszNm0nO1xuXG5leHBvcnQgY29uc3QgREVCVUcgPSBgJHtCTFVFfURlYnVnOiR7UkVTRVR9YDtcbmV4cG9ydCBjb25zdCBXQVJOID0gYCR7WUVMTE9XfVdhcm5pbmc6JHtSRVNFVH1gO1xuZXhwb3J0IGNvbnN0IEVSUk9SID0gYCR7UkVEfUVycm9yOiR7UkVTRVR9YDtcblxuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICBkZWJ1ZyxcbiAgaW5mbyxcbiAgd2FybixcbiAgZXJyb3IsXG59XG5cbi8qKlxuICogQSBzaW1wbGUgbG9nZ2VyIHRoYXQgb3V0cHV0cyBkaXJlY3RseSB0byB0aGUgQ29uc29sZS5cbiAqXG4gKiBUaGUgbG9nIG1lc3NhZ2VzIGNhbiBiZSBmaWx0ZXJlZCBiYXNlZCBvbiBzZXZlcml0eSB2aWEgdGhlIGBsb2dMZXZlbGBcbiAqIGNvbnN0cnVjdG9yIHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnNvbGVMb2dnZXIgaW1wbGVtZW50cyBMb2dnZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ0xldmVsOiBMb2dMZXZlbCkge31cbiAgZGVidWcoLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICBpZiAodGhpcy5sb2dMZXZlbCA8PSBMb2dMZXZlbC5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhERUJVRywgLi4uYXJncyk7XG4gIH1cbiAgaW5mbyguLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLmxvZ0xldmVsIDw9IExvZ0xldmVsLmluZm8pIGNvbnNvbGUuaW5mbyguLi5hcmdzKTtcbiAgfVxuICB3YXJuKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMubG9nTGV2ZWwgPD0gTG9nTGV2ZWwud2FybikgY29uc29sZS53YXJuKFdBUk4sIC4uLmFyZ3MpO1xuICB9XG4gIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMubG9nTGV2ZWwgPD0gTG9nTGV2ZWwuZXJyb3IpIGNvbnNvbGUuZXJyb3IoRVJST1IsIC4uLmFyZ3MpO1xuICB9XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZV9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvbG9nZ2luZy9jb25zb2xlX2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCx3RUFBMEM7SUFFMUMsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ3hCLElBQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztJQUN2QixJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRVgsUUFBQSxLQUFLLEdBQU0sSUFBSSxjQUFTLEtBQU8sQ0FBQztJQUNoQyxRQUFBLElBQUksR0FBTSxNQUFNLGdCQUFXLEtBQU8sQ0FBQztJQUNuQyxRQUFBLEtBQUssR0FBTSxHQUFHLGNBQVMsS0FBTyxDQUFDO0lBRTVDOzs7OztPQUtHO0lBQ0g7UUFDRSx1QkFBbUIsS0FBZTtZQUFmLFVBQUssR0FBTCxLQUFLLENBQVU7UUFBRyxDQUFDO1FBQ3RDLDZCQUFLLEdBQUw7WUFBTSxjQUFpQjtpQkFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO2dCQUFqQix5QkFBaUI7O1lBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxpQkFBUSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLEtBQUssT0FBYixPQUFPLG9CQUFPLGFBQUssR0FBSyxJQUFJLEdBQUU7UUFDbEUsQ0FBQztRQUNELDRCQUFJLEdBQUo7WUFBSyxjQUFpQjtpQkFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO2dCQUFqQix5QkFBaUI7O1lBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxpQkFBUSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxDQUFDLElBQUksT0FBWixPQUFPLG1CQUFTLElBQUksR0FBRTtRQUN6RCxDQUFDO1FBQ0QsNEJBQUksR0FBSjtZQUFLLGNBQWlCO2lCQUFqQixVQUFpQixFQUFqQixxQkFBaUIsRUFBakIsSUFBaUI7Z0JBQWpCLHlCQUFpQjs7WUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLGlCQUFRLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsSUFBSSxPQUFaLE9BQU8sb0JBQU0sWUFBSSxHQUFLLElBQUksR0FBRTtRQUMvRCxDQUFDO1FBQ0QsNkJBQUssR0FBTDtZQUFNLGNBQWlCO2lCQUFqQixVQUFpQixFQUFqQixxQkFBaUIsRUFBakIsSUFBaUI7Z0JBQWpCLHlCQUFpQjs7WUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLGlCQUFRLENBQUMsS0FBSztnQkFBRSxPQUFPLENBQUMsS0FBSyxPQUFiLE9BQU8sb0JBQU8sYUFBSyxHQUFLLElBQUksR0FBRTtRQUNsRSxDQUFDO1FBQ0gsb0JBQUM7SUFBRCxDQUFDLEFBZEQsSUFjQztJQWRZLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMb2dMZXZlbCwgTG9nZ2VyfSBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IFJFU0VUID0gJ1xceDFiWzBtJztcbmNvbnN0IFJFRCA9ICdcXHgxYlszMW0nO1xuY29uc3QgWUVMTE9XID0gJ1xceDFiWzMzbSc7XG5jb25zdCBCTFVFID0gJ1xceDFiWzM2bSc7XG5cbmV4cG9ydCBjb25zdCBERUJVRyA9IGAke0JMVUV9RGVidWc6JHtSRVNFVH1gO1xuZXhwb3J0IGNvbnN0IFdBUk4gPSBgJHtZRUxMT1d9V2FybmluZzoke1JFU0VUfWA7XG5leHBvcnQgY29uc3QgRVJST1IgPSBgJHtSRUR9RXJyb3I6JHtSRVNFVH1gO1xuXG4vKipcbiAqIEEgc2ltcGxlIGxvZ2dlciB0aGF0IG91dHB1dHMgZGlyZWN0bHkgdG8gdGhlIENvbnNvbGUuXG4gKlxuICogVGhlIGxvZyBtZXNzYWdlcyBjYW4gYmUgZmlsdGVyZWQgYmFzZWQgb24gc2V2ZXJpdHkgdmlhIHRoZSBgbG9nTGV2ZWxgXG4gKiBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zb2xlTG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyIHtcbiAgY29uc3RydWN0b3IocHVibGljIGxldmVsOiBMb2dMZXZlbCkge31cbiAgZGVidWcoLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICBpZiAodGhpcy5sZXZlbCA8PSBMb2dMZXZlbC5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhERUJVRywgLi4uYXJncyk7XG4gIH1cbiAgaW5mbyguLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLmxldmVsIDw9IExvZ0xldmVsLmluZm8pIGNvbnNvbGUuaW5mbyguLi5hcmdzKTtcbiAgfVxuICB3YXJuKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMubGV2ZWwgPD0gTG9nTGV2ZWwud2FybikgY29uc29sZS53YXJuKFdBUk4sIC4uLmFyZ3MpO1xuICB9XG4gIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMubGV2ZWwgPD0gTG9nTGV2ZWwuZXJyb3IpIGNvbnNvbGUuZXJyb3IoRVJST1IsIC4uLmFyZ3MpO1xuICB9XG59XG4iXX0=
@@ -11,8 +11,15 @@
11
11
  * output from the standard ConsoleLogger.
12
12
  */
13
13
  export interface Logger {
14
+ level: LogLevel;
14
15
  debug(...args: string[]): void;
15
16
  info(...args: string[]): void;
16
17
  warn(...args: string[]): void;
17
18
  error(...args: string[]): void;
18
19
  }
20
+ export declare enum LogLevel {
21
+ debug = 0,
22
+ info = 1,
23
+ warn = 2,
24
+ error = 3
25
+ }
@@ -16,5 +16,12 @@
16
16
  })(function (require, exports) {
17
17
  "use strict";
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
+ var LogLevel;
20
+ (function (LogLevel) {
21
+ LogLevel[LogLevel["debug"] = 0] = "debug";
22
+ LogLevel[LogLevel["info"] = 1] = "info";
23
+ LogLevel[LogLevel["warn"] = 2] = "warn";
24
+ LogLevel[LogLevel["error"] = 3] = "error";
25
+ })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
19
26
  });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2xvZ2dpbmcvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UgaWYgeW91IHdhbnQgdG8gcHJvdmlkZSBkaWZmZXJlbnQgbG9nZ2luZ1xuICogb3V0cHV0IGZyb20gdGhlIHN0YW5kYXJkIENvbnNvbGVMb2dnZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyIHtcbiAgZGVidWcoLi4uYXJnczogc3RyaW5nW10pOiB2b2lkO1xuICBpbmZvKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZDtcbiAgd2FybiguLi5hcmdzOiBzdHJpbmdbXSk6IHZvaWQ7XG4gIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZDtcbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2xvZ2dpbmcvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0lBY0gsSUFBWSxRQUtYO0lBTEQsV0FBWSxRQUFRO1FBQ2xCLHlDQUFLLENBQUE7UUFDTCx1Q0FBSSxDQUFBO1FBQ0osdUNBQUksQ0FBQTtRQUNKLHlDQUFLLENBQUE7SUFDUCxDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIGlmIHlvdSB3YW50IHRvIHByb3ZpZGUgZGlmZmVyZW50IGxvZ2dpbmdcbiAqIG91dHB1dCBmcm9tIHRoZSBzdGFuZGFyZCBDb25zb2xlTG9nZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gIGxldmVsOiBMb2dMZXZlbDtcbiAgZGVidWcoLi4uYXJnczogc3RyaW5nW10pOiB2b2lkO1xuICBpbmZvKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZDtcbiAgd2FybiguLi5hcmdzOiBzdHJpbmdbXSk6IHZvaWQ7XG4gIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICBkZWJ1ZyxcbiAgaW5mbyxcbiAgd2FybixcbiAgZXJyb3IsXG59XG4iXX0=