@angular/compiler-cli 12.0.0-rc.0 → 12.0.0
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/linker/babel/index.d.ts +2 -0
- package/linker/babel/index.js +4 -2
- package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
- package/linker/babel/src/ast/babel_ast_host.js +20 -4
- package/linker/babel/src/babel_plugin.d.ts +26 -0
- package/linker/babel/src/babel_plugin.js +38 -0
- package/linker/babel/src/es2015_linker_plugin.js +4 -1
- package/linker/src/ast/ast_host.d.ts +7 -1
- package/linker/src/ast/ast_host.js +1 -1
- package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
- package/linker/src/ast/typescript/typescript_ast_host.js +24 -4
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +2 -2
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/package.json +3 -3
- package/src/ngtsc/annotations/src/component.d.ts +1 -2
- package/src/ngtsc/annotations/src/component.js +15 -22
- package/src/ngtsc/imports/src/emitter.js +26 -4
- package/src/ngtsc/imports/src/find_export.js +29 -9
- package/src/ngtsc/util/src/typescript.d.ts +3 -0
- package/src/ngtsc/util/src/typescript.js +7 -2
- package/src/version.d.ts +1 -1
- package/src/version.js +3 -3
- package/src/ngtsc/util/src/ts_source_map_bug_29300.d.ts +0 -16
- package/src/ngtsc/util/src/ts_source_map_bug_29300.js +0 -98
package/linker/babel/index.d.ts
CHANGED
|
@@ -6,4 +6,6 @@
|
|
|
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 { defaultLinkerPlugin } from './src/babel_plugin';
|
|
9
10
|
export { createEs2015LinkerPlugin } from './src/es2015_linker_plugin';
|
|
11
|
+
export default defaultLinkerPlugin;
|
package/linker/babel/index.js
CHANGED
|
@@ -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/linker/babel", ["require", "exports", "@angular/compiler-cli/linker/babel/src/es2015_linker_plugin"], factory);
|
|
7
|
+
define("@angular/compiler-cli/linker/babel", ["require", "exports", "@angular/compiler-cli/linker/babel/src/babel_plugin", "@angular/compiler-cli/linker/babel/src/es2015_linker_plugin"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
* Use of this source code is governed by an MIT-style license that can be
|
|
18
18
|
* found in the LICENSE file at https://angular.io/license
|
|
19
19
|
*/
|
|
20
|
+
var babel_plugin_1 = require("@angular/compiler-cli/linker/babel/src/babel_plugin");
|
|
20
21
|
var es2015_linker_plugin_1 = require("@angular/compiler-cli/linker/babel/src/es2015_linker_plugin");
|
|
21
22
|
Object.defineProperty(exports, "createEs2015LinkerPlugin", { enumerable: true, get: function () { return es2015_linker_plugin_1.createEs2015LinkerPlugin; } });
|
|
23
|
+
exports.default = babel_plugin_1.defaultLinkerPlugin;
|
|
22
24
|
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILG9GQUF1RDtJQUV2RCxvR0FBb0U7SUFBNUQsZ0lBQUEsd0JBQXdCLE9BQUE7SUFDaEMsa0JBQWUsa0NBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7ZGVmYXVsdExpbmtlclBsdWdpbn0gZnJvbSAnLi9zcmMvYmFiZWxfcGx1Z2luJztcblxuZXhwb3J0IHtjcmVhdGVFczIwMTVMaW5rZXJQbHVnaW59IGZyb20gJy4vc3JjL2VzMjAxNV9saW5rZXJfcGx1Z2luJztcbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRMaW5rZXJQbHVnaW47XG4iXX0=
|
|
@@ -17,7 +17,7 @@ export declare class BabelAstHost implements AstHost<t.Expression> {
|
|
|
17
17
|
parseStringLiteral(str: t.Expression): string;
|
|
18
18
|
isNumericLiteral: typeof t.isNumericLiteral;
|
|
19
19
|
parseNumericLiteral(num: t.Expression): number;
|
|
20
|
-
isBooleanLiteral:
|
|
20
|
+
isBooleanLiteral(bool: t.Expression): boolean;
|
|
21
21
|
parseBooleanLiteral(bool: t.Expression): boolean;
|
|
22
22
|
isArrayLiteral: typeof t.isArrayExpression;
|
|
23
23
|
parseArrayLiteral(array: t.Expression): t.Expression[];
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
function BabelAstHost() {
|
|
28
28
|
this.isStringLiteral = t.isStringLiteral;
|
|
29
29
|
this.isNumericLiteral = t.isNumericLiteral;
|
|
30
|
-
this.isBooleanLiteral = t.isBooleanLiteral;
|
|
31
30
|
this.isArrayLiteral = t.isArrayExpression;
|
|
32
31
|
this.isObjectLiteral = t.isObjectExpression;
|
|
33
32
|
this.isCallExpression = t.isCallExpression;
|
|
@@ -51,9 +50,19 @@
|
|
|
51
50
|
linker_1.assert(num, t.isNumericLiteral, 'a numeric literal');
|
|
52
51
|
return num.value;
|
|
53
52
|
};
|
|
53
|
+
BabelAstHost.prototype.isBooleanLiteral = function (bool) {
|
|
54
|
+
return t.isBooleanLiteral(bool) || isMinifiedBooleanLiteral(bool);
|
|
55
|
+
};
|
|
54
56
|
BabelAstHost.prototype.parseBooleanLiteral = function (bool) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
if (t.isBooleanLiteral(bool)) {
|
|
58
|
+
return bool.value;
|
|
59
|
+
}
|
|
60
|
+
else if (isMinifiedBooleanLiteral(bool)) {
|
|
61
|
+
return !bool.argument.value;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new linker_1.FatalLinkerError(bool, 'Unsupported syntax, expected a boolean literal.');
|
|
65
|
+
}
|
|
57
66
|
};
|
|
58
67
|
BabelAstHost.prototype.parseArrayLiteral = function (array) {
|
|
59
68
|
linker_1.assert(array, t.isArrayExpression, 'an array literal');
|
|
@@ -161,5 +170,12 @@
|
|
|
161
170
|
function isNotSpreadArgument(arg) {
|
|
162
171
|
return !t.isSpreadElement(arg);
|
|
163
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Return true if the node is either `!0` or `!1`.
|
|
175
|
+
*/
|
|
176
|
+
function isMinifiedBooleanLiteral(node) {
|
|
177
|
+
return t.isUnaryExpression(node) && node.prefix && node.operator === '!' &&
|
|
178
|
+
t.isNumericLiteral(node.argument) && (node.argument.value === 0 || node.argument.value === 1);
|
|
179
|
+
}
|
|
164
180
|
});
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILGdDQUFrQztJQUVsQyx1REFBNEU7SUFFNUU7O09BRUc7SUFDSDtRQUFBO1lBV0Usb0JBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBT3BDLHFCQUFnQixHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztZQU90QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFPdEMsbUJBQWMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUM7WUFXckMsb0JBQWUsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUM7WUE0Q3ZDLHFCQUFnQixHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQTJCeEMsQ0FBQztRQWpIQyxvQ0FBYSxHQUFiLFVBQWMsSUFBa0I7WUFDOUIsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbEI7aUJBQU0sSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7UUFJRCx5Q0FBa0IsR0FBbEIsVUFBbUIsR0FBaUI7WUFDbEMsZUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDbkQsT0FB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QUkseUJBQWdCLENBQ3RCLElBQUksRUFBRSxxRUFBcUUsQ0FBQyxDQUFDO2FBQ2xGO1lBQ0QsT0FBTztnQkFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRzthQUNqQixDQUFDO1FBQ0osQ0FBQztRQUNILG1CQUFDO0lBQUQsQ0FBQyxBQWxIRCxJQWtIQztJQWxIWSxvQ0FBWTtJQW9IekI7OztPQUdHO0lBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxDQUFvQztRQUU3RCxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsa0JBQWtCLENBQUMsQ0FBK0I7UUFDekQsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUdEOztPQUVHO0lBQ0gsU0FBUyxjQUFjLENBQUMsQ0FBZTtRQUNyQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQU9EOztPQUVHO0lBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxHQUFpQjtRQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHthc3NlcnQsIEFzdEhvc3QsIEZhdGFsTGlua2VyRXJyb3IsIFJhbmdlfSBmcm9tICcuLi8uLi8uLi8uLi9saW5rZXInO1xuXG4vKipcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYEFzdEhvc3RgIGlzIGFibGUgdG8gZ2V0IGluZm9ybWF0aW9uIGZyb20gQmFiZWwgQVNUIG5vZGVzLlxuICovXG5leHBvcnQgY2xhc3MgQmFiZWxBc3RIb3N0IGltcGxlbWVudHMgQXN0SG9zdDx0LkV4cHJlc3Npb24+IHtcbiAgZ2V0U3ltYm9sTmFtZShub2RlOiB0LkV4cHJlc3Npb24pOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHQuaXNJZGVudGlmaWVyKG5vZGUpKSB7XG4gICAgICByZXR1cm4gbm9kZS5uYW1lO1xuICAgIH0gZWxzZSBpZiAodC5pc01lbWJlckV4cHJlc3Npb24obm9kZSkgJiYgdC5pc0lkZW50aWZpZXIobm9kZS5wcm9wZXJ0eSkpIHtcbiAgICAgIHJldHVybiBub2RlLnByb3BlcnR5Lm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzU3RyaW5nTGl0ZXJhbCA9IHQuaXNTdHJpbmdMaXRlcmFsO1xuXG4gIHBhcnNlU3RyaW5nTGl0ZXJhbChzdHI6IHQuRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgYXNzZXJ0KHN0ciwgdC5pc1N0cmluZ0xpdGVyYWwsICdhIHN0cmluZyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIHN0ci52YWx1ZTtcbiAgfVxuXG4gIGlzTnVtZXJpY0xpdGVyYWwgPSB0LmlzTnVtZXJpY0xpdGVyYWw7XG5cbiAgcGFyc2VOdW1lcmljTGl0ZXJhbChudW06IHQuRXhwcmVzc2lvbik6IG51bWJlciB7XG4gICAgYXNzZXJ0KG51bSwgdC5pc051bWVyaWNMaXRlcmFsLCAnYSBudW1lcmljIGxpdGVyYWwnKTtcbiAgICByZXR1cm4gbnVtLnZhbHVlO1xuICB9XG5cbiAgaXNCb29sZWFuTGl0ZXJhbCA9IHQuaXNCb29sZWFuTGl0ZXJhbDtcblxuICBwYXJzZUJvb2xlYW5MaXRlcmFsKGJvb2w6IHQuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIGFzc2VydChib29sLCB0LmlzQm9vbGVhbkxpdGVyYWwsICdhIGJvb2xlYW4gbGl0ZXJhbCcpO1xuICAgIHJldHVybiBib29sLnZhbHVlO1xuICB9XG5cbiAgaXNBcnJheUxpdGVyYWwgPSB0LmlzQXJyYXlFeHByZXNzaW9uO1xuXG4gIHBhcnNlQXJyYXlMaXRlcmFsKGFycmF5OiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGFycmF5LCB0LmlzQXJyYXlFeHByZXNzaW9uLCAnYW4gYXJyYXkgbGl0ZXJhbCcpO1xuICAgIHJldHVybiBhcnJheS5lbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICBhc3NlcnQoZWxlbWVudCwgaXNOb3RFbXB0eUVsZW1lbnQsICdlbGVtZW50IGluIGFycmF5IG5vdCB0byBiZSBlbXB0eScpO1xuICAgICAgYXNzZXJ0KGVsZW1lbnQsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2VsZW1lbnQgaW4gYXJyYXkgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzT2JqZWN0TGl0ZXJhbCA9IHQuaXNPYmplY3RFeHByZXNzaW9uO1xuXG4gIHBhcnNlT2JqZWN0TGl0ZXJhbChvYmo6IHQuRXhwcmVzc2lvbik6IE1hcDxzdHJpbmcsIHQuRXhwcmVzc2lvbj4ge1xuICAgIGFzc2VydChvYmosIHQuaXNPYmplY3RFeHByZXNzaW9uLCAnYW4gb2JqZWN0IGxpdGVyYWwnKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCB0LkV4cHJlc3Npb24+KCk7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBvYmoucHJvcGVydGllcykge1xuICAgICAgYXNzZXJ0KHByb3BlcnR5LCB0LmlzT2JqZWN0UHJvcGVydHksICdhIHByb3BlcnR5IGFzc2lnbm1lbnQnKTtcbiAgICAgIGFzc2VydChwcm9wZXJ0eS52YWx1ZSwgdC5pc0V4cHJlc3Npb24sICdhbiBleHByZXNzaW9uJyk7XG4gICAgICBhc3NlcnQocHJvcGVydHkua2V5LCBpc1Byb3BlcnR5TmFtZSwgJ2EgcHJvcGVydHkgbmFtZScpO1xuICAgICAgY29uc3Qga2V5ID0gdC5pc0lkZW50aWZpZXIocHJvcGVydHkua2V5KSA/IHByb3BlcnR5LmtleS5uYW1lIDogcHJvcGVydHkua2V5LnZhbHVlO1xuICAgICAgcmVzdWx0LnNldChrZXksIHByb3BlcnR5LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGU6IHQuRXhwcmVzc2lvbik6IG5vZGUgaXMgRXh0cmFjdDx0LkZ1bmN0aW9uLCB0LkV4cHJlc3Npb24+IHtcbiAgICByZXR1cm4gdC5pc0Z1bmN0aW9uKG5vZGUpO1xuICB9XG5cbiAgcGFyc2VSZXR1cm5WYWx1ZShmbjogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQoZm4sIHRoaXMuaXNGdW5jdGlvbkV4cHJlc3Npb24sICdhIGZ1bmN0aW9uJyk7XG4gICAgaWYgKCF0LmlzQmxvY2tTdGF0ZW1lbnQoZm4uYm9keSkpIHtcbiAgICAgIC8vIGl0IGlzIGEgc2ltcGxlIGFycmF5IGZ1bmN0aW9uIGV4cHJlc3Npb246IGAoLi4uKSA9PiBleHByYFxuICAgICAgcmV0dXJuIGZuLmJvZHk7XG4gICAgfVxuXG4gICAgLy8gaXQgaXMgYSBmdW5jdGlvbiAoYXJyb3cgb3Igbm9ybWFsKSB3aXRoIGEgYm9keS4gRS5nLjpcbiAgICAvLyAqIGAoLi4uKSA9PiB7IHN0bXQ7IC4uLiB9YFxuICAgIC8vICogYGZ1bmN0aW9uKC4uLikgeyBzdG10OyAuLi4gfWBcblxuICAgIGlmIChmbi5ib2R5LmJvZHkubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihcbiAgICAgICAgICBmbi5ib2R5LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBhIGZ1bmN0aW9uIGJvZHkgd2l0aCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50LicpO1xuICAgIH1cbiAgICBjb25zdCBzdG10ID0gZm4uYm9keS5ib2R5WzBdO1xuICAgIGFzc2VydChzdG10LCB0LmlzUmV0dXJuU3RhdGVtZW50LCAnYSBmdW5jdGlvbiBib2R5IHdpdGggYSBzaW5nbGUgcmV0dXJuIHN0YXRlbWVudCcpO1xuICAgIGlmIChzdG10LmFyZ3VtZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihzdG10LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBmdW5jdGlvbiB0byByZXR1cm4gYSB2YWx1ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RtdC5hcmd1bWVudDtcbiAgfVxuXG4gIGlzQ2FsbEV4cHJlc3Npb24gPSB0LmlzQ2FsbEV4cHJlc3Npb247XG4gIHBhcnNlQ2FsbGVlKGNhbGw6IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0KGNhbGwsIHQuaXNDYWxsRXhwcmVzc2lvbiwgJ2EgY2FsbCBleHByZXNzaW9uJyk7XG4gICAgYXNzZXJ0KGNhbGwuY2FsbGVlLCB0LmlzRXhwcmVzc2lvbiwgJ2FuIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gY2FsbC5jYWxsZWU7XG4gIH1cbiAgcGFyc2VBcmd1bWVudHMoY2FsbDogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uW10ge1xuICAgIGFzc2VydChjYWxsLCB0LmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiBjYWxsLmFyZ3VtZW50cy5tYXAoYXJnID0+IHtcbiAgICAgIGFzc2VydChhcmcsIGlzTm90U3ByZWFkQXJndW1lbnQsICdhcmd1bWVudCBub3QgdG8gdXNlIHNwcmVhZCBzeW50YXgnKTtcbiAgICAgIGFzc2VydChhcmcsIHQuaXNFeHByZXNzaW9uLCAnYXJndW1lbnQgdG8gYmUgYW4gZXhwcmVzc2lvbicpO1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJhbmdlKG5vZGU6IHQuRXhwcmVzc2lvbik6IFJhbmdlIHtcbiAgICBpZiAobm9kZS5sb2MgPT0gbnVsbCB8fCBub2RlLnN0YXJ0ID09PSBudWxsIHx8IG5vZGUuZW5kID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihcbiAgICAgICAgICBub2RlLCAnVW5hYmxlIHRvIHJlYWQgcmFuZ2UgZm9yIG5vZGUgLSBpdCBpcyBtaXNzaW5nIGxvY2F0aW9uIGluZm9ybWF0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnRMaW5lOiBub2RlLmxvYy5zdGFydC5saW5lIC0gMSwgIC8vIEJhYmVsIGxpbmVzIGFyZSAxLWJhc2VkXG4gICAgICBzdGFydENvbDogbm9kZS5sb2Muc3RhcnQuY29sdW1uLFxuICAgICAgc3RhcnRQb3M6IG5vZGUuc3RhcnQsXG4gICAgICBlbmRQb3M6IG5vZGUuZW5kLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBkb2VzIG5vdCByZXByZXNlbnQgYW4gZW1wdHkgZWxlbWVudCBpbiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFssZm9vXWAgdGhlIGZpcnN0IGVsZW1lbnQgaXMgXCJlbXB0eVwiLlxuICovXG5mdW5jdGlvbiBpc05vdEVtcHR5RWxlbWVudChlOiB0LkV4cHJlc3Npb258dC5TcHJlYWRFbGVtZW50fG51bGwpOiBlIGlzIHQuRXhwcmVzc2lvbnxcbiAgICB0LlNwcmVhZEVsZW1lbnQge1xuICByZXR1cm4gZSAhPT0gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBpcyBub3QgYSBzcHJlYWQgZWxlbWVudCBvZiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFt4LCAuLi5yZXN0XWAgdGhlIGAuLi5yZXN0YCBleHByZXNzaW9uIGlzIGEgc3ByZWFkIGVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIGlzTm90U3ByZWFkRWxlbWVudChlOiB0LkV4cHJlc3Npb258dC5TcHJlYWRFbGVtZW50KTogZSBpcyB0LkV4cHJlc3Npb24ge1xuICByZXR1cm4gIXQuaXNTcHJlYWRFbGVtZW50KGUpO1xufVxuXG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gY2FuIGJlIGNvbnNpZGVyZWQgYSB0ZXh0IGJhc2VkIHByb3BlcnR5IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydHlOYW1lKGU6IHQuRXhwcmVzc2lvbik6IGUgaXMgdC5JZGVudGlmaWVyfHQuU3RyaW5nTGl0ZXJhbHx0Lk51bWVyaWNMaXRlcmFsIHtcbiAgcmV0dXJuIHQuaXNJZGVudGlmaWVyKGUpIHx8IHQuaXNTdHJpbmdMaXRlcmFsKGUpIHx8IHQuaXNOdW1lcmljTGl0ZXJhbChlKTtcbn1cblxuLyoqXG4gKiBUaGUgZGVjbGFyZWQgdHlwZSBvZiBhbiBhcmd1bWVudCB0byBhIGNhbGwgZXhwcmVzc2lvbi5cbiAqL1xudHlwZSBBcmd1bWVudFR5cGUgPSB0LkNhbGxFeHByZXNzaW9uWydhcmd1bWVudHMnXVtudW1iZXJdO1xuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgYSBzcHJlYWQgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gaXNOb3RTcHJlYWRBcmd1bWVudChhcmc6IEFyZ3VtZW50VHlwZSk6IGFyZyBpcyBFeGNsdWRlPEFyZ3VtZW50VHlwZSwgdC5TcHJlYWRFbGVtZW50PiB7XG4gIHJldHVybiAhdC5pc1NwcmVhZEVsZW1lbnQoYXJnKTtcbn1cbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILGdDQUFrQztJQUVsQyx1REFBNEU7SUFFNUU7O09BRUc7SUFDSDtRQUFBO1lBV0Usb0JBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBT3BDLHFCQUFnQixHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztZQXFCdEMsbUJBQWMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUM7WUFXckMsb0JBQWUsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUM7WUE0Q3ZDLHFCQUFnQixHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQTJCeEMsQ0FBQztRQXhIQyxvQ0FBYSxHQUFiLFVBQWMsSUFBa0I7WUFDOUIsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbEI7aUJBQU0sSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7UUFJRCx5Q0FBa0IsR0FBbEIsVUFBbUIsR0FBaUI7WUFDbEMsZUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDbkQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ25CLENBQUM7UUFJRCww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QUFtQixDQUFDLEdBQWlCO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFJRDs7T0FFRztJQUNILFNBQVMsd0JBQXdCLENBQUMsSUFBa0I7UUFDbEQsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEdBQUc7WUFDcEUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHthc3NlcnQsIEFzdEhvc3QsIEZhdGFsTGlua2VyRXJyb3IsIFJhbmdlfSBmcm9tICcuLi8uLi8uLi8uLi9saW5rZXInO1xuXG4vKipcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYEFzdEhvc3RgIGlzIGFibGUgdG8gZ2V0IGluZm9ybWF0aW9uIGZyb20gQmFiZWwgQVNUIG5vZGVzLlxuICovXG5leHBvcnQgY2xhc3MgQmFiZWxBc3RIb3N0IGltcGxlbWVudHMgQXN0SG9zdDx0LkV4cHJlc3Npb24+IHtcbiAgZ2V0U3ltYm9sTmFtZShub2RlOiB0LkV4cHJlc3Npb24pOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHQuaXNJZGVudGlmaWVyKG5vZGUpKSB7XG4gICAgICByZXR1cm4gbm9kZS5uYW1lO1xuICAgIH0gZWxzZSBpZiAodC5pc01lbWJlckV4cHJlc3Npb24obm9kZSkgJiYgdC5pc0lkZW50aWZpZXIobm9kZS5wcm9wZXJ0eSkpIHtcbiAgICAgIHJldHVybiBub2RlLnByb3BlcnR5Lm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzU3RyaW5nTGl0ZXJhbCA9IHQuaXNTdHJpbmdMaXRlcmFsO1xuXG4gIHBhcnNlU3RyaW5nTGl0ZXJhbChzdHI6IHQuRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgYXNzZXJ0KHN0ciwgdC5pc1N0cmluZ0xpdGVyYWwsICdhIHN0cmluZyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIHN0ci52YWx1ZTtcbiAgfVxuXG4gIGlzTnVtZXJpY0xpdGVyYWwgPSB0LmlzTnVtZXJpY0xpdGVyYWw7XG5cbiAgcGFyc2VOdW1lcmljTGl0ZXJhbChudW06IHQuRXhwcmVzc2lvbik6IG51bWJlciB7XG4gICAgYXNzZXJ0KG51bSwgdC5pc051bWVyaWNMaXRlcmFsLCAnYSBudW1lcmljIGxpdGVyYWwnKTtcbiAgICByZXR1cm4gbnVtLnZhbHVlO1xuICB9XG5cbiAgaXNCb29sZWFuTGl0ZXJhbChib29sOiB0LkV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdC5pc0Jvb2xlYW5MaXRlcmFsKGJvb2wpIHx8IGlzTWluaWZpZWRCb29sZWFuTGl0ZXJhbChib29sKTtcbiAgfVxuXG4gIHBhcnNlQm9vbGVhbkxpdGVyYWwoYm9vbDogdC5FeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKHQuaXNCb29sZWFuTGl0ZXJhbChib29sKSkge1xuICAgICAgcmV0dXJuIGJvb2wudmFsdWU7XG4gICAgfSBlbHNlIGlmIChpc01pbmlmaWVkQm9vbGVhbkxpdGVyYWwoYm9vbCkpIHtcbiAgICAgIHJldHVybiAhYm9vbC5hcmd1bWVudC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoYm9vbCwgJ1Vuc3VwcG9ydGVkIHN5bnRheCwgZXhwZWN0ZWQgYSBib29sZWFuIGxpdGVyYWwuJyk7XG4gICAgfVxuICB9XG5cbiAgaXNBcnJheUxpdGVyYWwgPSB0LmlzQXJyYXlFeHByZXNzaW9uO1xuXG4gIHBhcnNlQXJyYXlMaXRlcmFsKGFycmF5OiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGFycmF5LCB0LmlzQXJyYXlFeHByZXNzaW9uLCAnYW4gYXJyYXkgbGl0ZXJhbCcpO1xuICAgIHJldHVybiBhcnJheS5lbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICBhc3NlcnQoZWxlbWVudCwgaXNOb3RFbXB0eUVsZW1lbnQsICdlbGVtZW50IGluIGFycmF5IG5vdCB0byBiZSBlbXB0eScpO1xuICAgICAgYXNzZXJ0KGVsZW1lbnQsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2VsZW1lbnQgaW4gYXJyYXkgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzT2JqZWN0TGl0ZXJhbCA9IHQuaXNPYmplY3RFeHByZXNzaW9uO1xuXG4gIHBhcnNlT2JqZWN0TGl0ZXJhbChvYmo6IHQuRXhwcmVzc2lvbik6IE1hcDxzdHJpbmcsIHQuRXhwcmVzc2lvbj4ge1xuICAgIGFzc2VydChvYmosIHQuaXNPYmplY3RFeHByZXNzaW9uLCAnYW4gb2JqZWN0IGxpdGVyYWwnKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCB0LkV4cHJlc3Npb24+KCk7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBvYmoucHJvcGVydGllcykge1xuICAgICAgYXNzZXJ0KHByb3BlcnR5LCB0LmlzT2JqZWN0UHJvcGVydHksICdhIHByb3BlcnR5IGFzc2lnbm1lbnQnKTtcbiAgICAgIGFzc2VydChwcm9wZXJ0eS52YWx1ZSwgdC5pc0V4cHJlc3Npb24sICdhbiBleHByZXNzaW9uJyk7XG4gICAgICBhc3NlcnQocHJvcGVydHkua2V5LCBpc1Byb3BlcnR5TmFtZSwgJ2EgcHJvcGVydHkgbmFtZScpO1xuICAgICAgY29uc3Qga2V5ID0gdC5pc0lkZW50aWZpZXIocHJvcGVydHkua2V5KSA/IHByb3BlcnR5LmtleS5uYW1lIDogcHJvcGVydHkua2V5LnZhbHVlO1xuICAgICAgcmVzdWx0LnNldChrZXksIHByb3BlcnR5LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGU6IHQuRXhwcmVzc2lvbik6IG5vZGUgaXMgRXh0cmFjdDx0LkZ1bmN0aW9uLCB0LkV4cHJlc3Npb24+IHtcbiAgICByZXR1cm4gdC5pc0Z1bmN0aW9uKG5vZGUpO1xuICB9XG5cbiAgcGFyc2VSZXR1cm5WYWx1ZShmbjogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQoZm4sIHRoaXMuaXNGdW5jdGlvbkV4cHJlc3Npb24sICdhIGZ1bmN0aW9uJyk7XG4gICAgaWYgKCF0LmlzQmxvY2tTdGF0ZW1lbnQoZm4uYm9keSkpIHtcbiAgICAgIC8vIGl0IGlzIGEgc2ltcGxlIGFycmF5IGZ1bmN0aW9uIGV4cHJlc3Npb246IGAoLi4uKSA9PiBleHByYFxuICAgICAgcmV0dXJuIGZuLmJvZHk7XG4gICAgfVxuXG4gICAgLy8gaXQgaXMgYSBmdW5jdGlvbiAoYXJyb3cgb3Igbm9ybWFsKSB3aXRoIGEgYm9keS4gRS5nLjpcbiAgICAvLyAqIGAoLi4uKSA9PiB7IHN0bXQ7IC4uLiB9YFxuICAgIC8vICogYGZ1bmN0aW9uKC4uLikgeyBzdG10OyAuLi4gfWBcblxuICAgIGlmIChmbi5ib2R5LmJvZHkubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihcbiAgICAgICAgICBmbi5ib2R5LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBhIGZ1bmN0aW9uIGJvZHkgd2l0aCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50LicpO1xuICAgIH1cbiAgICBjb25zdCBzdG10ID0gZm4uYm9keS5ib2R5WzBdO1xuICAgIGFzc2VydChzdG10LCB0LmlzUmV0dXJuU3RhdGVtZW50LCAnYSBmdW5jdGlvbiBib2R5IHdpdGggYSBzaW5nbGUgcmV0dXJuIHN0YXRlbWVudCcpO1xuICAgIGlmIChzdG10LmFyZ3VtZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihzdG10LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBmdW5jdGlvbiB0byByZXR1cm4gYSB2YWx1ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RtdC5hcmd1bWVudDtcbiAgfVxuXG4gIGlzQ2FsbEV4cHJlc3Npb24gPSB0LmlzQ2FsbEV4cHJlc3Npb247XG4gIHBhcnNlQ2FsbGVlKGNhbGw6IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0KGNhbGwsIHQuaXNDYWxsRXhwcmVzc2lvbiwgJ2EgY2FsbCBleHByZXNzaW9uJyk7XG4gICAgYXNzZXJ0KGNhbGwuY2FsbGVlLCB0LmlzRXhwcmVzc2lvbiwgJ2FuIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gY2FsbC5jYWxsZWU7XG4gIH1cbiAgcGFyc2VBcmd1bWVudHMoY2FsbDogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uW10ge1xuICAgIGFzc2VydChjYWxsLCB0LmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiBjYWxsLmFyZ3VtZW50cy5tYXAoYXJnID0+IHtcbiAgICAgIGFzc2VydChhcmcsIGlzTm90U3ByZWFkQXJndW1lbnQsICdhcmd1bWVudCBub3QgdG8gdXNlIHNwcmVhZCBzeW50YXgnKTtcbiAgICAgIGFzc2VydChhcmcsIHQuaXNFeHByZXNzaW9uLCAnYXJndW1lbnQgdG8gYmUgYW4gZXhwcmVzc2lvbicpO1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJhbmdlKG5vZGU6IHQuRXhwcmVzc2lvbik6IFJhbmdlIHtcbiAgICBpZiAobm9kZS5sb2MgPT0gbnVsbCB8fCBub2RlLnN0YXJ0ID09PSBudWxsIHx8IG5vZGUuZW5kID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihcbiAgICAgICAgICBub2RlLCAnVW5hYmxlIHRvIHJlYWQgcmFuZ2UgZm9yIG5vZGUgLSBpdCBpcyBtaXNzaW5nIGxvY2F0aW9uIGluZm9ybWF0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnRMaW5lOiBub2RlLmxvYy5zdGFydC5saW5lIC0gMSwgIC8vIEJhYmVsIGxpbmVzIGFyZSAxLWJhc2VkXG4gICAgICBzdGFydENvbDogbm9kZS5sb2Muc3RhcnQuY29sdW1uLFxuICAgICAgc3RhcnRQb3M6IG5vZGUuc3RhcnQsXG4gICAgICBlbmRQb3M6IG5vZGUuZW5kLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBkb2VzIG5vdCByZXByZXNlbnQgYW4gZW1wdHkgZWxlbWVudCBpbiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFssZm9vXWAgdGhlIGZpcnN0IGVsZW1lbnQgaXMgXCJlbXB0eVwiLlxuICovXG5mdW5jdGlvbiBpc05vdEVtcHR5RWxlbWVudChlOiB0LkV4cHJlc3Npb258dC5TcHJlYWRFbGVtZW50fG51bGwpOiBlIGlzIHQuRXhwcmVzc2lvbnxcbiAgICB0LlNwcmVhZEVsZW1lbnQge1xuICByZXR1cm4gZSAhPT0gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBpcyBub3QgYSBzcHJlYWQgZWxlbWVudCBvZiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFt4LCAuLi5yZXN0XWAgdGhlIGAuLi5yZXN0YCBleHByZXNzaW9uIGlzIGEgc3ByZWFkIGVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIGlzTm90U3ByZWFkRWxlbWVudChlOiB0LkV4cHJlc3Npb258dC5TcHJlYWRFbGVtZW50KTogZSBpcyB0LkV4cHJlc3Npb24ge1xuICByZXR1cm4gIXQuaXNTcHJlYWRFbGVtZW50KGUpO1xufVxuXG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gY2FuIGJlIGNvbnNpZGVyZWQgYSB0ZXh0IGJhc2VkIHByb3BlcnR5IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydHlOYW1lKGU6IHQuRXhwcmVzc2lvbik6IGUgaXMgdC5JZGVudGlmaWVyfHQuU3RyaW5nTGl0ZXJhbHx0Lk51bWVyaWNMaXRlcmFsIHtcbiAgcmV0dXJuIHQuaXNJZGVudGlmaWVyKGUpIHx8IHQuaXNTdHJpbmdMaXRlcmFsKGUpIHx8IHQuaXNOdW1lcmljTGl0ZXJhbChlKTtcbn1cblxuLyoqXG4gKiBUaGUgZGVjbGFyZWQgdHlwZSBvZiBhbiBhcmd1bWVudCB0byBhIGNhbGwgZXhwcmVzc2lvbi5cbiAqL1xudHlwZSBBcmd1bWVudFR5cGUgPSB0LkNhbGxFeHByZXNzaW9uWydhcmd1bWVudHMnXVtudW1iZXJdO1xuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgYSBzcHJlYWQgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gaXNOb3RTcHJlYWRBcmd1bWVudChhcmc6IEFyZ3VtZW50VHlwZSk6IGFyZyBpcyBFeGNsdWRlPEFyZ3VtZW50VHlwZSwgdC5TcHJlYWRFbGVtZW50PiB7XG4gIHJldHVybiAhdC5pc1NwcmVhZEVsZW1lbnQoYXJnKTtcbn1cblxudHlwZSBNaW5pZmllZEJvb2xlYW5MaXRlcmFsID0gdC5FeHByZXNzaW9uJnQuVW5hcnlFeHByZXNzaW9uJnthcmd1bWVudDogdC5OdW1lcmljTGl0ZXJhbH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIG5vZGUgaXMgZWl0aGVyIGAhMGAgb3IgYCExYC5cbiAqL1xuZnVuY3Rpb24gaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKG5vZGU6IHQuRXhwcmVzc2lvbik6IG5vZGUgaXMgTWluaWZpZWRCb29sZWFuTGl0ZXJhbCB7XG4gIHJldHVybiB0LmlzVW5hcnlFeHByZXNzaW9uKG5vZGUpICYmIG5vZGUucHJlZml4ICYmIG5vZGUub3BlcmF0b3IgPT09ICchJyAmJlxuICAgICAgdC5pc051bWVyaWNMaXRlcmFsKG5vZGUuYXJndW1lbnQpICYmIChub2RlLmFyZ3VtZW50LnZhbHVlID09PSAwIHx8IG5vZGUuYXJndW1lbnQudmFsdWUgPT09IDEpO1xufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <amd-module name="@angular/compiler-cli/linker/babel/src/babel_plugin" />
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC 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 { ConfigAPI, PluginObj } from '@babel/core';
|
|
10
|
+
import { LinkerOptions } from '../../src/file_linker/linker_options';
|
|
11
|
+
/**
|
|
12
|
+
* This is the Babel plugin definition that is provided as a default export from the package, such
|
|
13
|
+
* that the plugin can be used using the module specifier of the package. This is the recommended
|
|
14
|
+
* way of integrating the Angular Linker into a build pipeline other than the Angular CLI.
|
|
15
|
+
*
|
|
16
|
+
* When the module specifier `@angular/compiler-cli/linker/babel` is used as a plugin in a Babel
|
|
17
|
+
* configuration, Babel invokes this function (by means of the default export) to create the plugin
|
|
18
|
+
* instance according to the provided options.
|
|
19
|
+
*
|
|
20
|
+
* The linker plugin that is created uses the native NodeJS filesystem APIs to interact with the
|
|
21
|
+
* filesystem. Any logging output is printed to the console.
|
|
22
|
+
*
|
|
23
|
+
* @param api Provides access to the Babel environment that is configuring this plugin.
|
|
24
|
+
* @param options The plugin options that have been configured.
|
|
25
|
+
*/
|
|
26
|
+
export declare function defaultLinkerPlugin(api: ConfigAPI, options: Partial<LinkerOptions>): PluginObj;
|
|
@@ -0,0 +1,38 @@
|
|
|
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/linker/babel/src/babel_plugin", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/src/ngtsc/logging", "@angular/compiler-cli/linker/babel/src/es2015_linker_plugin"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.defaultLinkerPlugin = void 0;
|
|
13
|
+
var tslib_1 = require("tslib");
|
|
14
|
+
var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
|
|
15
|
+
var logging_1 = require("@angular/compiler-cli/src/ngtsc/logging");
|
|
16
|
+
var es2015_linker_plugin_1 = require("@angular/compiler-cli/linker/babel/src/es2015_linker_plugin");
|
|
17
|
+
/**
|
|
18
|
+
* This is the Babel plugin definition that is provided as a default export from the package, such
|
|
19
|
+
* that the plugin can be used using the module specifier of the package. This is the recommended
|
|
20
|
+
* way of integrating the Angular Linker into a build pipeline other than the Angular CLI.
|
|
21
|
+
*
|
|
22
|
+
* When the module specifier `@angular/compiler-cli/linker/babel` is used as a plugin in a Babel
|
|
23
|
+
* configuration, Babel invokes this function (by means of the default export) to create the plugin
|
|
24
|
+
* instance according to the provided options.
|
|
25
|
+
*
|
|
26
|
+
* The linker plugin that is created uses the native NodeJS filesystem APIs to interact with the
|
|
27
|
+
* filesystem. Any logging output is printed to the console.
|
|
28
|
+
*
|
|
29
|
+
* @param api Provides access to the Babel environment that is configuring this plugin.
|
|
30
|
+
* @param options The plugin options that have been configured.
|
|
31
|
+
*/
|
|
32
|
+
function defaultLinkerPlugin(api, options) {
|
|
33
|
+
api.assertVersion(7);
|
|
34
|
+
return es2015_linker_plugin_1.createEs2015LinkerPlugin(tslib_1.__assign(tslib_1.__assign({}, options), { fileSystem: new file_system_1.NodeJSFileSystem(), logger: new logging_1.ConsoleLogger(logging_1.LogLevel.info) }));
|
|
35
|
+
}
|
|
36
|
+
exports.defaultLinkerPlugin = defaultLinkerPlugin;
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbC9zcmMvYmFiZWxfcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFTQSwyRUFBZ0U7SUFDaEUsbUVBQW1FO0lBR25FLG9HQUFnRTtJQUVoRTs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILFNBQWdCLG1CQUFtQixDQUFDLEdBQWMsRUFBRSxPQUErQjtRQUNqRixHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJCLE9BQU8sK0NBQXdCLHVDQUMxQixPQUFPLEtBQ1YsVUFBVSxFQUFFLElBQUksOEJBQWdCLEVBQUUsRUFDbEMsTUFBTSxFQUFFLElBQUksdUJBQWEsQ0FBQyxrQkFBUSxDQUFDLElBQUksQ0FBQyxJQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQVJELGtEQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0NvbmZpZ0FQSSwgUGx1Z2luT2JqfSBmcm9tICdAYmFiZWwvY29yZSc7XG5cbmltcG9ydCB7Tm9kZUpTRmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Q29uc29sZUxvZ2dlciwgTG9nTGV2ZWx9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9sb2dnaW5nJztcbmltcG9ydCB7TGlua2VyT3B0aW9uc30gZnJvbSAnLi4vLi4vc3JjL2ZpbGVfbGlua2VyL2xpbmtlcl9vcHRpb25zJztcblxuaW1wb3J0IHtjcmVhdGVFczIwMTVMaW5rZXJQbHVnaW59IGZyb20gJy4vZXMyMDE1X2xpbmtlcl9wbHVnaW4nO1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIEJhYmVsIHBsdWdpbiBkZWZpbml0aW9uIHRoYXQgaXMgcHJvdmlkZWQgYXMgYSBkZWZhdWx0IGV4cG9ydCBmcm9tIHRoZSBwYWNrYWdlLCBzdWNoXG4gKiB0aGF0IHRoZSBwbHVnaW4gY2FuIGJlIHVzZWQgdXNpbmcgdGhlIG1vZHVsZSBzcGVjaWZpZXIgb2YgdGhlIHBhY2thZ2UuIFRoaXMgaXMgdGhlIHJlY29tbWVuZGVkXG4gKiB3YXkgb2YgaW50ZWdyYXRpbmcgdGhlIEFuZ3VsYXIgTGlua2VyIGludG8gYSBidWlsZCBwaXBlbGluZSBvdGhlciB0aGFuIHRoZSBBbmd1bGFyIENMSS5cbiAqXG4gKiBXaGVuIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGBAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsYCBpcyB1c2VkIGFzIGEgcGx1Z2luIGluIGEgQmFiZWxcbiAqIGNvbmZpZ3VyYXRpb24sIEJhYmVsIGludm9rZXMgdGhpcyBmdW5jdGlvbiAoYnkgbWVhbnMgb2YgdGhlIGRlZmF1bHQgZXhwb3J0KSB0byBjcmVhdGUgdGhlIHBsdWdpblxuICogaW5zdGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICpcbiAqIFRoZSBsaW5rZXIgcGx1Z2luIHRoYXQgaXMgY3JlYXRlZCB1c2VzIHRoZSBuYXRpdmUgTm9kZUpTIGZpbGVzeXN0ZW0gQVBJcyB0byBpbnRlcmFjdCB3aXRoIHRoZVxuICogZmlsZXN5c3RlbS4gQW55IGxvZ2dpbmcgb3V0cHV0IGlzIHByaW50ZWQgdG8gdGhlIGNvbnNvbGUuXG4gKlxuICogQHBhcmFtIGFwaSBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIEJhYmVsIGVudmlyb25tZW50IHRoYXQgaXMgY29uZmlndXJpbmcgdGhpcyBwbHVnaW4uXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgcGx1Z2luIG9wdGlvbnMgdGhhdCBoYXZlIGJlZW4gY29uZmlndXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRMaW5rZXJQbHVnaW4oYXBpOiBDb25maWdBUEksIG9wdGlvbnM6IFBhcnRpYWw8TGlua2VyT3B0aW9ucz4pOiBQbHVnaW5PYmoge1xuICBhcGkuYXNzZXJ0VmVyc2lvbig3KTtcblxuICByZXR1cm4gY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luKHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGZpbGVTeXN0ZW06IG5ldyBOb2RlSlNGaWxlU3lzdGVtKCksXG4gICAgbG9nZ2VyOiBuZXcgQ29uc29sZUxvZ2dlcihMb2dMZXZlbC5pbmZvKSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -142,6 +142,9 @@
|
|
|
142
142
|
else if (t.isMemberExpression(callee) && t.isIdentifier(callee.property)) {
|
|
143
143
|
return callee.property.name;
|
|
144
144
|
}
|
|
145
|
+
else if (t.isMemberExpression(callee) && t.isStringLiteral(callee.property)) {
|
|
146
|
+
return callee.property.value;
|
|
147
|
+
}
|
|
145
148
|
else {
|
|
146
149
|
return null;
|
|
147
150
|
}
|
|
@@ -177,4 +180,4 @@
|
|
|
177
180
|
return filename + ": " + error.message;
|
|
178
181
|
}
|
|
179
182
|
});
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMyMDE1X2xpbmtlcl9wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9lczIwMTVfbGlua2VyX3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBU0EsZ0NBQWtDO0lBRWxDLHVEQUFrRjtJQUVsRixrR0FBd0Q7SUFDeEQsNEZBQWtEO0lBQ2xELDBHQUFtRjtJQUluRjs7Ozs7T0FLRztJQUNILFNBQWdCLHdCQUF3QixDQUFDLEVBQXFEO1FBQXBELElBQUEsVUFBVSxnQkFBQSxFQUFFLE1BQU0sWUFBQSxFQUFLLE9BQU8sc0JBQS9CLHdCQUFnQyxDQUFEO1FBRXRFLElBQUksVUFBVSxHQUFrRSxJQUFJLENBQUM7UUFFckYsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUU7b0JBRVA7O3VCQUVHO29CQUNILEtBQUssRUFBTCxVQUFNLElBQXlCOzt3QkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN2QiwwRkFBMEY7d0JBQzFGLGdEQUFnRDt3QkFDaEQsSUFBTSxJQUFJLEdBQWMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQ3RDLElBQU0sUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLG1DQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxRQUFRLEVBQUU7NEJBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDWCx5SUFBeUksQ0FBQyxDQUFDO3lCQUNoSjt3QkFDRCxJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLG1DQUFJLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFFckUsSUFBTSxpQkFBaUIsR0FBRywwQkFBaUIs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QUcsS0FBSyxJQUFJLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxhQUFhLENBQUksR0FBVztRQUNuQyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxJQUFlLEVBQUUsT0FBZSxFQUFFLElBQVk7UUFDekUsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUM7UUFDeEQsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxPQUFVLFFBQVEsVUFBSyxLQUFLLENBQUMsT0FBUyxDQUFDO0lBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7UGx1Z2luT2JqfSBmcm9tICdAYmFiZWwvY29yZSc7XG5pbXBvcnQge05vZGVQYXRofSBmcm9tICdAYmFiZWwvdHJhdmVyc2UnO1xuaW1wb3J0ICogYXMgdCBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge0ZpbGVMaW5rZXIsIGlzRmF0YWxMaW5rZXJFcnJvciwgTGlua2VyRW52aXJvbm1lbnR9IGZyb20gJy4uLy4uLy4uL2xpbmtlcic7XG5cbmltcG9ydCB7QmFiZWxBc3RGYWN0b3J5fSBmcm9tICcuL2FzdC9iYWJlbF9hc3RfZmFjdG9yeSc7XG5pbXBvcnQge0JhYmVsQXN0SG9zdH0gZnJvbSAnLi9hc3QvYmFiZWxfYXN0X2hvc3QnO1xuaW1wb3J0IHtCYWJlbERlY2xhcmF0aW9uU2NvcGUsIENvbnN0YW50U2NvcGVQYXRofSBmcm9tICcuL2JhYmVsX2RlY2xhcmF0aW9uX3Njb3BlJztcbmltcG9ydCB7TGlua2VyUGx1Z2luT3B0aW9uc30gZnJvbSAnLi9saW5rZXJfcGx1Z2luX29wdGlvbnMnO1xuXG5cbi8qKlxuICogQ3JlYXRlIGEgQmFiZWwgcGx1Z2luIHRoYXQgdmlzaXRzIHRoZSBwcm9ncmFtLCBpZGVudGlmeWluZyBhbmQgbGlua2luZyBwYXJ0aWFsIGRlY2xhcmF0aW9ucy5cbiAqXG4gKiBUaGUgcGx1Z2luIGRlbGVnYXRlcyBtb3N0IG9mIGl0cyB3b3JrIHRvIGEgZ2VuZXJpYyBgRmlsZUxpbmtlcmAgZm9yIGVhY2ggZmlsZSAoYHQuUHJvZ3JhbWAgaW5cbiAqIEJhYmVsKSB0aGF0IGlzIHZpc2l0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFczIwMTVMaW5rZXJQbHVnaW4oe2ZpbGVTeXN0ZW0sIGxvZ2dlciwgLi4ub3B0aW9uc306IExpbmtlclBsdWdpbk9wdGlvbnMpOlxuICAgIFBsdWdpbk9iaiB7XG4gIGxldCBmaWxlTGlua2VyOiBGaWxlTGlua2VyPENvbnN0YW50U2NvcGVQYXRoLCB0LlN0YXRlbWVudCwgdC5FeHByZXNzaW9uPnxudWxsID0gbnVsbDtcblxuICByZXR1cm4ge1xuICAgIHZpc2l0b3I6IHtcbiAgICAgIFByb2dyYW06IHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ3JlYXRlIGEgbmV3IGBGaWxlTGlua2VyYCBhcyB3ZSBlbnRlciBlYWNoIGZpbGUgKGB0LlByb2dyYW1gIGluIEJhYmVsKS5cbiAgICAgICAgICovXG4gICAgICAgIGVudGVyKHBhdGg6IE5vZGVQYXRoPHQuUHJvZ3JhbT4pOiB2b2lkIHtcbiAgICAgICAgICBhc3NlcnROdWxsKGZpbGVMaW5rZXIpO1xuICAgICAgICAgIC8vIEJhYmVsIGNhbiBiZSBjb25maWd1cmVkIHdpdGggYSBgZmlsZW5hbWVgIG9yIGByZWxhdGl2ZUZpbGVuYW1lYCAob3IgYm90aCwgb3IgbmVpdGhlcikgLVxuICAgICAgICAgIC8vIHBvc3NpYmx5IHJlbGF0aXZlIHRvIHRoZSBvcHRpb25hbCBgY3dkYCBwYXRoLlxuICAgICAgICAgIGNvbnN0IGZpbGU6IEJhYmVsRmlsZSA9IHBhdGguaHViLmZpbGU7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBmaWxlLm9wdHMuZmlsZW5hbWUgPz8gZmlsZS5vcHRzLmZpbGVuYW1lUmVsYXRpdmU7XG4gICAgICAgICAgaWYgKCFmaWxlbmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdObyBmaWxlbmFtZSAobm9yIGZpbGVuYW1lUmVsYXRpdmUpIHByb3ZpZGVkIGJ5IEJhYmVsLiBUaGlzIGlzIHJlcXVpcmVkIGZvciB0aGUgbGlua2luZyBvZiBwYXJ0aWFsbHkgY29tcGlsZWQgZGlyZWN0aXZlcyBhbmQgY29tcG9uZW50cy4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qgc291cmNlVXJsID0gZmlsZVN5c3RlbS5yZXNvbHZlKGZpbGUub3B0cy5jd2QgPz8gJy4nLCBmaWxlbmFtZSk7XG5cbiAgICAgICAgICBjb25zdCBsaW5rZXJFbnZpcm9ubWVudCA9IExpbmtlckVudmlyb25tZW50LmNyZWF0ZTx0LlN0YXRlbWVudCwgdC5FeHByZXNzaW9uPihcbiAgICAgICAgICAgICAgZmlsZVN5c3RlbSwgbG9nZ2VyLCBuZXcgQmFiZWxBc3RIb3N0KCksIG5ldyBCYWJlbEFzdEZhY3Rvcnkoc291cmNlVXJsKSwgb3B0aW9ucyk7XG4gICAgICAgICAgZmlsZUxpbmtlciA9IG5ldyBGaWxlTGlua2VyKGxpbmtlckVudmlyb25tZW50LCBzb3VyY2VVcmwsIGZpbGUuY29kZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9uIGV4aXRpbmcgdGhlIGZpbGUsIGluc2VydCBhbnkgc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgdGhhdCB3ZXJlIGdlbmVyYXRlZCBkdXJpbmdcbiAgICAgICAgICogbGlua2luZyBvZiB0aGUgcGFydGlhbCBkZWNsYXJhdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICBleGl0KCk6IHZvaWQge1xuICAgICAgICAgIGFzc2VydE5vdE51bGwoZmlsZUxpbmtlcik7XG4gICAgICAgICAgZm9yIChjb25zdCB7Y29uc3RhbnRTY29wZSwgc3RhdGVtZW50c30gb2YgZmlsZUxpbmtlci5nZXRDb25zdGFudFN0YXRlbWVudHMoKSkge1xuICAgICAgICAgICAgaW5zZXJ0U3RhdGVtZW50cyhjb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmlsZUxpbmtlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogVGVzdCBlYWNoIGNhbGwgZXhwcmVzc2lvbiB0byBzZWUgaWYgaXQgaXMgYSBwYXJ0aWFsIGRlY2xhcmF0aW9uOyBpdCBpZiBpcyB0aGVuIHJlcGxhY2UgaXRcbiAgICAgICAqIHdpdGggdGhlIHJlc3VsdHMgb2YgbGlua2luZyB0aGUgZGVjbGFyYXRpb24uXG4gICAgICAgKi9cbiAgICAgIENhbGxFeHByZXNzaW9uKGNhbGw6IE5vZGVQYXRoPHQuQ2FsbEV4cHJlc3Npb24+KTogdm9pZCB7XG4gICAgICAgIGlmIChmaWxlTGlua2VyID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gQW55IHN0YXRlbWVudHMgdGhhdCBhcmUgaW5zZXJ0ZWQgdXBvbiBwcm9ncmFtIGV4aXQgd2lsbCBiZSB2aXNpdGVkIG91dHNpZGUgb2YgYW4gYWN0aXZlXG4gICAgICAgICAgLy8gbGlua2VyIGNvbnRleHQuIFRoZXNlIGNhbGwgZXhwcmVzc2lvbnMgYXJlIGtub3duIG5vdCB0byBjb250YWluIHBhcnRpYWwgZGVjbGFyYXRpb25zLFxuICAgICAgICAgIC8vIHNvIGl0J3Mgc2FmZSB0byBza2lwIHZpc2l0aW5nIHRob3NlIGNhbGwgZXhwcmVzc2lvbnMuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBjYWxsZWVOYW1lID0gZ2V0Q2FsbGVlTmFtZShjYWxsKTtcbiAgICAgICAgICBpZiAoY2FsbGVlTmFtZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhcmdzID0gY2FsbC5ub2RlLmFyZ3VtZW50cztcbiAgICAgICAgICBpZiAoIWZpbGVMaW5rZXIuaXNQYXJ0aWFsRGVjbGFyYXRpb24oY2FsbGVlTmFtZSkgfHwgIWlzRXhwcmVzc2lvbkFycmF5KGFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVjbGFyYXRpb25TY29wZSA9IG5ldyBCYWJlbERlY2xhcmF0aW9uU2NvcGUoY2FsbC5zY29wZSk7XG4gICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBmaWxlTGlua2VyLmxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oY2FsbGVlTmFtZSwgYXJncywgZGVjbGFyYXRpb25TY29wZSk7XG5cbiAgICAgICAgICBjYWxsLnJlcGxhY2VXaXRoKHJlcGxhY2VtZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSBpc0ZhdGFsTGlua2VyRXJyb3IoZSkgPyBlLm5vZGUgYXMgdC5Ob2RlIDogY2FsbC5ub2RlO1xuICAgICAgICAgIHRocm93IGJ1aWxkQ29kZUZyYW1lRXJyb3IoY2FsbC5odWIuZmlsZSwgZS5tZXNzYWdlLCBub2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgdGhlIGBzdGF0ZW1lbnRzYCBhdCB0aGUgbG9jYXRpb24gZGVmaW5lZCBieSBgcGF0aGAuXG4gKlxuICogVGhlIGFjdHVhbCBpbnNlcnRpb24gc3RyYXRlZ3kgZGVwZW5kcyB1cG9uIHRoZSB0eXBlIG9mIHRoZSBgcGF0aGAuXG4gKi9cbmZ1bmN0aW9uIGluc2VydFN0YXRlbWVudHMocGF0aDogQ29uc3RhbnRTY29wZVBhdGgsIHN0YXRlbWVudHM6IHQuU3RhdGVtZW50W10pOiB2b2lkIHtcbiAgaWYgKHBhdGguaXNGdW5jdGlvbigpKSB7XG4gICAgaW5zZXJ0SW50b0Z1bmN0aW9uKHBhdGgsIHN0YXRlbWVudHMpO1xuICB9IGVsc2UgaWYgKHBhdGguaXNQcm9ncmFtKCkpIHtcbiAgICBpbnNlcnRJbnRvUHJvZ3JhbShwYXRoLCBzdGF0ZW1lbnRzKTtcbiAgfVxufVxuXG4vKipcbiAqIEluc2VydCB0aGUgYHN0YXRlbWVudHNgIGF0IHRoZSB0b3Agb2YgdGhlIGJvZHkgb2YgdGhlIGBmbmAgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGluc2VydEludG9GdW5jdGlvbihmbjogTm9kZVBhdGg8dC5GdW5jdGlvbj4sIHN0YXRlbWVudHM6IHQuU3RhdGVtZW50W10pOiB2b2lkIHtcbiAgY29uc3QgYm9keSA9IGZuLmdldCgnYm9keScpO1xuICBib2R5LnVuc2hpZnRDb250YWluZXIoJ2JvZHknLCBzdGF0ZW1lbnRzKTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgdGhlIGBzdGF0ZW1lbnRzYCBhdCB0aGUgdG9wIG9mIHRoZSBgcHJvZ3JhbWAsIGJlbG93IGFueSBpbXBvcnQgc3RhdGVtZW50cy5cbiAqL1xuZnVuY3Rpb24gaW5zZXJ0SW50b1Byb2dyYW0ocHJvZ3JhbTogTm9kZVBhdGg8dC5Qcm9ncmFtPiwgc3RhdGVtZW50czogdC5TdGF0ZW1lbnRbXSk6IHZvaWQge1xuICBjb25zdCBib2R5ID0gcHJvZ3JhbS5nZXQoJ2JvZHknKTtcbiAgY29uc3QgaW1wb3J0U3RhdGVtZW50cyA9IGJvZHkuZmlsdGVyKHN0YXRlbWVudCA9PiBzdGF0ZW1lbnQuaXNJbXBvcnREZWNsYXJhdGlvbigpKTtcbiAgaWYgKGltcG9ydFN0YXRlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcHJvZ3JhbS51bnNoaWZ0Q29udGFpbmVyKCdib2R5Jywgc3RhdGVtZW50cyk7XG4gIH0gZWxzZSB7XG4gICAgaW1wb3J0U3RhdGVtZW50c1tpbXBvcnRTdGF0ZW1lbnRzLmxlbmd0aCAtIDFdLmluc2VydEFmdGVyKHN0YXRlbWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldENhbGxlZU5hbWUoY2FsbDogTm9kZVBhdGg8dC5DYWxsRXhwcmVzc2lvbj4pOiBzdHJpbmd8bnVsbCB7XG4gIGNvbnN0IGNhbGxlZSA9IGNhbGwubm9kZS5jYWxsZWU7XG4gIGlmICh0LmlzSWRlbnRpZmllcihjYWxsZWUpKSB7XG4gICAgcmV0dXJuIGNhbGxlZS5uYW1lO1xuICB9IGVsc2UgaWYgKHQuaXNNZW1iZXJFeHByZXNzaW9uKGNhbGxlZSkgJiYgdC5pc0lkZW50aWZpZXIoY2FsbGVlLnByb3BlcnR5KSkge1xuICAgIHJldHVybiBjYWxsZWUucHJvcGVydHkubmFtZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIGFsbCB0aGUgYG5vZGVzYCBhcmUgQmFiZWwgZXhwcmVzc2lvbnMuXG4gKi9cbmZ1bmN0aW9uIGlzRXhwcmVzc2lvbkFycmF5KG5vZGVzOiB0Lk5vZGVbXSk6IG5vZGVzIGlzIHQuRXhwcmVzc2lvbltdIHtcbiAgcmV0dXJuIG5vZGVzLmV2ZXJ5KG5vZGUgPT4gdC5pc0V4cHJlc3Npb24obm9kZSkpO1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSBnaXZlbiBgb2JqYCBpcyBgbnVsbGAuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydE51bGw8VD4ob2JqOiBUfG51bGwpOiBhc3NlcnRzIG9iaiBpcyBudWxsIHtcbiAgaWYgKG9iaiAhPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQlVHIC0gZXhwZWN0ZWQgYG9iamAgdG8gYmUgbnVsbCcpO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIGdpdmVuIGBvYmpgIGlzIG5vdCBgbnVsbGAuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydE5vdE51bGw8VD4ob2JqOiBUfG51bGwpOiBhc3NlcnRzIG9iaiBpcyBUIHtcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQlVHIC0gZXhwZWN0ZWQgYG9iamAgbm90IHRvIGJlIG51bGwnKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBlcnJvciB0aGF0IGluY2x1ZGVzIHRoZSBjb2RlIGZyYW1lIG9mIHRoZSBgbm9kZWAuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQ29kZUZyYW1lRXJyb3IoZmlsZTogQmFiZWxGaWxlLCBtZXNzYWdlOiBzdHJpbmcsIG5vZGU6IHQuTm9kZSk6IHN0cmluZyB7XG4gIGNvbnN0IGZpbGVuYW1lID0gZmlsZS5vcHRzLmZpbGVuYW1lIHx8ICcodW5rbm93biBmaWxlKSc7XG4gIGNvbnN0IGVycm9yID0gZmlsZS5idWlsZENvZGVGcmFtZUVycm9yKG5vZGUsIG1lc3NhZ2UpO1xuICByZXR1cm4gYCR7ZmlsZW5hbWV9OiAke2Vycm9yLm1lc3NhZ2V9YDtcbn1cblxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSBpcyBtYWtpbmcgdXAgZm9yIHRoZSBmYWN0IHRoYXQgdGhlIEJhYmVsIHR5cGluZ3MgZm9yIGBOb2RlUGF0aC5odWIuZmlsZWAgYXJlXG4gKiBsYWNraW5nLlxuICovXG5pbnRlcmZhY2UgQmFiZWxGaWxlIHtcbiAgY29kZTogc3RyaW5nO1xuICBvcHRzOiB7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgZmlsZW5hbWVSZWxhdGl2ZT86IHN0cmluZyxcbiAgICBjd2Q/OiBzdHJpbmcsXG4gIH07XG5cbiAgYnVpbGRDb2RlRnJhbWVFcnJvcihub2RlOiB0Lk5vZGUsIG1lc3NhZ2U6IHN0cmluZyk6IEVycm9yO1xufVxuIl19
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMyMDE1X2xpbmtlcl9wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9lczIwMTVfbGlua2VyX3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBU0EsZ0NBQWtDO0lBRWxDLHVEQUFrRjtJQUVsRixrR0FBd0Q7SUFDeEQsNEZBQWtEO0lBQ2xELDBHQUFtRjtJQUluRjs7Ozs7T0FLRztJQUNILFNBQWdCLHdCQUF3QixDQUFDLEVBQXFEO1FBQXBELElBQUEsVUFBVSxnQkFBQSxFQUFFLE1BQU0sWUFBQSxFQUFLLE9BQU8sc0JBQS9CLHdCQUFnQyxDQUFEO1FBRXRFLElBQUksVUFBVSxHQUFrRSxJQUFJLENBQUM7UUFFckYsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUU7b0JBRVA7O3VCQUVHO29CQUNILEtBQUssRUFBTCxVQUFNLElBQXlCOzt3QkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN2QiwwRkFBMEY7d0JBQzFGLGdEQUFnRDt3QkFDaEQsSUFBTSxJQUFJLEdBQWMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQ3RDLElBQU0sUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLG1DQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxRQUFRLEVBQUU7NEJBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDWCx5SUFBeUksQ0FBQyxDQUFDO3lCQUNoSjt3QkFDRCxJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLG1DQUFJLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFFckUsSUFBTSxpQkFBaUIsR0FBRywwQkFBaUIs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SyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsVUFBVSxDQUFJLEdBQVc7UUFDaEMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsYUFBYSxDQUFJLEdBQVc7UUFDbkMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsbUJBQW1CLENBQUMsSUFBZSxFQUFFLE9BQWUsRUFBRSxJQUFZO1FBQ3pFLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDO1FBQ3hELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBVSxRQUFRLFVBQUssS0FBSyxDQUFDLE9BQVMsQ0FBQztJQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1BsdWdpbk9ian0gZnJvbSAnQGJhYmVsL2NvcmUnO1xuaW1wb3J0IHtOb2RlUGF0aH0gZnJvbSAnQGJhYmVsL3RyYXZlcnNlJztcbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHtGaWxlTGlua2VyLCBpc0ZhdGFsTGlua2VyRXJyb3IsIExpbmtlckVudmlyb25tZW50fSBmcm9tICcuLi8uLi8uLi9saW5rZXInO1xuXG5pbXBvcnQge0JhYmVsQXN0RmFjdG9yeX0gZnJvbSAnLi9hc3QvYmFiZWxfYXN0X2ZhY3RvcnknO1xuaW1wb3J0IHtCYWJlbEFzdEhvc3R9IGZyb20gJy4vYXN0L2JhYmVsX2FzdF9ob3N0JztcbmltcG9ydCB7QmFiZWxEZWNsYXJhdGlvblNjb3BlLCBDb25zdGFudFNjb3BlUGF0aH0gZnJvbSAnLi9iYWJlbF9kZWNsYXJhdGlvbl9zY29wZSc7XG5pbXBvcnQge0xpbmtlclBsdWdpbk9wdGlvbnN9IGZyb20gJy4vbGlua2VyX3BsdWdpbl9vcHRpb25zJztcblxuXG4vKipcbiAqIENyZWF0ZSBhIEJhYmVsIHBsdWdpbiB0aGF0IHZpc2l0cyB0aGUgcHJvZ3JhbSwgaWRlbnRpZnlpbmcgYW5kIGxpbmtpbmcgcGFydGlhbCBkZWNsYXJhdGlvbnMuXG4gKlxuICogVGhlIHBsdWdpbiBkZWxlZ2F0ZXMgbW9zdCBvZiBpdHMgd29yayB0byBhIGdlbmVyaWMgYEZpbGVMaW5rZXJgIGZvciBlYWNoIGZpbGUgKGB0LlByb2dyYW1gIGluXG4gKiBCYWJlbCkgdGhhdCBpcyB2aXNpdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luKHtmaWxlU3lzdGVtLCBsb2dnZXIsIC4uLm9wdGlvbnN9OiBMaW5rZXJQbHVnaW5PcHRpb25zKTpcbiAgICBQbHVnaW5PYmoge1xuICBsZXQgZmlsZUxpbmtlcjogRmlsZUxpbmtlcjxDb25zdGFudFNjb3BlUGF0aCwgdC5TdGF0ZW1lbnQsIHQuRXhwcmVzc2lvbj58bnVsbCA9IG51bGw7XG5cbiAgcmV0dXJuIHtcbiAgICB2aXNpdG9yOiB7XG4gICAgICBQcm9ncmFtOiB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZSBhIG5ldyBgRmlsZUxpbmtlcmAgYXMgd2UgZW50ZXIgZWFjaCBmaWxlIChgdC5Qcm9ncmFtYCBpbiBCYWJlbCkuXG4gICAgICAgICAqL1xuICAgICAgICBlbnRlcihwYXRoOiBOb2RlUGF0aDx0LlByb2dyYW0+KTogdm9pZCB7XG4gICAgICAgICAgYXNzZXJ0TnVsbChmaWxlTGlua2VyKTtcbiAgICAgICAgICAvLyBCYWJlbCBjYW4gYmUgY29uZmlndXJlZCB3aXRoIGEgYGZpbGVuYW1lYCBvciBgcmVsYXRpdmVGaWxlbmFtZWAgKG9yIGJvdGgsIG9yIG5laXRoZXIpIC1cbiAgICAgICAgICAvLyBwb3NzaWJseSByZWxhdGl2ZSB0byB0aGUgb3B0aW9uYWwgYGN3ZGAgcGF0aC5cbiAgICAgICAgICBjb25zdCBmaWxlOiBCYWJlbEZpbGUgPSBwYXRoLmh1Yi5maWxlO1xuICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gZmlsZS5vcHRzLmZpbGVuYW1lID8/IGZpbGUub3B0cy5maWxlbmFtZVJlbGF0aXZlO1xuICAgICAgICAgIGlmICghZmlsZW5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnTm8gZmlsZW5hbWUgKG5vciBmaWxlbmFtZVJlbGF0aXZlKSBwcm92aWRlZCBieSBCYWJlbC4gVGhpcyBpcyByZXF1aXJlZCBmb3IgdGhlIGxpbmtpbmcgb2YgcGFydGlhbGx5IGNvbXBpbGVkIGRpcmVjdGl2ZXMgYW5kIGNvbXBvbmVudHMuJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHNvdXJjZVVybCA9IGZpbGVTeXN0ZW0ucmVzb2x2ZShmaWxlLm9wdHMuY3dkID8/ICcuJywgZmlsZW5hbWUpO1xuXG4gICAgICAgICAgY29uc3QgbGlua2VyRW52aXJvbm1lbnQgPSBMaW5rZXJFbnZpcm9ubWVudC5jcmVhdGU8dC5TdGF0ZW1lbnQsIHQuRXhwcmVzc2lvbj4oXG4gICAgICAgICAgICAgIGZpbGVTeXN0ZW0sIGxvZ2dlciwgbmV3IEJhYmVsQXN0SG9zdCgpLCBuZXcgQmFiZWxBc3RGYWN0b3J5KHNvdXJjZVVybCksIG9wdGlvbnMpO1xuICAgICAgICAgIGZpbGVMaW5rZXIgPSBuZXcgRmlsZUxpbmtlcihsaW5rZXJFbnZpcm9ubWVudCwgc291cmNlVXJsLCBmaWxlLmNvZGUpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiBleGl0aW5nIHRoZSBmaWxlLCBpbnNlcnQgYW55IHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzIHRoYXQgd2VyZSBnZW5lcmF0ZWQgZHVyaW5nXG4gICAgICAgICAqIGxpbmtpbmcgb2YgdGhlIHBhcnRpYWwgZGVjbGFyYXRpb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgZXhpdCgpOiB2b2lkIHtcbiAgICAgICAgICBhc3NlcnROb3ROdWxsKGZpbGVMaW5rZXIpO1xuICAgICAgICAgIGZvciAoY29uc3Qge2NvbnN0YW50U2NvcGUsIHN0YXRlbWVudHN9IG9mIGZpbGVMaW5rZXIuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCkpIHtcbiAgICAgICAgICAgIGluc2VydFN0YXRlbWVudHMoY29uc3RhbnRTY29wZSwgc3RhdGVtZW50cyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbGVMaW5rZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIFRlc3QgZWFjaCBjYWxsIGV4cHJlc3Npb24gdG8gc2VlIGlmIGl0IGlzIGEgcGFydGlhbCBkZWNsYXJhdGlvbjsgaXQgaWYgaXMgdGhlbiByZXBsYWNlIGl0XG4gICAgICAgKiB3aXRoIHRoZSByZXN1bHRzIG9mIGxpbmtpbmcgdGhlIGRlY2xhcmF0aW9uLlxuICAgICAgICovXG4gICAgICBDYWxsRXhwcmVzc2lvbihjYWxsOiBOb2RlUGF0aDx0LkNhbGxFeHByZXNzaW9uPik6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZUxpbmtlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFueSBzdGF0ZW1lbnRzIHRoYXQgYXJlIGluc2VydGVkIHVwb24gcHJvZ3JhbSBleGl0IHdpbGwgYmUgdmlzaXRlZCBvdXRzaWRlIG9mIGFuIGFjdGl2ZVxuICAgICAgICAgIC8vIGxpbmtlciBjb250ZXh0LiBUaGVzZSBjYWxsIGV4cHJlc3Npb25zIGFyZSBrbm93biBub3QgdG8gY29udGFpbiBwYXJ0aWFsIGRlY2xhcmF0aW9ucyxcbiAgICAgICAgICAvLyBzbyBpdCdzIHNhZmUgdG8gc2tpcCB2aXNpdGluZyB0aG9zZSBjYWxsIGV4cHJlc3Npb25zLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgY2FsbGVlTmFtZSA9IGdldENhbGxlZU5hbWUoY2FsbCk7XG4gICAgICAgICAgaWYgKGNhbGxlZU5hbWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgYXJncyA9IGNhbGwubm9kZS5hcmd1bWVudHM7XG4gICAgICAgICAgaWYgKCFmaWxlTGlua2VyLmlzUGFydGlhbERlY2xhcmF0aW9uKGNhbGxlZU5hbWUpIHx8ICFpc0V4cHJlc3Npb25BcnJheShhcmdzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uU2NvcGUgPSBuZXcgQmFiZWxEZWNsYXJhdGlvblNjb3BlKGNhbGwuc2NvcGUpO1xuICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gZmlsZUxpbmtlci5saW5rUGFydGlhbERlY2xhcmF0aW9uKGNhbGxlZU5hbWUsIGFyZ3MsIGRlY2xhcmF0aW9uU2NvcGUpO1xuXG4gICAgICAgICAgY2FsbC5yZXBsYWNlV2l0aChyZXBsYWNlbWVudCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zdCBub2RlID0gaXNGYXRhbExpbmtlckVycm9yKGUpID8gZS5ub2RlIGFzIHQuTm9kZSA6IGNhbGwubm9kZTtcbiAgICAgICAgICB0aHJvdyBidWlsZENvZGVGcmFtZUVycm9yKGNhbGwuaHViLmZpbGUsIGUubWVzc2FnZSwgbm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogSW5zZXJ0IHRoZSBgc3RhdGVtZW50c2AgYXQgdGhlIGxvY2F0aW9uIGRlZmluZWQgYnkgYHBhdGhgLlxuICpcbiAqIFRoZSBhY3R1YWwgaW5zZXJ0aW9uIHN0cmF0ZWd5IGRlcGVuZHMgdXBvbiB0aGUgdHlwZSBvZiB0aGUgYHBhdGhgLlxuICovXG5mdW5jdGlvbiBpbnNlcnRTdGF0ZW1lbnRzKHBhdGg6IENvbnN0YW50U2NvcGVQYXRoLCBzdGF0ZW1lbnRzOiB0LlN0YXRlbWVudFtdKTogdm9pZCB7XG4gIGlmIChwYXRoLmlzRnVuY3Rpb24oKSkge1xuICAgIGluc2VydEludG9GdW5jdGlvbihwYXRoLCBzdGF0ZW1lbnRzKTtcbiAgfSBlbHNlIGlmIChwYXRoLmlzUHJvZ3JhbSgpKSB7XG4gICAgaW5zZXJ0SW50b1Byb2dyYW0ocGF0aCwgc3RhdGVtZW50cyk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnNlcnQgdGhlIGBzdGF0ZW1lbnRzYCBhdCB0aGUgdG9wIG9mIHRoZSBib2R5IG9mIHRoZSBgZm5gIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBpbnNlcnRJbnRvRnVuY3Rpb24oZm46IE5vZGVQYXRoPHQuRnVuY3Rpb24+LCBzdGF0ZW1lbnRzOiB0LlN0YXRlbWVudFtdKTogdm9pZCB7XG4gIGNvbnN0IGJvZHkgPSBmbi5nZXQoJ2JvZHknKTtcbiAgYm9keS51bnNoaWZ0Q29udGFpbmVyKCdib2R5Jywgc3RhdGVtZW50cyk7XG59XG5cbi8qKlxuICogSW5zZXJ0IHRoZSBgc3RhdGVtZW50c2AgYXQgdGhlIHRvcCBvZiB0aGUgYHByb2dyYW1gLCBiZWxvdyBhbnkgaW1wb3J0IHN0YXRlbWVudHMuXG4gKi9cbmZ1bmN0aW9uIGluc2VydEludG9Qcm9ncmFtKHByb2dyYW06IE5vZGVQYXRoPHQuUHJvZ3JhbT4sIHN0YXRlbWVudHM6IHQuU3RhdGVtZW50W10pOiB2b2lkIHtcbiAgY29uc3QgYm9keSA9IHByb2dyYW0uZ2V0KCdib2R5Jyk7XG4gIGNvbnN0IGltcG9ydFN0YXRlbWVudHMgPSBib2R5LmZpbHRlcihzdGF0ZW1lbnQgPT4gc3RhdGVtZW50LmlzSW1wb3J0RGVjbGFyYXRpb24oKSk7XG4gIGlmIChpbXBvcnRTdGF0ZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHByb2dyYW0udW5zaGlmdENvbnRhaW5lcignYm9keScsIHN0YXRlbWVudHMpO1xuICB9IGVsc2Uge1xuICAgIGltcG9ydFN0YXRlbWVudHNbaW1wb3J0U3RhdGVtZW50cy5sZW5ndGggLSAxXS5pbnNlcnRBZnRlcihzdGF0ZW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDYWxsZWVOYW1lKGNhbGw6IE5vZGVQYXRoPHQuQ2FsbEV4cHJlc3Npb24+KTogc3RyaW5nfG51bGwge1xuICBjb25zdCBjYWxsZWUgPSBjYWxsLm5vZGUuY2FsbGVlO1xuICBpZiAodC5pc0lkZW50aWZpZXIoY2FsbGVlKSkge1xuICAgIHJldHVybiBjYWxsZWUubmFtZTtcbiAgfSBlbHNlIGlmICh0LmlzTWVtYmVyRXhwcmVzc2lvbihjYWxsZWUpICYmIHQuaXNJZGVudGlmaWVyKGNhbGxlZS5wcm9wZXJ0eSkpIHtcbiAgICByZXR1cm4gY2FsbGVlLnByb3BlcnR5Lm5hbWU7XG4gIH0gZWxzZSBpZiAodC5pc01lbWJlckV4cHJlc3Npb24oY2FsbGVlKSAmJiB0LmlzU3RyaW5nTGl0ZXJhbChjYWxsZWUucHJvcGVydHkpKSB7XG4gICAgcmV0dXJuIGNhbGxlZS5wcm9wZXJ0eS52YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIGFsbCB0aGUgYG5vZGVzYCBhcmUgQmFiZWwgZXhwcmVzc2lvbnMuXG4gKi9cbmZ1bmN0aW9uIGlzRXhwcmVzc2lvbkFycmF5KG5vZGVzOiB0Lk5vZGVbXSk6IG5vZGVzIGlzIHQuRXhwcmVzc2lvbltdIHtcbiAgcmV0dXJuIG5vZGVzLmV2ZXJ5KG5vZGUgPT4gdC5pc0V4cHJlc3Npb24obm9kZSkpO1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSBnaXZlbiBgb2JqYCBpcyBgbnVsbGAuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydE51bGw8VD4ob2JqOiBUfG51bGwpOiBhc3NlcnRzIG9iaiBpcyBudWxsIHtcbiAgaWYgKG9iaiAhPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQlVHIC0gZXhwZWN0ZWQgYG9iamAgdG8gYmUgbnVsbCcpO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIGdpdmVuIGBvYmpgIGlzIG5vdCBgbnVsbGAuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydE5vdE51bGw8VD4ob2JqOiBUfG51bGwpOiBhc3NlcnRzIG9iaiBpcyBUIHtcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQlVHIC0gZXhwZWN0ZWQgYG9iamAgbm90IHRvIGJlIG51bGwnKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBlcnJvciB0aGF0IGluY2x1ZGVzIHRoZSBjb2RlIGZyYW1lIG9mIHRoZSBgbm9kZWAuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQ29kZUZyYW1lRXJyb3IoZmlsZTogQmFiZWxGaWxlLCBtZXNzYWdlOiBzdHJpbmcsIG5vZGU6IHQuTm9kZSk6IHN0cmluZyB7XG4gIGNvbnN0IGZpbGVuYW1lID0gZmlsZS5vcHRzLmZpbGVuYW1lIHx8ICcodW5rbm93biBmaWxlKSc7XG4gIGNvbnN0IGVycm9yID0gZmlsZS5idWlsZENvZGVGcmFtZUVycm9yKG5vZGUsIG1lc3NhZ2UpO1xuICByZXR1cm4gYCR7ZmlsZW5hbWV9OiAke2Vycm9yLm1lc3NhZ2V9YDtcbn1cblxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSBpcyBtYWtpbmcgdXAgZm9yIHRoZSBmYWN0IHRoYXQgdGhlIEJhYmVsIHR5cGluZ3MgZm9yIGBOb2RlUGF0aC5odWIuZmlsZWAgYXJlXG4gKiBsYWNraW5nLlxuICovXG5pbnRlcmZhY2UgQmFiZWxGaWxlIHtcbiAgY29kZTogc3RyaW5nO1xuICBvcHRzOiB7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgZmlsZW5hbWVSZWxhdGl2ZT86IHN0cmluZyxcbiAgICBjd2Q/OiBzdHJpbmcsXG4gIH07XG5cbiAgYnVpbGRDb2RlRnJhbWVFcnJvcihub2RlOiB0Lk5vZGUsIG1lc3NhZ2U6IHN0cmluZyk6IEVycm9yO1xufVxuIl19
|
|
@@ -33,11 +33,17 @@ export interface AstHost<TExpression> {
|
|
|
33
33
|
*/
|
|
34
34
|
parseNumericLiteral(num: TExpression): number;
|
|
35
35
|
/**
|
|
36
|
-
* Return `true` if the given expression
|
|
36
|
+
* Return `true` if the given expression can be considered a boolean literal, or false otherwise.
|
|
37
|
+
*
|
|
38
|
+
* Note that this should also cover the special case of some minified code where `true` and
|
|
39
|
+
* `false` are replaced by `!0` and `!1` respectively.
|
|
37
40
|
*/
|
|
38
41
|
isBooleanLiteral(node: TExpression): boolean;
|
|
39
42
|
/**
|
|
40
43
|
* Parse the boolean value from the given expression, or throw if it is not a boolean literal.
|
|
44
|
+
*
|
|
45
|
+
* Note that this should also cover the special case of some minified code where `true` and
|
|
46
|
+
* `false` are replaced by `!0` and `!1` respectively.
|
|
41
47
|
*/
|
|
42
48
|
parseBooleanLiteral(bool: TExpression): boolean;
|
|
43
49
|
/**
|
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0X2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9hc3QvYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQW4gYWJzdHJhY3Rpb24gZm9yIGdldHRpbmcgaW5mb3JtYXRpb24gZnJvbSBhbiBBU1Qgd2hpbGUgYmVpbmcgYWdub3N0aWMgdG8gdGhlIHVuZGVybHlpbmcgQVNUXG4gKiBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3RIb3N0PFRFeHByZXNzaW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIHN5bWJvbCByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBub2RlLCBvciBgbnVsbGAgaWYgaXQgaXMgbm90IGFcbiAgICogc3ltYm9sLlxuICAgKi9cbiAgZ2V0U3ltYm9sTmFtZShub2RlOiBURXhwcmVzc2lvbik6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYHRydWVgIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGlzIGEgc3RyaW5nIGxpdGVyYWwsIG9yIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzU3RyaW5nTGl0ZXJhbChub2RlOiBURXhwcmVzc2lvbik6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgc3RyaW5nIHZhbHVlIGZyb20gdGhlIGdpdmVuIGV4cHJlc3Npb24sIG9yIHRocm93IGlmIGl0IGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsLlxuICAgKi9cbiAgcGFyc2VTdHJpbmdMaXRlcmFsKHN0cjogVEV4cHJlc3Npb24pOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybiBgdHJ1ZWAgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24gaXMgYSBudW1lcmljIGxpdGVyYWwsIG9yIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzTnVtZXJpY0xpdGVyYWwobm9kZTogVEV4cHJlc3Npb24pOiBib29sZWFuO1xuICAvKipcbiAgICogUGFyc2UgdGhlIG51bWVyaWMgdmFsdWUgZnJvbSB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiwgb3IgdGhyb3cgaWYgaXQgaXMgbm90IGEgbnVtZXJpYyBsaXRlcmFsLlxuICAgKi9cbiAgcGFyc2VOdW1lcmljTGl0ZXJhbChudW06IFRFeHByZXNzaW9uKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYHRydWVgIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGNhbiBiZSBjb25zaWRlcmVkIGEgYm9vbGVhbiBsaXRlcmFsLCBvciBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBhbHNvIGNvdmVyIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygc29tZSBtaW5pZmllZCBjb2RlIHdoZXJlIGB0cnVlYCBhbmRcbiAgICogYGZhbHNlYCBhcmUgcmVwbGFjZWQgYnkgYCEwYCBhbmQgYCExYCByZXNwZWN0aXZlbHkuXG4gICAqL1xuICBpc0Jvb2xlYW5MaXRlcmFsKG5vZGU6IFRFeHByZXNzaW9uKTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBhcnNlIHRoZSBib29sZWFuIHZhbHVlIGZyb20gdGhlIGdpdmVuIGV4cHJlc3Npb24sIG9yIHRocm93IGlmIGl0IGlzIG5vdCBhIGJvb2xlYW4gbGl0ZXJhbC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoaXMgc2hvdWxkIGFsc28gY292ZXIgdGhlIHNwZWNpYWwgY2FzZSBvZiBzb21lIG1pbmlmaWVkIGNvZGUgd2hlcmUgYHRydWVgIGFuZFxuICAgKiBgZmFsc2VgIGFyZSByZXBsYWNlZCBieSBgITBgIGFuZCBgITFgIHJlc3BlY3RpdmVseS5cbiAgICovXG4gIHBhcnNlQm9vbGVhbkxpdGVyYWwoYm9vbDogVEV4cHJlc3Npb24pOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYHRydWVgIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGlzIGFuIGFycmF5IGxpdGVyYWwsIG9yIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzQXJyYXlMaXRlcmFsKG5vZGU6IFRFeHByZXNzaW9uKTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBhcnNlIGFuIGFycmF5IG9mIGV4cHJlc3Npb25zIGZyb20gdGhlIGdpdmVuIGV4cHJlc3Npb24sIG9yIHRocm93IGlmIGl0IGlzIG5vdCBhbiBhcnJheVxuICAgKiBsaXRlcmFsLlxuICAgKi9cbiAgcGFyc2VBcnJheUxpdGVyYWwoYXJyYXk6IFRFeHByZXNzaW9uKTogVEV4cHJlc3Npb25bXTtcblxuICAvKipcbiAgICogUmV0dXJuIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBpcyBhbiBvYmplY3QgbGl0ZXJhbCwgb3IgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNPYmplY3RMaXRlcmFsKG5vZGU6IFRFeHByZXNzaW9uKTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBhcnNlIHRoZSBnaXZlbiBleHByZXNzaW9uIGludG8gYSBtYXAgb2Ygb2JqZWN0IHByb3BlcnR5IG5hbWVzIHRvIHByb3BlcnR5IGV4cHJlc3Npb25zLCBvclxuICAgKiB0aHJvdyBpZiBpdCBpcyBub3QgYW4gb2JqZWN0IGxpdGVyYWwuXG4gICAqL1xuICBwYXJzZU9iamVjdExpdGVyYWwob2JqOiBURXhwcmVzc2lvbik6IE1hcDxzdHJpbmcsIFRFeHByZXNzaW9uPjtcblxuICAvKipcbiAgICogUmV0dXJuIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBpcyBhIGZ1bmN0aW9uLCBvciBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc0Z1bmN0aW9uRXhwcmVzc2lvbihub2RlOiBURXhwcmVzc2lvbik6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb21wdXRlIHRoZSBcInZhbHVlXCIgb2YgYSBmdW5jdGlvbiBleHByZXNzaW9uIGJ5IHBhcnNpbmcgaXRzIGJvZHkgZm9yIGEgc2luZ2xlIGByZXR1cm5gXG4gICAqIHN0YXRlbWVudCwgZXh0cmFjdGluZyB0aGUgcmV0dXJuZWQgZXhwcmVzc2lvbiwgb3IgdGhyb3cgaWYgaXQgaXMgbm90IHBvc3NpYmxlLlxuICAgKi9cbiAgcGFyc2VSZXR1cm5WYWx1ZShmbjogVEV4cHJlc3Npb24pOiBURXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24gaXMgYSBjYWxsIGV4cHJlc3Npb24sIG9yIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzQ2FsbEV4cHJlc3Npb24obm9kZTogVEV4cHJlc3Npb24pOiBib29sZWFuO1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXhwcmVzc2lvbiB0aGF0IGlzIGNhbGxlZCBpbiB0aGUgcHJvdmlkZWQgY2FsbCBleHByZXNzaW9uLCBvciB0aHJvdyBpZiBpdCBpcyBub3RcbiAgICogYSBjYWxsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwYXJzZUNhbGxlZShjYWxsOiBURXhwcmVzc2lvbik6IFRFeHByZXNzaW9uO1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXJndW1lbnQgZXhwcmVzc2lvbnMgZm9yIHRoZSBwcm92aWRlZCBjYWxsIGV4cHJlc3Npb24sIG9yIHRocm93IGlmIGl0IGlzIG5vdFxuICAgKiBhIGNhbGwgZXhwcmVzc2lvbi5cbiAgICovXG4gIHBhcnNlQXJndW1lbnRzKGNhbGw6IFRFeHByZXNzaW9uKTogVEV4cHJlc3Npb25bXTtcblxuICAvKipcbiAgICogQ29tcHV0ZSB0aGUgbG9jYXRpb24gcmFuZ2Ugb2YgdGhlIGV4cHJlc3Npb24gaW4gdGhlIHNvdXJjZSBmaWxlLCB0byBiZSB1c2VkIGZvciBzb3VyY2UtbWFwcGluZy5cbiAgICovXG4gIGdldFJhbmdlKG5vZGU6IFRFeHByZXNzaW9uKTogUmFuZ2U7XG59XG5cbi8qKlxuICogVGhlIGxvY2F0aW9uIG9mIHRoZSBzdGFydCBhbmQgZW5kIG9mIGFuIGV4cHJlc3Npb24gaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlIHtcbiAgLyoqIDAtYmFzZWQgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIHRoZSByYW5nZSBzdGFydCBpbiB0aGUgc291cmNlIGZpbGUgdGV4dC4gKi9cbiAgc3RhcnRQb3M6IG51bWJlcjtcbiAgLyoqIDAtYmFzZWQgbGluZSBpbmRleCBvZiB0aGUgcmFuZ2Ugc3RhcnQgaW4gdGhlIHNvdXJjZSBmaWxlIHRleHQuICovXG4gIHN0YXJ0TGluZTogbnVtYmVyO1xuICAvKiogMC1iYXNlZCBjb2x1bW4gcG9zaXRpb24gb2YgdGhlIHJhbmdlIHN0YXJ0IGluIHRoZSBzb3VyY2UgZmlsZSB0ZXh0LiAqL1xuICBzdGFydENvbDogbnVtYmVyO1xuICAvKiogMC1iYXNlZCBjaGFyYWN0ZXIgcG9zaXRpb24gb2YgdGhlIHJhbmdlIGVuZCBpbiB0aGUgc291cmNlIGZpbGUgdGV4dC4gKi9cbiAgZW5kUG9zOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -23,7 +23,7 @@ export declare class TypeScriptAstHost implements AstHost<ts.Expression> {
|
|
|
23
23
|
parseStringLiteral(str: ts.Expression): string;
|
|
24
24
|
isNumericLiteral: typeof ts.isNumericLiteral;
|
|
25
25
|
parseNumericLiteral(num: ts.Expression): number;
|
|
26
|
-
isBooleanLiteral(node: ts.Expression):
|
|
26
|
+
isBooleanLiteral(node: ts.Expression): boolean;
|
|
27
27
|
parseBooleanLiteral(bool: ts.Expression): boolean;
|
|
28
28
|
isArrayLiteral: typeof ts.isArrayLiteralExpression;
|
|
29
29
|
parseArrayLiteral(array: ts.Expression): ts.Expression[];
|
|
@@ -58,11 +58,18 @@
|
|
|
58
58
|
return parseInt(num.text);
|
|
59
59
|
};
|
|
60
60
|
TypeScriptAstHost.prototype.isBooleanLiteral = function (node) {
|
|
61
|
-
return node
|
|
61
|
+
return isBooleanLiteral(node) || isMinifiedBooleanLiteral(node);
|
|
62
62
|
};
|
|
63
63
|
TypeScriptAstHost.prototype.parseBooleanLiteral = function (bool) {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
if (isBooleanLiteral(bool)) {
|
|
65
|
+
return bool.kind === ts.SyntaxKind.TrueKeyword;
|
|
66
|
+
}
|
|
67
|
+
else if (isMinifiedBooleanLiteral(bool)) {
|
|
68
|
+
return !(+bool.operand.text);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
throw new fatal_linker_error_1.FatalLinkerError(bool, 'Unsupported syntax, expected a boolean literal.');
|
|
72
|
+
}
|
|
66
73
|
};
|
|
67
74
|
TypeScriptAstHost.prototype.parseArrayLiteral = function (array) {
|
|
68
75
|
utils_1.assert(array, this.isArrayLiteral, 'an array literal');
|
|
@@ -159,5 +166,18 @@
|
|
|
159
166
|
function isPropertyName(e) {
|
|
160
167
|
return ts.isIdentifier(e) || ts.isStringLiteral(e) || ts.isNumericLiteral(e);
|
|
161
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Return true if the node is either `true` or `false` literals.
|
|
171
|
+
*/
|
|
172
|
+
function isBooleanLiteral(node) {
|
|
173
|
+
return node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Return true if the node is either `!0` or `!1`.
|
|
177
|
+
*/
|
|
178
|
+
function isMinifiedBooleanLiteral(node) {
|
|
179
|
+
return ts.isPrefixUnaryExpression(node) && node.operator === ts.SyntaxKind.ExclamationToken &&
|
|
180
|
+
ts.isNumericLiteral(node.operand) && (node.operand.text === '0' || node.operand.text === '1');
|
|
181
|
+
}
|
|
162
182
|
});
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9hc3RfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2FzdC90eXBlc2NyaXB0L3R5cGVzY3JpcHRfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILCtCQUFpQztJQUVqQywwRkFBMEQ7SUFFMUQsb0VBQWdDO0lBR2hDOzs7Ozs7OztPQVFHO0lBQ0g7UUFBQTtZQVdFLG9CQUFlLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQU9yQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFnQnZDLG1CQUFjLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBVzdDLG9CQUFlLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBMEMvQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUEwQnpDLENBQUM7UUFoSEMseUNBQWEsR0FBYixVQUFjLElBQW1CO1lBQy9CLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCO2lCQUFNLElBQUksRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM1RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO1FBSUQsOENBQWtCLEdBQWxCLFVBQW1CLEdBQWtCO1lBQ25DLGNBQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sR0FB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Q0FBQztZQUN2QixJQUFBLEtBQXlDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQWxGLFNBQVMsVUFBQSxFQUFhLFFBQVEsZUFBb0QsQ0FBQztZQUNoRyxPQUFPLEVBQUMsU0FBUyxXQUFBLEVBQUUsUUFBUSxVQUFBLEVBQUUsUUFBUSxVQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0gsd0JBQUM7SUFBRCxDQUFDLEFBakhELElBaUhDO0lBakhZLDhDQUFpQjtJQW1IOUI7OztPQUdHO0lBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxDQUNvQjtRQUM3QyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLGtCQUFrQixDQUFDLENBQWlDO1FBQzNELE9BQU8sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsY0FBYyxDQUFDLENBQWtCO1FBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uLy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5pbXBvcnQge0FzdEhvc3QsIFJhbmdlfSBmcm9tICcuLi9hc3RfaG9zdCc7XG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5cbi8qKlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBgQXN0SG9zdGAgaXMgYWJsZSB0byBnZXQgaW5mb3JtYXRpb24gZnJvbSBUeXBlU2NyaXB0IEFTVCBub2Rlcy5cbiAqXG4gKiBUaGlzIGhvc3QgaXMgbm90IGFjdHVhbGx5IHVzZWQgYXQgcnVudGltZSBpbiB0aGUgY3VycmVudCBjb2RlLlxuICpcbiAqIEl0IGlzIGltcGxlbWVudGVkIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIGBBc3RIb3N0YCBhYnN0cmFjdGlvbiBpcyBub3QgdW5mYWlybHkgc2tld2VkIHRvd2FyZHNcbiAqIHRoZSBCYWJlbCBpbXBsZW1lbnRhdGlvbi4gSXQgY291bGQgYWxzbyBwcm92aWRlIGEgYmFzaXMgZm9yIGEgM3JkIFR5cGVTY3JpcHQgY29tcGlsZXIgcGx1Z2luIHRvXG4gKiBkbyBsaW5raW5nIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0QXN0SG9zdCBpbXBsZW1lbnRzIEFzdEhvc3Q8dHMuRXhwcmVzc2lvbj4ge1xuICBnZXRTeW1ib2xOYW1lKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHRzLmlzSWRlbnRpZmllcihub2RlKSkge1xuICAgICAgcmV0dXJuIG5vZGUudGV4dDtcbiAgICB9IGVsc2UgaWYgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUpICYmIHRzLmlzSWRlbnRpZmllcihub2RlLm5hbWUpKSB7XG4gICAgICByZXR1cm4gbm9kZS5uYW1lLnRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzU3RyaW5nTGl0ZXJhbCA9IHRzLmlzU3RyaW5nTGl0ZXJhbDtcblxuICBwYXJzZVN0cmluZ0xpdGVyYWwoc3RyOiB0cy5FeHByZXNzaW9uKTogc3RyaW5nIHtcbiAgICBhc3NlcnQoc3RyLCB0aGlzLmlzU3RyaW5nTGl0ZXJhbCwgJ2Egc3RyaW5nIGxpdGVyYWwnKTtcbiAgICByZXR1cm4gc3RyLnRleHQ7XG4gIH1cblxuICBpc051bWVyaWNMaXRlcmFsID0gdHMuaXNOdW1lcmljTGl0ZXJhbDtcblxuICBwYXJzZU51bWVyaWNMaXRlcmFsKG51bTogdHMuRXhwcmVzc2lvbik6IG51bWJlciB7XG4gICAgYXNzZXJ0KG51bSwgdGhpcy5pc051bWVyaWNMaXRlcmFsLCAnYSBudW1lcmljIGxpdGVyYWwnKTtcbiAgICByZXR1cm4gcGFyc2VJbnQobnVtLnRleHQpO1xuICB9XG5cbiAgaXNCb29sZWFuTGl0ZXJhbChub2RlOiB0cy5FeHByZXNzaW9uKTogbm9kZSBpcyB0cy5GYWxzZUxpdGVyYWx8dHMuVHJ1ZUxpdGVyYWwge1xuICAgIHJldHVybiBub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQgfHwgbm9kZS5raW5kID09PSB0cy5TeW50YXhLaW5kLkZhbHNlS2V5d29yZDtcbiAgfVxuXG4gIHBhcnNlQm9vbGVhbkxpdGVyYWwoYm9vbDogdHMuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIGFzc2VydChib29sLCB0aGlzLmlzQm9vbGVhbkxpdGVyYWwsICdhIGJvb2xlYW4gbGl0ZXJhbCcpO1xuICAgIHJldHVybiBib29sLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQ7XG4gIH1cblxuICBpc0FycmF5TGl0ZXJhbCA9IHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbjtcblxuICBwYXJzZUFycmF5TGl0ZXJhbChhcnJheTogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGFycmF5LCB0aGlzLmlzQXJyYXlMaXRlcmFsLCAnYW4gYXJyYXkgbGl0ZXJhbCcpO1xuICAgIHJldHVybiBhcnJheS5lbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICBhc3NlcnQoZWxlbWVudCwgaXNOb3RFbXB0eUVsZW1lbnQsICdlbGVtZW50IGluIGFycmF5IG5vdCB0byBiZSBlbXB0eScpO1xuICAgICAgYXNzZXJ0KGVsZW1lbnQsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2VsZW1lbnQgaW4gYXJyYXkgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzT2JqZWN0TGl0ZXJhbCA9IHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb247XG5cbiAgcGFyc2VPYmplY3RMaXRlcmFsKG9iajogdHMuRXhwcmVzc2lvbik6IE1hcDxzdHJpbmcsIHRzLkV4cHJlc3Npb24+IHtcbiAgICBhc3NlcnQob2JqLCB0aGlzLmlzT2JqZWN0TGl0ZXJhbCwgJ2FuIG9iamVjdCBsaXRlcmFsJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgdHMuRXhwcmVzc2lvbj4oKTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIG9iai5wcm9wZXJ0aWVzKSB7XG4gICAgICBhc3NlcnQocHJvcGVydHksIHRzLmlzUHJvcGVydHlBc3NpZ25tZW50LCAnYSBwcm9wZXJ0eSBhc3NpZ25tZW50Jyk7XG4gICAgICBhc3NlcnQocHJvcGVydHkubmFtZSwgaXNQcm9wZXJ0eU5hbWUsICdhIHByb3BlcnR5IG5hbWUnKTtcbiAgICAgIHJlc3VsdC5zZXQocHJvcGVydHkubmFtZS50ZXh0LCBwcm9wZXJ0eS5pbml0aWFsaXplcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpc0Z1bmN0aW9uRXhwcmVzc2lvbihub2RlOiB0cy5FeHByZXNzaW9uKTogbm9kZSBpcyB0cy5GdW5jdGlvbkV4cHJlc3Npb258dHMuQXJyb3dGdW5jdGlvbiB7XG4gICAgcmV0dXJuIHRzLmlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGUpIHx8IHRzLmlzQXJyb3dGdW5jdGlvbihub2RlKTtcbiAgfVxuXG4gIHBhcnNlUmV0dXJuVmFsdWUoZm46IHRzLkV4cHJlc3Npb24pOiB0cy5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQoZm4sIHRoaXMuaXNGdW5jdGlvbkV4cHJlc3Npb24sICdhIGZ1bmN0aW9uJyk7XG4gICAgaWYgKCF0cy5pc0Jsb2NrKGZuLmJvZHkpKSB7XG4gICAgICAvLyBpdCBpcyBhIHNpbXBsZSBhcnJheSBmdW5jdGlvbiBleHByZXNzaW9uOiBgKC4uLikgPT4gZXhwcmBcbiAgICAgIHJldHVybiBmbi5ib2R5O1xuICAgIH1cblxuICAgIC8vIGl0IGlzIGEgZnVuY3Rpb24gKGFycm93IG9yIG5vcm1hbCkgd2l0aCBhIGJvZHkuIEUuZy46XG4gICAgLy8gKiBgKC4uLikgPT4geyBzdG10OyAuLi4gfWBcbiAgICAvLyAqIGBmdW5jdGlvbiguLi4pIHsgc3RtdDsgLi4uIH1gXG5cbiAgICBpZiAoZm4uYm9keS5zdGF0ZW1lbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgICAgZm4uYm9keSwgJ1Vuc3VwcG9ydGVkIHN5bnRheCwgZXhwZWN0ZWQgYSBmdW5jdGlvbiBib2R5IHdpdGggYSBzaW5nbGUgcmV0dXJuIHN0YXRlbWVudC4nKTtcbiAgICB9XG4gICAgY29uc3Qgc3RtdCA9IGZuLmJvZHkuc3RhdGVtZW50c1swXTtcbiAgICBhc3NlcnQoc3RtdCwgdHMuaXNSZXR1cm5TdGF0ZW1lbnQsICdhIGZ1bmN0aW9uIGJvZHkgd2l0aCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50Jyk7XG4gICAgaWYgKHN0bXQuZXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihzdG10LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBmdW5jdGlvbiB0byByZXR1cm4gYSB2YWx1ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RtdC5leHByZXNzaW9uO1xuICB9XG5cbiAgaXNDYWxsRXhwcmVzc2lvbiA9IHRzLmlzQ2FsbEV4cHJlc3Npb247XG5cbiAgcGFyc2VDYWxsZWUoY2FsbDogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb24ge1xuICAgIGFzc2VydChjYWxsLCB0cy5pc0NhbGxFeHByZXNzaW9uLCAnYSBjYWxsIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gY2FsbC5leHByZXNzaW9uO1xuICB9XG5cbiAgcGFyc2VBcmd1bWVudHMoY2FsbDogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGNhbGwsIHRzLmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiBjYWxsLmFyZ3VtZW50cy5tYXAoYXJnID0+IHtcbiAgICAgIGFzc2VydChhcmcsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2FyZ3VtZW50IG5vdCB0byB1c2Ugc3ByZWFkIHN5bnRheCcpO1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJhbmdlKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBSYW5nZSB7XG4gICAgY29uc3QgZmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgIGlmIChmaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICAgIG5vZGUsICdVbmFibGUgdG8gcmVhZCByYW5nZSBmb3Igbm9kZSAtIGl0IGlzIG1pc3NpbmcgcGFyZW50IGluZm9ybWF0aW9uLicpO1xuICAgIH1cbiAgICBjb25zdCBzdGFydFBvcyA9IG5vZGUuZ2V0U3RhcnQoKTtcbiAgICBjb25zdCBlbmRQb3MgPSBub2RlLmdldEVuZCgpO1xuICAgIGNvbnN0IHtsaW5lOiBzdGFydExpbmUsIGNoYXJhY3Rlcjogc3RhcnRDb2x9ID0gdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oZmlsZSwgc3RhcnRQb3MpO1xuICAgIHJldHVybiB7c3RhcnRMaW5lLCBzdGFydENvbCwgc3RhcnRQb3MsIGVuZFBvc307XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBkb2VzIG5vdCByZXByZXNlbnQgYW4gZW1wdHkgZWxlbWVudCBpbiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFssZm9vXWAgdGhlIGZpcnN0IGVsZW1lbnQgaXMgXCJlbXB0eVwiLlxuICovXG5mdW5jdGlvbiBpc05vdEVtcHR5RWxlbWVudChlOiB0cy5FeHByZXNzaW9ufHRzLlNwcmVhZEVsZW1lbnR8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cy5PbWl0dGVkRXhwcmVzc2lvbik6IGUgaXMgdHMuRXhwcmVzc2lvbnx0cy5TcHJlYWRFbGVtZW50IHtcbiAgcmV0dXJuICF0cy5pc09taXR0ZWRFeHByZXNzaW9uKGUpO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGlzIG5vdCBhIHNwcmVhZCBlbGVtZW50IG9mIGFuIGFycmF5IGxpdGVyYWwuXG4gKiBGb3IgZXhhbXBsZSBpbiBgW3gsIC4uLnJlc3RdYCB0aGUgYC4uLnJlc3RgIGV4cHJlc3Npb24gaXMgYSBzcHJlYWQgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gaXNOb3RTcHJlYWRFbGVtZW50KGU6IHRzLkV4cHJlc3Npb258dHMuU3ByZWFkRWxlbWVudCk6IGUgaXMgdHMuRXhwcmVzc2lvbiB7XG4gIHJldHVybiAhdHMuaXNTcHJlYWRFbGVtZW50KGUpO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGNhbiBiZSBjb25zaWRlcmVkIGEgdGV4dCBiYXNlZCBwcm9wZXJ0eSBuYW1lLlxuICovXG5mdW5jdGlvbiBpc1Byb3BlcnR5TmFtZShlOiB0cy5Qcm9wZXJ0eU5hbWUpOiBlIGlzIHRzLklkZW50aWZpZXJ8dHMuU3RyaW5nTGl0ZXJhbHx0cy5OdW1lcmljTGl0ZXJhbCB7XG4gIHJldHVybiB0cy5pc0lkZW50aWZpZXIoZSkgfHwgdHMuaXNTdHJpbmdMaXRlcmFsKGUpIHx8IHRzLmlzTnVtZXJpY0xpdGVyYWwoZSk7XG59XG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9hc3RfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2FzdC90eXBlc2NyaXB0L3R5cGVzY3JpcHRfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILCtCQUFpQztJQUVqQywwRkFBMEQ7SUFFMUQsb0VBQWdDO0lBR2hDOzs7Ozs7OztPQVFHO0lBQ0g7UUFBQTtZQVdFLG9CQUFlLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQU9yQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFxQnZDLG1CQUFjLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBVzdDLG9CQUFlLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBMEMvQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUEwQnpDLENBQUM7UUFySEMseUNBQWEsR0FBYixVQUFjLElBQW1CO1lBQy9CLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCO2lCQUFNLElBQUksRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM1RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO1FBSUQsOENBQWtCLEdBQWxCLFVBQW1CLEdBQWtCO1lBQ25DLGNBQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sR0FB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LHdCQUF3QixDQUFDLElBQW1CO1FBQ25ELE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDdkYsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNwRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uLy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5pbXBvcnQge0FzdEhvc3QsIFJhbmdlfSBmcm9tICcuLi9hc3RfaG9zdCc7XG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5cbi8qKlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBgQXN0SG9zdGAgaXMgYWJsZSB0byBnZXQgaW5mb3JtYXRpb24gZnJvbSBUeXBlU2NyaXB0IEFTVCBub2Rlcy5cbiAqXG4gKiBUaGlzIGhvc3QgaXMgbm90IGFjdHVhbGx5IHVzZWQgYXQgcnVudGltZSBpbiB0aGUgY3VycmVudCBjb2RlLlxuICpcbiAqIEl0IGlzIGltcGxlbWVudGVkIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIGBBc3RIb3N0YCBhYnN0cmFjdGlvbiBpcyBub3QgdW5mYWlybHkgc2tld2VkIHRvd2FyZHNcbiAqIHRoZSBCYWJlbCBpbXBsZW1lbnRhdGlvbi4gSXQgY291bGQgYWxzbyBwcm92aWRlIGEgYmFzaXMgZm9yIGEgM3JkIFR5cGVTY3JpcHQgY29tcGlsZXIgcGx1Z2luIHRvXG4gKiBkbyBsaW5raW5nIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0QXN0SG9zdCBpbXBsZW1lbnRzIEFzdEhvc3Q8dHMuRXhwcmVzc2lvbj4ge1xuICBnZXRTeW1ib2xOYW1lKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHRzLmlzSWRlbnRpZmllcihub2RlKSkge1xuICAgICAgcmV0dXJuIG5vZGUudGV4dDtcbiAgICB9IGVsc2UgaWYgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUpICYmIHRzLmlzSWRlbnRpZmllcihub2RlLm5hbWUpKSB7XG4gICAgICByZXR1cm4gbm9kZS5uYW1lLnRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzU3RyaW5nTGl0ZXJhbCA9IHRzLmlzU3RyaW5nTGl0ZXJhbDtcblxuICBwYXJzZVN0cmluZ0xpdGVyYWwoc3RyOiB0cy5FeHByZXNzaW9uKTogc3RyaW5nIHtcbiAgICBhc3NlcnQoc3RyLCB0aGlzLmlzU3RyaW5nTGl0ZXJhbCwgJ2Egc3RyaW5nIGxpdGVyYWwnKTtcbiAgICByZXR1cm4gc3RyLnRleHQ7XG4gIH1cblxuICBpc051bWVyaWNMaXRlcmFsID0gdHMuaXNOdW1lcmljTGl0ZXJhbDtcblxuICBwYXJzZU51bWVyaWNMaXRlcmFsKG51bTogdHMuRXhwcmVzc2lvbik6IG51bWJlciB7XG4gICAgYXNzZXJ0KG51bSwgdGhpcy5pc051bWVyaWNMaXRlcmFsLCAnYSBudW1lcmljIGxpdGVyYWwnKTtcbiAgICByZXR1cm4gcGFyc2VJbnQobnVtLnRleHQpO1xuICB9XG5cbiAgaXNCb29sZWFuTGl0ZXJhbChub2RlOiB0cy5FeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzQm9vbGVhbkxpdGVyYWwobm9kZSkgfHwgaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKG5vZGUpO1xuICB9XG5cbiAgcGFyc2VCb29sZWFuTGl0ZXJhbChib29sOiB0cy5FeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQm9vbGVhbkxpdGVyYWwoYm9vbCkpIHtcbiAgICAgIHJldHVybiBib29sLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQ7XG4gICAgfSBlbHNlIGlmIChpc01pbmlmaWVkQm9vbGVhbkxpdGVyYWwoYm9vbCkpIHtcbiAgICAgIHJldHVybiAhKCtib29sLm9wZXJhbmQudGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKGJvb2wsICdVbnN1cHBvcnRlZCBzeW50YXgsIGV4cGVjdGVkIGEgYm9vbGVhbiBsaXRlcmFsLicpO1xuICAgIH1cbiAgfVxuXG4gIGlzQXJyYXlMaXRlcmFsID0gdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uO1xuXG4gIHBhcnNlQXJyYXlMaXRlcmFsKGFycmF5OiB0cy5FeHByZXNzaW9uKTogdHMuRXhwcmVzc2lvbltdIHtcbiAgICBhc3NlcnQoYXJyYXksIHRoaXMuaXNBcnJheUxpdGVyYWwsICdhbiBhcnJheSBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIGFycmF5LmVsZW1lbnRzLm1hcChlbGVtZW50ID0+IHtcbiAgICAgIGFzc2VydChlbGVtZW50LCBpc05vdEVtcHR5RWxlbWVudCwgJ2VsZW1lbnQgaW4gYXJyYXkgbm90IHRvIGJlIGVtcHR5Jyk7XG4gICAgICBhc3NlcnQoZWxlbWVudCwgaXNOb3RTcHJlYWRFbGVtZW50LCAnZWxlbWVudCBpbiBhcnJheSBub3QgdG8gdXNlIHNwcmVhZCBzeW50YXgnKTtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgaXNPYmplY3RMaXRlcmFsID0gdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbjtcblxuICBwYXJzZU9iamVjdExpdGVyYWwob2JqOiB0cy5FeHByZXNzaW9uKTogTWFwPHN0cmluZywgdHMuRXhwcmVzc2lvbj4ge1xuICAgIGFzc2VydChvYmosIHRoaXMuaXNPYmplY3RMaXRlcmFsLCAnYW4gb2JqZWN0IGxpdGVyYWwnKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCB0cy5FeHByZXNzaW9uPigpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2Ygb2JqLnByb3BlcnRpZXMpIHtcbiAgICAgIGFzc2VydChwcm9wZXJ0eSwgdHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQsICdhIHByb3BlcnR5IGFzc2lnbm1lbnQnKTtcbiAgICAgIGFzc2VydChwcm9wZXJ0eS5uYW1lLCBpc1Byb3BlcnR5TmFtZSwgJ2EgcHJvcGVydHkgbmFtZScpO1xuICAgICAgcmVzdWx0LnNldChwcm9wZXJ0eS5uYW1lLnRleHQsIHByb3BlcnR5LmluaXRpYWxpemVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBub2RlIGlzIHRzLkZ1bmN0aW9uRXhwcmVzc2lvbnx0cy5BcnJvd0Z1bmN0aW9uIHtcbiAgICByZXR1cm4gdHMuaXNGdW5jdGlvbkV4cHJlc3Npb24obm9kZSkgfHwgdHMuaXNBcnJvd0Z1bmN0aW9uKG5vZGUpO1xuICB9XG5cbiAgcGFyc2VSZXR1cm5WYWx1ZShmbjogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb24ge1xuICAgIGFzc2VydChmbiwgdGhpcy5pc0Z1bmN0aW9uRXhwcmVzc2lvbiwgJ2EgZnVuY3Rpb24nKTtcbiAgICBpZiAoIXRzLmlzQmxvY2soZm4uYm9keSkpIHtcbiAgICAgIC8vIGl0IGlzIGEgc2ltcGxlIGFycmF5IGZ1bmN0aW9uIGV4cHJlc3Npb246IGAoLi4uKSA9PiBleHByYFxuICAgICAgcmV0dXJuIGZuLmJvZHk7XG4gICAgfVxuXG4gICAgLy8gaXQgaXMgYSBmdW5jdGlvbiAoYXJyb3cgb3Igbm9ybWFsKSB3aXRoIGEgYm9keS4gRS5nLjpcbiAgICAvLyAqIGAoLi4uKSA9PiB7IHN0bXQ7IC4uLiB9YFxuICAgIC8vICogYGZ1bmN0aW9uKC4uLikgeyBzdG10OyAuLi4gfWBcblxuICAgIGlmIChmbi5ib2R5LnN0YXRlbWVudHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihcbiAgICAgICAgICBmbi5ib2R5LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBhIGZ1bmN0aW9uIGJvZHkgd2l0aCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50LicpO1xuICAgIH1cbiAgICBjb25zdCBzdG10ID0gZm4uYm9keS5zdGF0ZW1lbnRzWzBdO1xuICAgIGFzc2VydChzdG10LCB0cy5pc1JldHVyblN0YXRlbWVudCwgJ2EgZnVuY3Rpb24gYm9keSB3aXRoIGEgc2luZ2xlIHJldHVybiBzdGF0ZW1lbnQnKTtcbiAgICBpZiAoc3RtdC5leHByZXNzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKHN0bXQsICdVbnN1cHBvcnRlZCBzeW50YXgsIGV4cGVjdGVkIGZ1bmN0aW9uIHRvIHJldHVybiBhIHZhbHVlLicpO1xuICAgIH1cblxuICAgIHJldHVybiBzdG10LmV4cHJlc3Npb247XG4gIH1cblxuICBpc0NhbGxFeHByZXNzaW9uID0gdHMuaXNDYWxsRXhwcmVzc2lvbjtcblxuICBwYXJzZUNhbGxlZShjYWxsOiB0cy5FeHByZXNzaW9uKTogdHMuRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0KGNhbGwsIHRzLmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiBjYWxsLmV4cHJlc3Npb247XG4gIH1cblxuICBwYXJzZUFyZ3VtZW50cyhjYWxsOiB0cy5FeHByZXNzaW9uKTogdHMuRXhwcmVzc2lvbltdIHtcbiAgICBhc3NlcnQoY2FsbCwgdHMuaXNDYWxsRXhwcmVzc2lvbiwgJ2EgY2FsbCBleHByZXNzaW9uJyk7XG4gICAgcmV0dXJuIGNhbGwuYXJndW1lbnRzLm1hcChhcmcgPT4ge1xuICAgICAgYXNzZXJ0KGFyZywgaXNOb3RTcHJlYWRFbGVtZW50LCAnYXJndW1lbnQgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICByZXR1cm4gYXJnO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmFuZ2Uobm9kZTogdHMuRXhwcmVzc2lvbik6IFJhbmdlIHtcbiAgICBjb25zdCBmaWxlID0gbm9kZS5nZXRTb3VyY2VGaWxlKCk7XG4gICAgaWYgKGZpbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgICAgbm9kZSwgJ1VuYWJsZSB0byByZWFkIHJhbmdlIGZvciBub2RlIC0gaXQgaXMgbWlzc2luZyBwYXJlbnQgaW5mb3JtYXRpb24uJyk7XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0UG9zID0gbm9kZS5nZXRTdGFydCgpO1xuICAgIGNvbnN0IGVuZFBvcyA9IG5vZGUuZ2V0RW5kKCk7XG4gICAgY29uc3Qge2xpbmU6IHN0YXJ0TGluZSwgY2hhcmFjdGVyOiBzdGFydENvbH0gPSB0cy5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihmaWxlLCBzdGFydFBvcyk7XG4gICAgcmV0dXJuIHtzdGFydExpbmUsIHN0YXJ0Q29sLCBzdGFydFBvcywgZW5kUG9zfTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGRvZXMgbm90IHJlcHJlc2VudCBhbiBlbXB0eSBlbGVtZW50IGluIGFuIGFycmF5IGxpdGVyYWwuXG4gKiBGb3IgZXhhbXBsZSBpbiBgWyxmb29dYCB0aGUgZmlyc3QgZWxlbWVudCBpcyBcImVtcHR5XCIuXG4gKi9cbmZ1bmN0aW9uIGlzTm90RW1wdHlFbGVtZW50KGU6IHRzLkV4cHJlc3Npb258dHMuU3ByZWFkRWxlbWVudHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzLk9taXR0ZWRFeHByZXNzaW9uKTogZSBpcyB0cy5FeHByZXNzaW9ufHRzLlNwcmVhZEVsZW1lbnQge1xuICByZXR1cm4gIXRzLmlzT21pdHRlZEV4cHJlc3Npb24oZSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gaXMgbm90IGEgc3ByZWFkIGVsZW1lbnQgb2YgYW4gYXJyYXkgbGl0ZXJhbC5cbiAqIEZvciBleGFtcGxlIGluIGBbeCwgLi4ucmVzdF1gIHRoZSBgLi4ucmVzdGAgZXhwcmVzc2lvbiBpcyBhIHNwcmVhZCBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBpc05vdFNwcmVhZEVsZW1lbnQoZTogdHMuRXhwcmVzc2lvbnx0cy5TcHJlYWRFbGVtZW50KTogZSBpcyB0cy5FeHByZXNzaW9uIHtcbiAgcmV0dXJuICF0cy5pc1NwcmVhZEVsZW1lbnQoZSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gY2FuIGJlIGNvbnNpZGVyZWQgYSB0ZXh0IGJhc2VkIHByb3BlcnR5IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydHlOYW1lKGU6IHRzLlByb3BlcnR5TmFtZSk6IGUgaXMgdHMuSWRlbnRpZmllcnx0cy5TdHJpbmdMaXRlcmFsfHRzLk51bWVyaWNMaXRlcmFsIHtcbiAgcmV0dXJuIHRzLmlzSWRlbnRpZmllcihlKSB8fCB0cy5pc1N0cmluZ0xpdGVyYWwoZSkgfHwgdHMuaXNOdW1lcmljTGl0ZXJhbChlKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbm9kZSBpcyBlaXRoZXIgYHRydWVgIG9yIGBmYWxzZWAgbGl0ZXJhbHMuXG4gKi9cbmZ1bmN0aW9uIGlzQm9vbGVhbkxpdGVyYWwobm9kZTogdHMuRXhwcmVzc2lvbik6IG5vZGUgaXMgdHMuVHJ1ZUxpdGVyYWx8dHMuRmFsc2VMaXRlcmFsIHtcbiAgcmV0dXJuIG5vZGUua2luZCA9PT0gdHMuU3ludGF4S2luZC5UcnVlS2V5d29yZCB8fCBub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuRmFsc2VLZXl3b3JkO1xufVxuXG50eXBlIE1pbmlmaWVkQm9vbGVhbkxpdGVyYWwgPSB0cy5QcmVmaXhVbmFyeUV4cHJlc3Npb24me29wZXJhbmQ6IHRzLk51bWVyaWNMaXRlcmFsfTtcblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbm9kZSBpcyBlaXRoZXIgYCEwYCBvciBgITFgLlxuICovXG5mdW5jdGlvbiBpc01pbmlmaWVkQm9vbGVhbkxpdGVyYWwobm9kZTogdHMuRXhwcmVzc2lvbik6IG5vZGUgaXMgTWluaWZpZWRCb29sZWFuTGl0ZXJhbCB7XG4gIHJldHVybiB0cy5pc1ByZWZpeFVuYXJ5RXhwcmVzc2lvbihub2RlKSAmJiBub2RlLm9wZXJhdG9yID09PSB0cy5TeW50YXhLaW5kLkV4Y2xhbWF0aW9uVG9rZW4gJiZcbiAgICAgIHRzLmlzTnVtZXJpY0xpdGVyYWwobm9kZS5vcGVyYW5kKSAmJiAobm9kZS5vcGVyYW5kLnRleHQgPT09ICcwJyB8fCBub2RlLm9wZXJhbmQudGV4dCA9PT0gJzEnKTtcbn1cbiJdfQ==
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
*/
|
|
67
67
|
function createLinkerMap(environment, sourceUrl, code) {
|
|
68
68
|
var linkers = new Map();
|
|
69
|
-
var LATEST_VERSION_RANGE = getRange('<=', '12.0.0
|
|
69
|
+
var LATEST_VERSION_RANGE = getRange('<=', '12.0.0');
|
|
70
70
|
linkers.set(exports.ɵɵngDeclareDirective, [
|
|
71
71
|
{ range: LATEST_VERSION_RANGE, linker: new partial_directive_linker_1_1.PartialDirectiveLinkerVersion1(sourceUrl, code) },
|
|
72
72
|
]);
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
throw new Error("Unknown partial declaration function " + functionName + ".");
|
|
138
138
|
}
|
|
139
139
|
var linkerRanges = this.linkers.get(functionName);
|
|
140
|
-
if (version === '12.0.0
|
|
140
|
+
if (version === '12.0.0') {
|
|
141
141
|
// Special case if the `version` is the same as the current compiler version.
|
|
142
142
|
// This helps with compliance tests where the version placeholders have not been replaced.
|
|
143
143
|
return linkerRanges[linkerRanges.length - 1].linker;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { AbsoluteFsPath } from '../../../src/ngtsc/file_system';
|
|
10
10
|
import { PackageJsonUpdater } from '../writing/package_json_updater';
|
|
11
11
|
import { EntryPointPackageJson, PackageJsonFormatProperties } from './entry_point';
|
|
12
|
-
export declare const NGCC_VERSION = "12.0.0
|
|
12
|
+
export declare const NGCC_VERSION = "12.0.0";
|
|
13
13
|
/**
|
|
14
14
|
* Returns true if there is a format in this entry-point that was compiled with an outdated version
|
|
15
15
|
* of ngcc.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
exports.markAsProcessed = exports.hasBeenProcessed = exports.cleanPackageJson = exports.needsCleaning = exports.NGCC_VERSION = void 0;
|
|
13
13
|
var tslib_1 = require("tslib");
|
|
14
14
|
var new_entry_point_file_writer_1 = require("@angular/compiler-cli/ngcc/src/writing/new_entry_point_file_writer");
|
|
15
|
-
exports.NGCC_VERSION = '12.0.0
|
|
15
|
+
exports.NGCC_VERSION = '12.0.0';
|
|
16
16
|
/**
|
|
17
17
|
* Returns true if there is a format in this entry-point that was compiled with an outdated version
|
|
18
18
|
* of ngcc.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/compiler-cli",
|
|
3
|
-
"version": "12.0.0
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"description": "Angular - the compiler CLI for Node.js",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"yargs": "^16.2.0"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@angular/compiler": "12.0.0
|
|
30
|
+
"@angular/compiler": "12.0.0",
|
|
31
31
|
"typescript": ">=4.2.3 <4.3"
|
|
32
32
|
},
|
|
33
33
|
"repository": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
],
|
|
42
42
|
"license": "MIT",
|
|
43
43
|
"engines": {
|
|
44
|
-
"node": "
|
|
44
|
+
"node": "^12.14.1 || ^14.0.0"
|
|
45
45
|
},
|
|
46
46
|
"bugs": {
|
|
47
47
|
"url": "https://github.com/angular/angular/issues"
|
|
@@ -201,7 +201,6 @@ interface CommonTemplateDeclaration {
|
|
|
201
201
|
interpolationConfig: InterpolationConfig;
|
|
202
202
|
templateUrl: string;
|
|
203
203
|
resolvedTemplateUrl: string;
|
|
204
|
-
sourceMapUrl: string;
|
|
205
204
|
}
|
|
206
205
|
/**
|
|
207
206
|
* Information extracted from the declaration of an inline template.
|
|
@@ -220,7 +219,7 @@ interface ExternalTemplateDeclaration extends CommonTemplateDeclaration {
|
|
|
220
219
|
/**
|
|
221
220
|
* The declaration of a template extracted from a component decorator.
|
|
222
221
|
*
|
|
223
|
-
* This data is extracted and stored separately to
|
|
222
|
+
* This data is extracted and stored separately to facilitate re-interpreting the template
|
|
224
223
|
* declaration whenever the compiler is notified of a change to a template file. With this
|
|
225
224
|
* information, `ComponentDecoratorHandler` is able to re-read the template and update the component
|
|
226
225
|
* record without needing to parse the original decorator again.
|