@angular/compiler-cli 10.1.0-rc.0 → 10.1.3
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.
- package/ngcc/src/execution/create_compile_function.js +6 -3
- package/ngcc/src/host/esm2015_host.d.ts +18 -0
- package/ngcc/src/host/esm2015_host.js +53 -31
- package/ngcc/src/main.js +9 -12
- package/ngcc/src/ngcc_options.d.ts +8 -7
- package/ngcc/src/ngcc_options.js +27 -3
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/ngcc/src/packages/entry_point_bundle.d.ts +12 -1
- package/ngcc/src/packages/entry_point_bundle.js +9 -6
- package/ngcc/src/packages/ngcc_compiler_host.d.ts +16 -1
- package/ngcc/src/packages/ngcc_compiler_host.js +35 -5
- package/ngcc/src/packages/source_file_cache.d.ts +97 -0
- package/ngcc/src/packages/source_file_cache.js +207 -0
- package/ngcc/src/rendering/renderer.js +9 -10
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/component.d.ts +4 -1
- package/src/ngtsc/annotations/src/component.js +94 -122
- package/src/ngtsc/annotations/src/directive.d.ts +5 -1
- package/src/ngtsc/annotations/src/directive.js +21 -11
- package/src/ngtsc/annotations/src/typecheck_scopes.d.ts +56 -0
- package/src/ngtsc/annotations/src/typecheck_scopes.js +109 -0
- package/src/ngtsc/annotations/src/util.js +4 -2
- package/src/ngtsc/core/src/compiler.js +4 -3
- package/src/ngtsc/diagnostics/src/error_code.d.ts +4 -0
- package/src/ngtsc/diagnostics/src/error_code.js +5 -1
- package/src/ngtsc/file_system/src/invalid_file_system.d.ts +2 -2
- package/src/ngtsc/file_system/src/invalid_file_system.js +1 -1
- package/src/ngtsc/file_system/src/node_js_file_system.d.ts +2 -2
- package/src/ngtsc/file_system/src/node_js_file_system.js +1 -1
- package/src/ngtsc/file_system/src/types.d.ts +2 -2
- package/src/ngtsc/file_system/src/types.js +1 -1
- package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +3 -3
- package/src/ngtsc/file_system/testing/src/mock_file_system.js +2 -2
- package/src/ngtsc/indexer/src/template.js +10 -24
- package/src/ngtsc/metadata/index.d.ts +2 -0
- package/src/ngtsc/metadata/index.js +7 -3
- package/src/ngtsc/metadata/src/api.d.ts +13 -4
- package/src/ngtsc/metadata/src/api.js +1 -1
- package/src/ngtsc/metadata/src/dts.js +7 -4
- package/src/ngtsc/metadata/src/inheritance.d.ts +1 -1
- package/src/ngtsc/metadata/src/inheritance.js +10 -6
- package/src/ngtsc/metadata/src/property_mapping.d.ts +117 -0
- package/src/ngtsc/metadata/src/property_mapping.js +244 -0
- package/src/ngtsc/metadata/src/util.d.ts +2 -3
- package/src/ngtsc/metadata/src/util.js +9 -9
- package/src/ngtsc/modulewithproviders/src/scanner.js +2 -2
- package/src/ngtsc/reflection/src/host.d.ts +1 -1
- package/src/ngtsc/reflection/src/host.js +1 -1
- package/src/ngtsc/reflection/src/type_to_value.js +6 -2
- package/src/ngtsc/scope/src/local.d.ts +1 -0
- package/src/ngtsc/scope/src/local.js +2 -1
- package/src/ngtsc/translator/index.d.ts +1 -1
- package/src/ngtsc/translator/index.js +3 -2
- package/src/ngtsc/translator/src/translator.d.ts +8 -1
- package/src/ngtsc/translator/src/translator.js +185 -111
- package/src/ngtsc/typecheck/api/api.d.ts +3 -1
- package/src/ngtsc/typecheck/api/api.js +1 -1
- package/src/ngtsc/typecheck/diagnostics/index.d.ts +10 -0
- package/src/ngtsc/typecheck/diagnostics/index.js +23 -0
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +33 -0
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +114 -0
- package/src/ngtsc/typecheck/diagnostics/src/id.d.ts +11 -0
- package/src/ngtsc/typecheck/diagnostics/src/id.js +37 -0
- package/src/ngtsc/typecheck/index.d.ts +0 -1
- package/src/ngtsc/typecheck/index.js +3 -5
- package/src/ngtsc/typecheck/src/checker.js +1 -1
- package/src/ngtsc/typecheck/src/context.d.ts +1 -1
- package/src/ngtsc/typecheck/src/context.js +3 -3
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -22
- package/src/ngtsc/typecheck/src/diagnostics.js +5 -96
- package/src/ngtsc/typecheck/src/dom.d.ts +2 -1
- package/src/ngtsc/typecheck/src/dom.js +3 -3
- package/src/ngtsc/typecheck/src/environment.js +4 -4
- package/src/ngtsc/typecheck/src/oob.d.ts +2 -1
- package/src/ngtsc/typecheck/src/oob.js +3 -3
- package/src/ngtsc/typecheck/src/source.js +5 -18
- package/src/ngtsc/typecheck/src/type_check_block.js +49 -95
- package/src/transformers/node_emitter.d.ts +2 -8
- package/src/transformers/node_emitter.js +54 -68
- package/src/transformers/node_emitter_transform.js +8 -8
- package/src/transformers/util.d.ts +6 -0
- package/src/transformers/util.js +11 -2
- package/src/version.js +1 -1
|
@@ -11,13 +11,14 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/typecheck/src/source", ["require", "exports", "@angular/compiler", "@angular/compiler-cli/src/ngtsc/typecheck/src/line_mappings"], factory);
|
|
14
|
+
define("@angular/compiler-cli/src/ngtsc/typecheck/src/source", ["require", "exports", "@angular/compiler", "@angular/compiler-cli/src/ngtsc/typecheck/diagnostics", "@angular/compiler-cli/src/ngtsc/typecheck/src/line_mappings"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.TemplateSourceManager = exports.TemplateSource = void 0;
|
|
20
20
|
var compiler_1 = require("@angular/compiler");
|
|
21
|
+
var diagnostics_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/diagnostics");
|
|
21
22
|
var line_mappings_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/line_mappings");
|
|
22
23
|
/**
|
|
23
24
|
* Represents the source of a template that was processed during type-checking. This information is
|
|
@@ -63,10 +64,10 @@
|
|
|
63
64
|
this.templateSources = new Map();
|
|
64
65
|
}
|
|
65
66
|
TemplateSourceManager.prototype.getTemplateId = function (node) {
|
|
66
|
-
return getTemplateId(node);
|
|
67
|
+
return diagnostics_1.getTemplateId(node);
|
|
67
68
|
};
|
|
68
69
|
TemplateSourceManager.prototype.captureSource = function (node, mapping, file) {
|
|
69
|
-
var id = getTemplateId(node);
|
|
70
|
+
var id = diagnostics_1.getTemplateId(node);
|
|
70
71
|
this.templateSources.set(id, new TemplateSource(mapping, file));
|
|
71
72
|
return id;
|
|
72
73
|
};
|
|
@@ -86,19 +87,5 @@
|
|
|
86
87
|
return TemplateSourceManager;
|
|
87
88
|
}());
|
|
88
89
|
exports.TemplateSourceManager = TemplateSourceManager;
|
|
89
|
-
var TEMPLATE_ID = Symbol('ngTemplateId');
|
|
90
|
-
var NEXT_TEMPLATE_ID = Symbol('ngNextTemplateId');
|
|
91
|
-
function getTemplateId(node) {
|
|
92
|
-
if (node[TEMPLATE_ID] === undefined) {
|
|
93
|
-
node[TEMPLATE_ID] = allocateTemplateId(node.getSourceFile());
|
|
94
|
-
}
|
|
95
|
-
return node[TEMPLATE_ID];
|
|
96
|
-
}
|
|
97
|
-
function allocateTemplateId(sf) {
|
|
98
|
-
if (sf[NEXT_TEMPLATE_ID] === undefined) {
|
|
99
|
-
sf[NEXT_TEMPLATE_ID] = 1;
|
|
100
|
-
}
|
|
101
|
-
return ("tcb" + sf[NEXT_TEMPLATE_ID]++);
|
|
102
|
-
}
|
|
103
90
|
});
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCw4Q0FBc0c7SUFJdEcscUZBQTZDO0lBRzdDLDZGQUFzRjtJQUV0Rjs7O09BR0c7SUFDSDtRQUdFLHdCQUFxQixPQUE4QixFQUFVLElBQXFCO1lBQTdELFlBQU8sR0FBUCxPQUFPLENBQXVCO1lBQVUsU0FBSSxHQUFKLElBQUksQ0FBaUI7WUFGMUUsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFFNEMsQ0FBQztRQUV0RiwwQ0FBaUIsR0FBakIsVUFBa0IsS0FBYSxFQUFFLEdBQVc7WUFDMUMsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sSUFBSSwwQkFBZSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRU8sd0NBQWUsR0FBdkIsVUFBd0IsUUFBZ0I7WUFDdEMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsSUFBQSxLQUFvQiwrQ0FBK0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQXhFLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBeUQsQ0FBQztZQUNoRixPQUFPLElBQUksd0JBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVPLDBDQUFpQixHQUF6QjtZQUNFLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsb0NBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzRDtZQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0gscUJBQUM7SUFBRCxDQUFDLEFBdkJELElBdUJDO0lBdkJZLHdDQUFjO0lBeUIzQjs7OztPQUlHO0lBQ0g7UUFBQTtZQUNFOzs7O2VBSUc7WUFDSyxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBMkJsRSxDQUFDO1FBekJDLDZDQUFhLEdBQWIsVUFBYyxJQUF5QjtZQUNyQyxPQUFPLDJCQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELDZDQUFhLEdBQWIsVUFBYyxJQUF5QixFQUFFLE9BQThCLEVBQUUsSUFBcUI7WUFFNUYsSUFBTSxFQUFFLEdBQUcsMkJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDaEUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsZ0RBQWdCLEdBQWhCLFVBQWlCLEVBQWM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFtQyxFQUFJLENBQUMsQ0FBQzthQUMxRDtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLENBQUMsT0FBTyxDQUFDO1FBQy9DLENBQUM7UUFFRCxpREFBaUIsR0FBakIsVUFBa0IsRUFBYyxFQUFFLElBQXdCO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDakMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1lBQ3JELE9BQU8sY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDSCw0QkFBQztJQUFELENBQUMsQUFqQ0QsSUFpQ0M7SUFqQ1ksc0RBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QWJzb2x1dGVTb3VyY2VTcGFuLCBQYXJzZUxvY2F0aW9uLCBQYXJzZVNvdXJjZUZpbGUsIFBhcnNlU291cmNlU3Bhbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7VGVtcGxhdGVJZCwgVGVtcGxhdGVTb3VyY2VNYXBwaW5nfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtnZXRUZW1wbGF0ZUlkfSBmcm9tICcuLi9kaWFnbm9zdGljcyc7XG5cbmltcG9ydCB7VGVtcGxhdGVTb3VyY2VSZXNvbHZlcn0gZnJvbSAnLi9kaWFnbm9zdGljcyc7XG5pbXBvcnQge2NvbXB1dGVMaW5lU3RhcnRzTWFwLCBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9ufSBmcm9tICcuL2xpbmVfbWFwcGluZ3MnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNvdXJjZSBvZiBhIHRlbXBsYXRlIHRoYXQgd2FzIHByb2Nlc3NlZCBkdXJpbmcgdHlwZS1jaGVja2luZy4gVGhpcyBpbmZvcm1hdGlvbiBpc1xuICogdXNlZCB3aGVuIHRyYW5zbGF0aW5nIHBhcnNlIG9mZnNldHMgaW4gZGlhZ25vc3RpY3MgYmFjayB0byB0aGVpciBvcmlnaW5hbCBsaW5lL2NvbHVtbiBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRlbXBsYXRlU291cmNlIHtcbiAgcHJpdmF0ZSBsaW5lU3RhcnRzOiBudW1iZXJbXXxudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtYXBwaW5nOiBUZW1wbGF0ZVNvdXJjZU1hcHBpbmcsIHByaXZhdGUgZmlsZTogUGFyc2VTb3VyY2VGaWxlKSB7fVxuXG4gIHRvUGFyc2VTb3VyY2VTcGFuKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogUGFyc2VTb3VyY2VTcGFuIHtcbiAgICBjb25zdCBzdGFydExvYyA9IHRoaXMudG9QYXJzZUxvY2F0aW9uKHN0YXJ0KTtcbiAgICBjb25zdCBlbmRMb2MgPSB0aGlzLnRvUGFyc2VMb2NhdGlvbihlbmQpO1xuICAgIHJldHVybiBuZXcgUGFyc2VTb3VyY2VTcGFuKHN0YXJ0TG9jLCBlbmRMb2MpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b1BhcnNlTG9jYXRpb24ocG9zaXRpb246IG51bWJlcikge1xuICAgIGNvbnN0IGxpbmVTdGFydHMgPSB0aGlzLmFjcXVpcmVMaW5lU3RhcnRzKCk7XG4gICAgY29uc3Qge2xpbmUsIGNoYXJhY3Rlcn0gPSBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uKGxpbmVTdGFydHMsIHBvc2l0aW9uKTtcbiAgICByZXR1cm4gbmV3IFBhcnNlTG9jYXRpb24odGhpcy5maWxlLCBwb3NpdGlvbiwgbGluZSwgY2hhcmFjdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYWNxdWlyZUxpbmVTdGFydHMoKTogbnVtYmVyW10ge1xuICAgIGlmICh0aGlzLmxpbmVTdGFydHMgPT09IG51bGwpIHtcbiAgICAgIHRoaXMubGluZVN0YXJ0cyA9IGNvbXB1dGVMaW5lU3RhcnRzTWFwKHRoaXMuZmlsZS5jb250ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGluZVN0YXJ0cztcbiAgfVxufVxuXG4vKipcbiAqIEFzc2lnbnMgSURzIHRvIHRlbXBsYXRlcyBhbmQga2VlcHMgdHJhY2sgb2YgdGhlaXIgb3JpZ2lucy5cbiAqXG4gKiBJbXBsZW1lbnRzIGBUZW1wbGF0ZVNvdXJjZVJlc29sdmVyYCB0byByZXNvbHZlIHRoZSBzb3VyY2Ugb2YgYSB0ZW1wbGF0ZSBiYXNlZCBvbiB0aGVzZSBJRHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVNvdXJjZU1hbmFnZXIgaW1wbGVtZW50cyBUZW1wbGF0ZVNvdXJjZVJlc29sdmVyIHtcbiAgLyoqXG4gICAqIFRoaXMgbWFwIGtlZXBzIHRyYWNrIG9mIGFsbCB0ZW1wbGF0ZSBzb3VyY2VzIHRoYXQgaGF2ZSBiZWVuIHR5cGUtY2hlY2tlZCBieSB0aGUgaWQgdGhhdCBpc1xuICAgKiBhdHRhY2hlZCB0byBhIFRDQidzIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFzIGxlYWRpbmcgdHJpdmlhLiBUaGlzIGVuYWJsZXMgdHJhbnNsYXRpb24gb2ZcbiAgICogZGlhZ25vc3RpY3MgcHJvZHVjZWQgZm9yIFRDQiBjb2RlIHRvIHRoZWlyIHNvdXJjZSBsb2NhdGlvbiBpbiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBwcml2YXRlIHRlbXBsYXRlU291cmNlcyA9IG5ldyBNYXA8VGVtcGxhdGVJZCwgVGVtcGxhdGVTb3VyY2U+KCk7XG5cbiAgZ2V0VGVtcGxhdGVJZChub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogVGVtcGxhdGVJZCB7XG4gICAgcmV0dXJuIGdldFRlbXBsYXRlSWQobm9kZSk7XG4gIH1cblxuICBjYXB0dXJlU291cmNlKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sIG1hcHBpbmc6IFRlbXBsYXRlU291cmNlTWFwcGluZywgZmlsZTogUGFyc2VTb3VyY2VGaWxlKTpcbiAgICAgIFRlbXBsYXRlSWQge1xuICAgIGNvbnN0IGlkID0gZ2V0VGVtcGxhdGVJZChub2RlKTtcbiAgICB0aGlzLnRlbXBsYXRlU291cmNlcy5zZXQoaWQsIG5ldyBUZW1wbGF0ZVNvdXJjZShtYXBwaW5nLCBmaWxlKSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgZ2V0U291cmNlTWFwcGluZyhpZDogVGVtcGxhdGVJZCk6IFRlbXBsYXRlU291cmNlTWFwcGluZyB7XG4gICAgaWYgKCF0aGlzLnRlbXBsYXRlU291cmNlcy5oYXMoaWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdW5rbm93biB0ZW1wbGF0ZSBJRDogJHtpZH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTb3VyY2VzLmdldChpZCkhLm1hcHBpbmc7XG4gIH1cblxuICB0b1BhcnNlU291cmNlU3BhbihpZDogVGVtcGxhdGVJZCwgc3BhbjogQWJzb2x1dGVTb3VyY2VTcGFuKTogUGFyc2VTb3VyY2VTcGFufG51bGwge1xuICAgIGlmICghdGhpcy50ZW1wbGF0ZVNvdXJjZXMuaGFzKGlkKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU291cmNlID0gdGhpcy50ZW1wbGF0ZVNvdXJjZXMuZ2V0KGlkKSE7XG4gICAgcmV0dXJuIHRlbXBsYXRlU291cmNlLnRvUGFyc2VTb3VyY2VTcGFuKHNwYW4uc3RhcnQsIHNwYW4uZW5kKTtcbiAgfVxufVxuIl19
|