awslint 2.85.0-alpha.0 → 2.87.0-alpha.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/lib/linter.js +2 -2
- package/lib/rules/resource.js +2 -2
- package/package.json +4 -4
package/lib/linter.js
CHANGED
|
@@ -221,7 +221,7 @@ var DiagnosticLevel;
|
|
|
221
221
|
DiagnosticLevel[DiagnosticLevel["Success"] = 1] = "Success";
|
|
222
222
|
DiagnosticLevel[DiagnosticLevel["Warning"] = 2] = "Warning";
|
|
223
223
|
DiagnosticLevel[DiagnosticLevel["Error"] = 3] = "Error";
|
|
224
|
-
})(DiagnosticLevel
|
|
224
|
+
})(DiagnosticLevel || (exports.DiagnosticLevel = DiagnosticLevel = {}));
|
|
225
225
|
/**
|
|
226
226
|
* Convert a type specifier to a TypeReference
|
|
227
227
|
*/
|
|
@@ -242,4 +242,4 @@ function typeReferenceFrom(ts, x) {
|
|
|
242
242
|
function isTypeReference(x) {
|
|
243
243
|
return x instanceof reflect.TypeReference;
|
|
244
244
|
}
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3Qix3Q0FBd0M7QUFnQnhDLE1BQXNCLFVBQVU7Q0FHL0I7QUFIRCxnQ0FHQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxVQUFVO0lBRzdDLFlBQVksR0FBRyxPQUFxQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBUSxDQUFDO1FBQzlCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQTBCLEVBQUUsT0FBa0M7UUFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUN0QyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXZCRCwwQ0F1QkM7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBVSxTQUFRLFVBQVU7SUFHdkMsWUFBNkIsSUFBa0U7UUFDN0YsS0FBSyxFQUFFLENBQUM7UUFEbUIsU0FBSSxHQUFKLElBQUksQ0FBOEQ7UUFGOUUsV0FBTSxHQUF3QyxFQUFHLENBQUM7SUFJbkUsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sTUFBTSxDQUFDLE1BQU0s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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0IHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbnRlck9wdGlvbnMge1xuICAvKipcbiAgICogTGlzdCBvZiBydWxlcyB0byBpbmNsdWRlLlxuICAgKiBAZGVmYXVsdCBhbGwgcnVsZXNcbiAgICovXG4gIGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBydWxlcyB0byBleGNsdWRlICh0YWtlcyBwcmVjZWRlbmNlIG9uIFwiaW5jbHVkZVwiKVxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICBleGNsdWRlPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaW50ZXJCYXNlIHtcbiAgcHVibGljIGFic3RyYWN0IHJ1bGVzOiBSdWxlW107XG4gIHB1YmxpYyBhYnN0cmFjdCBldmFsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5LCBvcHRpb25zOiBMaW50ZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogRGlhZ25vc3RpY1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlTGludGVyIGV4dGVuZHMgTGludGVyQmFzZSB7XG4gIHByaXZhdGUgbGludGVyczogTGludGVyQmFzZVtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmxpbnRlcnM6IExpbnRlckJhc2VbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5saW50ZXJzID0gbGludGVycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVsZXMoKTogUnVsZVtdIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8UnVsZT4oKTtcbiAgICBmb3IgKGNvbnN0IGxpbnRlciBvZiB0aGlzLmxpbnRlcnMpIHtcbiAgICAgIHJldC5wdXNoKC4uLmxpbnRlci5ydWxlcyk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgZXZhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSwgb3B0aW9uczogTGludGVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IERpYWdub3N0aWNbXSB7XG4gICAgY29uc3QgZGlhZ3MgPSBuZXcgQXJyYXk8RGlhZ25vc3RpYz4oKTtcbiAgICBmb3IgKGNvbnN0IGxpbnRlciBvZiB0aGlzLmxpbnRlcnMpIHtcbiAgICAgIGRpYWdzLnB1c2goLi4ubGludGVyLmV2YWwoYXNzZW1ibHksIG9wdGlvbnMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGRpYWdzO1xuICB9XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIGEgYnVuY2ggb2YgcnVsZXMgYWdhaW5zdCBzb21lIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaW50ZXI8VD4gZXh0ZW5kcyBMaW50ZXJCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVsZXM6IHsgW25hbWU6IHN0cmluZ106IENvbmNyZXRlUnVsZTxUPiB9ID0geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5pdDogKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSA9PiBUIHwgcmVhZG9ubHkgVFtdIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVsZXMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fcnVsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgYW5vdGhlciBydWxlLlxuICAgKi9cbiAgcHVibGljIGFkZChydWxlOiBDb25jcmV0ZVJ1bGU8VD4pIHtcbiAgICBpZiAocnVsZS5jb2RlIGluIHRoaXMuX3J1bGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHJ1bGUgXCIke3J1bGUuY29kZX1cIiBhbHJlYWR5IGV4aXN0c2ApO1xuICAgIH1cblxuICAgIHRoaXMuX3J1bGVzW3J1bGUuY29kZV0gPSBydWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIGFsbCBydWxlcyBhZ2FpbnN0IHRoZSBjb250ZXh0LlxuICAgKi9cbiAgcHVibGljIGV2YWwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHksIG9wdGlvbnM6IExpbnRlck9wdGlvbnMgfCB1bmRlZmluZWQpOiBEaWFnbm9zdGljW10ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHsgfTtcblxuICAgIGxldCBjdHhzID0gdGhpcy5pbml0KGFzc2VtYmx5KTtcbiAgICBpZiAoIWN0eHMpIHtcbiAgICAgIHJldHVybiBbXTsgLy8gc2tpcFxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShjdHhzKSkge1xuICAgICAgY3R4cyA9IFtjdHhzXSBhcyByZWFkb25seSBUW107XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZyA9IG5ldyBBcnJheTxEaWFnbm9zdGljPigpO1xuXG4gICAgZm9yIChjb25zdCBjdHggb2YgY3R4cykge1xuICAgICAgZm9yIChjb25zdCBydWxlIG9mIE9iamVjdC52YWx1ZXModGhpcy5fcnVsZXMpKSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb24gPSBuZXcgRXZhbHVhdGlvbihjdHgsIHJ1bGUsIGRpYWcsIG9wdGlvbnMpO1xuICAgICAgICBydWxlLmV2YWwoZXZhbHVhdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpYWc7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXNzZWQgaW4gdG8gZWFjaCBydWxlIGR1cmluZyBldmFsdWF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRXZhbHVhdGlvbjxUPiB7XG4gIHB1YmxpYyByZWFkb25seSBjdHg6IFQ7XG4gIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBMaW50ZXJPcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycjogQ29uY3JldGVSdWxlPFQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107XG5cbiAgY29uc3RydWN0b3IoY3R4OiBULCBydWxlOiBDb25jcmV0ZVJ1bGU8VD4sIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW10sIG9wdGlvbnM6IExpbnRlck9wdGlvbnMpIHtcbiAgICB0aGlzLmN0eCA9IGN0eDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuY3VyciA9IHJ1bGU7XG4gICAgdGhpcy5kaWFnbm9zdGljcyA9IGRpYWdub3N0aWNzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIGZhaWx1cmUgaWYgYGNvbmRpdGlvbmAgaXMgbm90IHRydXRoeS5cbiAgICpcbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29uZGl0aW9uIHRvIGFzc2VydC5cbiAgICogQHBhcmFtIHNjb3BlIFVzZWQgdG8gZGlhZ25vc2UgdGhlIGxvY2F0aW9uIGluIHRoZSBzb3VyY2UsIGFuZCBpcyB1c2VkIGluIHRoZVxuICAgKiBpZ25vcmUgcGF0dGVybi5cbiAgICogQHBhcmFtIGV4dHJhIFVzZWQgdG8gcmVwbGFjZSAlcyBpbiB0aGUgZGVmYXVsdCBtZXNzYWdlIGZvcm1hdCBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0KGNvbmRpdGlvbjogYW55LCBzY29wZTogc3RyaW5nLCBleHRyYT86IHN0cmluZyk6IGNvbmRpdGlvbiBpcyB0cnVlIHtcbiAgICAvLyBkZWR1cGxpY2F0ZTogc2tpcCBpZiB0aGlzIHNwZWNpZmljIGFzc2VydGlvbiAoXCJydWxlOnNjb3BlXCIpIHdhcyBhbHJlYWR5IGV4YW1pbmVkXG4gICAgaWYgKHRoaXMuZGlhZ25vc3RpY3MuZmluZChkID0+IGQucnVsZS5jb2RlID09PSB0aGlzLmN1cnIuY29kZSAmJiBkLnNjb3BlID09PSBzY29wZSkpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgaW5jbHVkZSA9IHRoaXMuc2hvdWxkRXZhbHVhdGUodGhpcy5jdXJyLmNvZGUsIHNjb3BlKTtcbiAgICBjb25zdCBtZXNzYWdlID0gdXRpbC5mb3JtYXQodGhpcy5jdXJyLm1lc3NhZ2UsIGV4dHJhIHx8ICcnKTtcblxuICAgIC8vIERvbid0IGFkZCBhIFwiU3VjY2Vzc1wiIGRpYWdub3N0aWMuIEl0IHdpbGwgYnJlYWsgaWYgd2UgcnVuIGEgY29tcG91bmRcbiAgICAvLyBsaW50ZXIgcnVsZSB3aGljaCBjb25zaXN0cyBvZiAzIGNoZWNrcyB3aXRoIHRoZSBzYW1lIHNjb3BlIChzdWNoXG4gICAgLy8gYXMgZm9yIGV4YW1wbGUgYGFzc2VydFNpZ25hdHVyZSgpYCkuIElmIHRoZSBmaXJzdCBjaGVjayBmYWlscywgd2Ugd291bGRcbiAgICAvLyBhZGQgYSBcIlN1Y2Nlc3NcIiBkaWFnbm9zdGljIGFuZCBhbGwgb3RoZXIgZGlhZ25vc3RpY3Mgd291bGQgYmUgc2tpcHBlZCBiZWNhdXNlXG4gICAgLy8gb2YgdGhlIGRlZHVwbGljYXRpb24gY2hlY2sgYWJvdmUuIENoYW5naW5nIHRoZSBzY29wZSBtYWtlcyBpdCB3b3JzZSwgc2luY2VcbiAgICAvLyB0aGUgc2NvcGUgaXMgYWxzbyB0aGUgaWdub3JlIHBhdHRlcm4gYW5kIHRoZXkncmUgYWxsIGNvbmNlcHR1YWxseSB0aGUgc2FtZSBydWxlLlxuICAgIC8vXG4gICAgLy8gU2ltcGxlc3Qgc29sdXRpb24gaXMgdG8gbm90IHJlY29yZCBzdWNjZXNzZXMgLS0gd2h5IGRvIHdlIGV2ZW4gbmVlZCB0aGVtP1xuICAgIGlmIChpbmNsdWRlICYmIGNvbmRpdGlvbikgeyByZXR1cm4gY29uZGl0aW9uOyB9XG5cbiAgICBsZXQgbGV2ZWw6IERpYWdub3N0aWNMZXZlbDtcbiAgICBpZiAoIWluY2x1ZGUpIHtcbiAgICAgIGxldmVsID0gRGlhZ25vc3RpY0xldmVsLlNraXBwZWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnIud2FybmluZykge1xuICAgICAgbGV2ZWwgPSBEaWFnbm9zdGljTGV2ZWwuV2FybmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV2ZWwgPSBEaWFnbm9zdGljTGV2ZWwuRXJyb3I7XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZzogRGlhZ25vc3RpYyA9IHtcbiAgICAgIGxldmVsLFxuICAgICAgcnVsZTogdGhpcy5jdXJyLFxuICAgICAgc2NvcGUsXG4gICAgICBtZXNzYWdlLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWdub3N0aWNzLnB1c2goZGlhZyk7XG5cbiAgICByZXR1cm4gY29uZGl0aW9uO1xuICB9XG5cbiAgcHVibGljIGFzc2VydEVxdWFscyhhY3R1YWw6IGFueSwgZXhwZWN0ZWQ6IGFueSwgc2NvcGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCBzY29wZSwgYCAoZXhwZWN0ZWQ9XCIke2V4cGVjdGVkfVwiLGFjdHVhbD1cIiR7YWN0dWFsfVwiKWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFR5cGVzRXF1YWwodHM6IHJlZmxlY3QuVHlwZVN5c3RlbSwgYWN0dWFsOiBUeXBlU3BlY2lmaWVyLCBleHBlY3RlZDogVHlwZVNwZWNpZmllciwgc2NvcGU6IHN0cmluZykge1xuICAgIGNvbnN0IGEgPSB0eXBlUmVmZXJlbmNlRnJvbSh0cywgYWN0dWFsKTtcbiAgICBjb25zdCBlID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGV4cGVjdGVkKTtcbiAgICByZXR1cm4gdGhpcy5hc3NlcnQoYS50b1N0cmluZygpID09PSBlLnRvU3RyaW5nKCksIHNjb3BlLCBgIChleHBlY3RlZD1cIiR7ZX1cIixhY3R1YWw9XCIke2F9XCIpYCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0VHlwZXNBc3NpZ25hYmxlKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIGFjdHVhbDogVHlwZVNwZWNpZmllciwgZXhwZWN0ZWQ6IFR5cGVTcGVjaWZpZXIsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGFjdHVhbCk7XG4gICAgY29uc3QgZSA9IHR5cGVSZWZlcmVuY2VGcm9tKHRzLCBleHBlY3RlZCk7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXJ0KGEudG9TdHJpbmcoKSA9PT0gZS50b1N0cmluZygpIHx8IChhLmZxbiAmJiBlLmZxbiAmJiBhLnR5cGUhLmV4dGVuZHMoZS50eXBlISkpLCBzY29wZSwgYCAoXCIke2F9XCIgbm90IGFzc2lnbmFibGUgdG8gXCIke2V9XCIpYCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0UGFyYW1ldGVyT3B0aW9uYWwoYWN0dWFsOiBib29sZWFuLCBleHBlY3RlZDogYm9vbGVhbiwgc2NvcGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCBzY29wZSwgYCAoJHtzY29wZX0gc2hvdWxkIGJlICR7ZXhwZWN0ZWQgPyAnb3B0aW9uYWwnIDogJ21hbmRhdG9yeSd9KWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFNpZ25hdHVyZShtZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUsIGV4cGVjdGF0aW9uczogTWV0aG9kU2lnbmF0dXJlRXhwZWN0YXRpb25zKSB7XG4gICAgY29uc3Qgc2NvcGUgPSBtZXRob2QucGFyZW50VHlwZS5mcW4gKyAnLicgKyBtZXRob2QubmFtZTtcbiAgICBpZiAoZXhwZWN0YXRpb25zLnJldHVybnMgJiYgcmVmbGVjdC5NZXRob2QuaXNNZXRob2QobWV0aG9kKSkge1xuICAgICAgdGhpcy5hc3NlcnRUeXBlc0VxdWFsKG1ldGhvZC5zeXN0ZW0sIG1ldGhvZC5yZXR1cm5zLnR5cGUsIGV4cGVjdGF0aW9ucy5yZXR1cm5zLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzKSB7XG4gICAgICBjb25zdCBleHBlY3RlZENvdW50ID0gZXhwZWN0YXRpb25zLnBhcmFtZXRlcnMubGVuZ3RoO1xuICAgICAgY29uc3QgYWN0dWFsQ291bnQgPSBtZXRob2QucGFyYW1ldGVycy5sZW5ndGg7XG4gICAgICBpZiAodGhpcy5hc3NlcnRFcXVhbHMoYWN0dWFsQ291bnQsIGV4cGVjdGVkQ291bnQsIHNjb3BlKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgY29uc3QgZXhwZWN0ID0gZXhwZWN0YXRpb25zLnBhcmFtZXRlcnNbaV07XG4gICAgICAgICAgY29uc3QgYWN0dWFsID0gbWV0aG9kLnBhcmFtZXRlcnNbaV07XG4gICAgICAgICAgY29uc3QgcHNjb3BlID0gc2NvcGUgKyBgLnBhcmFtc1ske2l9XWA7XG4gICAgICAgICAgaWYgKGV4cGVjdC5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZE5hbWUgPSBleHBlY3QubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGFjdHVhbE5hbWUgPSBhY3R1YWwubmFtZTtcbiAgICAgICAgICAgIHRoaXMuYXNzZXJ0RXF1YWxzKGFjdHVhbE5hbWUsIGV4cGVjdGVkTmFtZSwgcHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV4cGVjdC50eXBlKSB7XG4gICAgICAgICAgICBpZiAoZXhwZWN0LnN1YnR5cGVBbGxvd2VkKSB7XG4gICAgICAgICAgICAgIHRoaXMuYXNzZXJ0VHlwZXNBc3NpZ25hYmxlKG1ldGhvZC5zeXN0ZW0sIGFjdHVhbC50eXBlLCBleHBlY3QudHlwZSwgcHNjb3BlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuYXNzZXJ0VHlwZXNFcXVhbChtZXRob2Quc3lzdGVtLCBhY3R1YWwudHlwZSwgZXhwZWN0LnR5cGUsIHBzY29wZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHBlY3Qub3B0aW9uYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hc3NlcnRQYXJhbWV0ZXJPcHRpb25hbChhY3R1YWwub3B0aW9uYWwsIGV4cGVjdC5vcHRpb25hbCwgcHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIHdoZXRoZXIgdGhlIHJ1bGUgc2hvdWxkIGJlIGV2YWx1YXRlZCBiYXNlZCBvbiB0aGUgZmlsdGVycyBhcHBsaWVkLlxuICAgKi9cbiAgcHJpdmF0ZSBzaG91bGRFdmFsdWF0ZShjb2RlOiBzdHJpbmcsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5pbmNsdWRlIHx8IHRoaXMub3B0aW9ucy5pbmNsdWRlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpbmNsdWRlIG9mIHRoaXMub3B0aW9ucy5pbmNsdWRlKSB7XG4gICAgICAvLyBtYXRjaCBpbmNsdWRlXG4gICAgICBpZiAobWF0Y2hSdWxlKGluY2x1ZGUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXhjbHVkZSBvZiB0aGlzLm9wdGlvbnMuZXhjbHVkZSB8fCBbXSkge1xuICAgICAgICAgIC8vIG1hdGNoIGV4Y2x1ZGVcbiAgICAgICAgICBpZiAobWF0Y2hSdWxlKGV4Y2x1ZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIG1hdGNoUnVsZShmaWx0ZXI6IHN0cmluZykge1xuICAgICAgaWYgKGZpbHRlci5pbmRleE9mKCc6JykgPT09IC0xKSB7XG4gICAgICAgIGZpbHRlciArPSAnOionOyAvLyBhZGQgXCIqXCIgc2NvcGUgZmlsdGVyIGlmIHRoZXJlIGlzbid0IG9uZVxuICAgICAgfVxuXG4gICAgICAvLyBmaWx0ZXIgZm9ybWF0IGlzIFwiY29kZTpzY29wZVwiIGFuZCBib3RoIHN1cHBvcnQgXCIqXCIgc3VmZml4IHRvIGluZGljYXRlIHN0YXJ0c1dpdGhcbiAgICAgIGNvbnN0IFtjb2RlRmlsdGVyLCBzY29wZUZpbHRlcl0gPSBmaWx0ZXIuc3BsaXQoJzonKTtcbiAgICAgIHJldHVybiBtYXRjaFBhdHRlcm4oY29kZSwgY29kZUZpbHRlcikgJiYgbWF0Y2hQYXR0ZXJuKHNjb3BlLCBzY29wZUZpbHRlcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hQYXR0ZXJuKHM6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKSB7XG4gICAgICBpZiAocGF0dGVybi5lbmRzV2l0aCgnKicpKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHBhdHRlcm4uc2xpY2UoMCwgLTEpO1xuICAgICAgICByZXR1cm4gcy5zdGFydHNXaXRoKHByZWZpeCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcyA9PT0gcGF0dGVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGUge1xuICBjb2RlOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgd2FybmluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uY3JldGVSdWxlPFQ+IGV4dGVuZHMgUnVsZSB7XG4gIGV2YWwobGludGVyOiBFdmFsdWF0aW9uPFQ+KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHR5cGUgY29uc3RyYWludFxuICpcbiAqIEJlIHN1cGVyIGZsZXhpYmxlIGFib3V0IGhvdyB0eXBlcyBjYW4gYmUgcmVwcmVzZW50ZWQuIFVsdGltYXRlbHksIHdlIHdpbGxcbiAqIGNvbXBhcmUgd2hhdCB5b3UgZ2l2ZSB0byBhIFR5cGVSZWZlcmVuY2UsIGJlY2F1c2UgdGhhdCdzIHdoYXQncyBpbiB0aGUgSlNJSVxuICogUmVmbGVjdCBtb2RlbC4gSG93ZXZlciwgaWYgeW91IGFscmVhZHkgaGF2ZSBhIHJlYWwgVHlwZSwgb3IganVzdCBhIHN0cmluZyB0b1xuICogYSB1c2VyLWRlZmluZWQgdHlwZSwgdGhhdCdzIGZpbmUgdG9vLiBXZSdsbCBEbyBUaGUgUmlnaHQgVGhpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVTcGVjaWZpZXIgPSByZWZsZWN0LlR5cGVSZWZlcmVuY2UgfCByZWZsZWN0LlR5cGUgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb24ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVHlwZVNwZWNpZmllcjtcbiAgc3VidHlwZUFsbG93ZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBzaG91bGQgdGhpcyBwYXJhbSBiZSBvcHRpb25hbD8gKi9cbiAgb3B0aW9uYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZFNpZ25hdHVyZUV4cGVjdGF0aW9ucyB7XG4gIHBhcmFtZXRlcnM/OiBNZXRob2RTaWduYXR1cmVQYXJhbWV0ZXJFeHBlY3RhdGlvbltdO1xuICByZXR1cm5zPzogVHlwZVNwZWNpZmllcjtcbn1cblxuZXhwb3J0IGVudW0gRGlhZ25vc3RpY0xldmVsIHtcbiAgU2tpcHBlZCxcbiAgU3VjY2VzcyxcbiAgV2FybmluZyxcbiAgRXJyb3IsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIGxldmVsOiBEaWFnbm9zdGljTGV2ZWw7XG4gIHJ1bGU6IFJ1bGU7XG4gIHNjb3BlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgdHlwZSBzcGVjaWZpZXIgdG8gYSBUeXBlUmVmZXJlbmNlXG4gKi9cbmZ1bmN0aW9uIHR5cGVSZWZlcmVuY2VGcm9tKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIHg6IFR5cGVTcGVjaWZpZXIpOiByZWZsZWN0LlR5cGVSZWZlcmVuY2Uge1xuICBpZiAoaXNUeXBlUmVmZXJlbmNlKHgpKSB7IHJldHVybiB4OyB9XG5cbiAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh4LmluZGV4T2YoJy4nKSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBuZXcgcmVmbGVjdC5UeXBlUmVmZXJlbmNlKHRzLCB7IHByaW1pdGl2ZTogeCBhcyBQcmltaXRpdmVUeXBlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSh0cywgeyBmcW46IHggfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyByZWZsZWN0LlR5cGVSZWZlcmVuY2UodHMsIHgpO1xufVxuXG5mdW5jdGlvbiBpc1R5cGVSZWZlcmVuY2UoeDogYW55KTogeCBpcyByZWZsZWN0LlR5cGVSZWZlcmVuY2Uge1xuICByZXR1cm4geCBpbnN0YW5jZW9mIHJlZmxlY3QuVHlwZVJlZmVyZW5jZTtcbn1cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3Qix3Q0FBd0M7QUFnQnhDLE1BQXNCLFVBQVU7Q0FHL0I7QUFIRCxnQ0FHQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxVQUFVO0lBRzdDLFlBQVksR0FBRyxPQUFxQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBUSxDQUFDO1FBQzlCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQTBCLEVBQUUsT0FBa0M7UUFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUN0QyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXZCRCwwQ0F1QkM7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBVSxTQUFRLFVBQVU7SUFHdkMsWUFBNkIsSUFBa0U7UUFDN0YsS0FBSyxFQUFFLENBQUM7UUFEbUIsU0FBSSxHQUFKLElBQUksQ0FBOEQ7UUFGOUUsV0FBTSxHQUF3QyxFQUFHLENBQUM7SUFJbkUsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sTUFBTSxDQUFDLE1BQU0s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cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB7IFByaW1pdGl2ZVR5cGUgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBMaW50ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcnVsZXMgdG8gaW5jbHVkZS5cbiAgICogQGRlZmF1bHQgYWxsIHJ1bGVzXG4gICAqL1xuICBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgcnVsZXMgdG8gZXhjbHVkZSAodGFrZXMgcHJlY2VkZW5jZSBvbiBcImluY2x1ZGVcIilcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGludGVyQmFzZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCBydWxlczogUnVsZVtdO1xuICBwdWJsaWMgYWJzdHJhY3QgZXZhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSwgb3B0aW9uczogTGludGVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IERpYWdub3N0aWNbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0ZUxpbnRlciBleHRlbmRzIExpbnRlckJhc2Uge1xuICBwcml2YXRlIGxpbnRlcnM6IExpbnRlckJhc2VbXTtcblxuICBjb25zdHJ1Y3RvciguLi5saW50ZXJzOiBMaW50ZXJCYXNlW10pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGludGVycyA9IGxpbnRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJ1bGVzKCk6IFJ1bGVbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFJ1bGU+KCk7XG4gICAgZm9yIChjb25zdCBsaW50ZXIgb2YgdGhpcy5saW50ZXJzKSB7XG4gICAgICByZXQucHVzaCguLi5saW50ZXIucnVsZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGV2YWwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHksIG9wdGlvbnM6IExpbnRlck9wdGlvbnMgfCB1bmRlZmluZWQpOiBEaWFnbm9zdGljW10ge1xuICAgIGNvbnN0IGRpYWdzID0gbmV3IEFycmF5PERpYWdub3N0aWM+KCk7XG4gICAgZm9yIChjb25zdCBsaW50ZXIgb2YgdGhpcy5saW50ZXJzKSB7XG4gICAgICBkaWFncy5wdXNoKC4uLmxpbnRlci5ldmFsKGFzc2VtYmx5LCBvcHRpb25zKSk7XG4gICAgfVxuICAgIHJldHVybiBkaWFncztcbiAgfVxufVxuXG4vKipcbiAqIEV2YWx1YXRlcyBhIGJ1bmNoIG9mIHJ1bGVzIGFnYWluc3Qgc29tZSBjb250ZXh0LlxuICovXG5leHBvcnQgY2xhc3MgTGludGVyPFQ+IGV4dGVuZHMgTGludGVyQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1bGVzOiB7IFtuYW1lOiBzdHJpbmddOiBDb25jcmV0ZVJ1bGU8VD4gfSA9IHsgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluaXQ6IChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkgPT4gVCB8IHJlYWRvbmx5IFRbXSB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJ1bGVzKCkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX3J1bGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnN0YWxsIGFub3RoZXIgcnVsZS5cbiAgICovXG4gIHB1YmxpYyBhZGQocnVsZTogQ29uY3JldGVSdWxlPFQ+KSB7XG4gICAgaWYgKHJ1bGUuY29kZSBpbiB0aGlzLl9ydWxlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBydWxlIFwiJHtydWxlLmNvZGV9XCIgYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9ydWxlc1tydWxlLmNvZGVdID0gcnVsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZSBhbGwgcnVsZXMgYWdhaW5zdCB0aGUgY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBldmFsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5LCBvcHRpb25zOiBMaW50ZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogRGlhZ25vc3RpY1tdIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7IH07XG5cbiAgICBsZXQgY3R4cyA9IHRoaXMuaW5pdChhc3NlbWJseSk7XG4gICAgaWYgKCFjdHhzKSB7XG4gICAgICByZXR1cm4gW107IC8vIHNraXBcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY3R4cykpIHtcbiAgICAgIGN0eHMgPSBbY3R4c10gYXMgcmVhZG9ubHkgVFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRpYWcgPSBuZXcgQXJyYXk8RGlhZ25vc3RpYz4oKTtcblxuICAgIGZvciAoY29uc3QgY3R4IG9mIGN0eHMpIHtcbiAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuX3J1bGVzKSkge1xuICAgICAgICBjb25zdCBldmFsdWF0aW9uID0gbmV3IEV2YWx1YXRpb24oY3R4LCBydWxlLCBkaWFnLCBvcHRpb25zKTtcbiAgICAgICAgcnVsZS5ldmFsKGV2YWx1YXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaWFnO1xuICB9XG59XG5cbi8qKlxuICogUGFzc2VkIGluIHRvIGVhY2ggcnVsZSBkdXJpbmcgZXZhbHVhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2YWx1YXRpb248VD4ge1xuICBwdWJsaWMgcmVhZG9ubHkgY3R4OiBUO1xuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogTGludGVyT3B0aW9ucztcblxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnI6IENvbmNyZXRlUnVsZTxUPjtcbiAgcHJpdmF0ZSByZWFkb25seSBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdO1xuXG4gIGNvbnN0cnVjdG9yKGN0eDogVCwgcnVsZTogQ29uY3JldGVSdWxlPFQ+LCBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdLCBvcHRpb25zOiBMaW50ZXJPcHRpb25zKSB7XG4gICAgdGhpcy5jdHggPSBjdHg7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmN1cnIgPSBydWxlO1xuICAgIHRoaXMuZGlhZ25vc3RpY3MgPSBkaWFnbm9zdGljcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgYSBmYWlsdXJlIGlmIGBjb25kaXRpb25gIGlzIG5vdCB0cnV0aHkuXG4gICAqXG4gICAqIEBwYXJhbSBjb25kaXRpb24gVGhlIGNvbmRpdGlvbiB0byBhc3NlcnQuXG4gICAqIEBwYXJhbSBzY29wZSBVc2VkIHRvIGRpYWdub3NlIHRoZSBsb2NhdGlvbiBpbiB0aGUgc291cmNlLCBhbmQgaXMgdXNlZCBpbiB0aGVcbiAgICogaWdub3JlIHBhdHRlcm4uXG4gICAqIEBwYXJhbSBleHRyYSBVc2VkIHRvIHJlcGxhY2UgJXMgaW4gdGhlIGRlZmF1bHQgbWVzc2FnZSBmb3JtYXQgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIGFzc2VydChjb25kaXRpb246IGFueSwgc2NvcGU6IHN0cmluZywgZXh0cmE/OiBzdHJpbmcpOiBjb25kaXRpb24gaXMgdHJ1ZSB7XG4gICAgLy8gZGVkdXBsaWNhdGU6IHNraXAgaWYgdGhpcyBzcGVjaWZpYyBhc3NlcnRpb24gKFwicnVsZTpzY29wZVwiKSB3YXMgYWxyZWFkeSBleGFtaW5lZFxuICAgIGlmICh0aGlzLmRpYWdub3N0aWNzLmZpbmQoZCA9PiBkLnJ1bGUuY29kZSA9PT0gdGhpcy5jdXJyLmNvZGUgJiYgZC5zY29wZSA9PT0gc2NvcGUpKSB7XG4gICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGluY2x1ZGUgPSB0aGlzLnNob3VsZEV2YWx1YXRlKHRoaXMuY3Vyci5jb2RlLCBzY29wZSk7XG4gICAgY29uc3QgbWVzc2FnZSA9IHV0aWwuZm9ybWF0KHRoaXMuY3Vyci5tZXNzYWdlLCBleHRyYSB8fCAnJyk7XG5cbiAgICAvLyBEb24ndCBhZGQgYSBcIlN1Y2Nlc3NcIiBkaWFnbm9zdGljLiBJdCB3aWxsIGJyZWFrIGlmIHdlIHJ1biBhIGNvbXBvdW5kXG4gICAgLy8gbGludGVyIHJ1bGUgd2hpY2ggY29uc2lzdHMgb2YgMyBjaGVja3Mgd2l0aCB0aGUgc2FtZSBzY29wZSAoc3VjaFxuICAgIC8vIGFzIGZvciBleGFtcGxlIGBhc3NlcnRTaWduYXR1cmUoKWApLiBJZiB0aGUgZmlyc3QgY2hlY2sgZmFpbHMsIHdlIHdvdWxkXG4gICAgLy8gYWRkIGEgXCJTdWNjZXNzXCIgZGlhZ25vc3RpYyBhbmQgYWxsIG90aGVyIGRpYWdub3N0aWNzIHdvdWxkIGJlIHNraXBwZWQgYmVjYXVzZVxuICAgIC8vIG9mIHRoZSBkZWR1cGxpY2F0aW9uIGNoZWNrIGFib3ZlLiBDaGFuZ2luZyB0aGUgc2NvcGUgbWFrZXMgaXQgd29yc2UsIHNpbmNlXG4gICAgLy8gdGhlIHNjb3BlIGlzIGFsc28gdGhlIGlnbm9yZSBwYXR0ZXJuIGFuZCB0aGV5J3JlIGFsbCBjb25jZXB0dWFsbHkgdGhlIHNhbWUgcnVsZS5cbiAgICAvL1xuICAgIC8vIFNpbXBsZXN0IHNvbHV0aW9uIGlzIHRvIG5vdCByZWNvcmQgc3VjY2Vzc2VzIC0tIHdoeSBkbyB3ZSBldmVuIG5lZWQgdGhlbT9cbiAgICBpZiAoaW5jbHVkZSAmJiBjb25kaXRpb24pIHsgcmV0dXJuIGNvbmRpdGlvbjsgfVxuXG4gICAgbGV0IGxldmVsOiBEaWFnbm9zdGljTGV2ZWw7XG4gICAgaWYgKCFpbmNsdWRlKSB7XG4gICAgICBsZXZlbCA9IERpYWdub3N0aWNMZXZlbC5Ta2lwcGVkO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyLndhcm5pbmcpIHtcbiAgICAgIGxldmVsID0gRGlhZ25vc3RpY0xldmVsLldhcm5pbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldmVsID0gRGlhZ25vc3RpY0xldmVsLkVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IGRpYWc6IERpYWdub3N0aWMgPSB7XG4gICAgICBsZXZlbCxcbiAgICAgIHJ1bGU6IHRoaXMuY3VycixcbiAgICAgIHNjb3BlLFxuICAgICAgbWVzc2FnZSxcbiAgICB9O1xuXG4gICAgdGhpcy5kaWFnbm9zdGljcy5wdXNoKGRpYWcpO1xuXG4gICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnRFcXVhbHMoYWN0dWFsOiBhbnksIGV4cGVjdGVkOiBhbnksIHNjb3BlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hc3NlcnQoYWN0dWFsID09PSBleHBlY3RlZCwgc2NvcGUsIGAgKGV4cGVjdGVkPVwiJHtleHBlY3RlZH1cIixhY3R1YWw9XCIke2FjdHVhbH1cIilgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnRUeXBlc0VxdWFsKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIGFjdHVhbDogVHlwZVNwZWNpZmllciwgZXhwZWN0ZWQ6IFR5cGVTcGVjaWZpZXIsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGFjdHVhbCk7XG4gICAgY29uc3QgZSA9IHR5cGVSZWZlcmVuY2VGcm9tKHRzLCBleHBlY3RlZCk7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXJ0KGEudG9TdHJpbmcoKSA9PT0gZS50b1N0cmluZygpLCBzY29wZSwgYCAoZXhwZWN0ZWQ9XCIke2V9XCIsYWN0dWFsPVwiJHthfVwiKWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFR5cGVzQXNzaWduYWJsZSh0czogcmVmbGVjdC5UeXBlU3lzdGVtLCBhY3R1YWw6IFR5cGVTcGVjaWZpZXIsIGV4cGVjdGVkOiBUeXBlU3BlY2lmaWVyLCBzY29wZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYSA9IHR5cGVSZWZlcmVuY2VGcm9tKHRzLCBhY3R1YWwpO1xuICAgIGNvbnN0IGUgPSB0eXBlUmVmZXJlbmNlRnJvbSh0cywgZXhwZWN0ZWQpO1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhLnRvU3RyaW5nKCkgPT09IGUudG9TdHJpbmcoKSB8fCAoYS5mcW4gJiYgZS5mcW4gJiYgYS50eXBlIS5leHRlbmRzKGUudHlwZSEpKSwgc2NvcGUsIGAgKFwiJHthfVwiIG5vdCBhc3NpZ25hYmxlIHRvIFwiJHtlfVwiKWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFBhcmFtZXRlck9wdGlvbmFsKGFjdHVhbDogYm9vbGVhbiwgZXhwZWN0ZWQ6IGJvb2xlYW4sIHNjb3BlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hc3NlcnQoYWN0dWFsID09PSBleHBlY3RlZCwgc2NvcGUsIGAgKCR7c2NvcGV9IHNob3VsZCBiZSAke2V4cGVjdGVkID8gJ29wdGlvbmFsJyA6ICdtYW5kYXRvcnknfSlgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnRTaWduYXR1cmUobWV0aG9kOiByZWZsZWN0LkNhbGxhYmxlLCBleHBlY3RhdGlvbnM6IE1ldGhvZFNpZ25hdHVyZUV4cGVjdGF0aW9ucykge1xuICAgIGNvbnN0IHNjb3BlID0gbWV0aG9kLnBhcmVudFR5cGUuZnFuICsgJy4nICsgbWV0aG9kLm5hbWU7XG4gICAgaWYgKGV4cGVjdGF0aW9ucy5yZXR1cm5zICYmIHJlZmxlY3QuTWV0aG9kLmlzTWV0aG9kKG1ldGhvZCkpIHtcbiAgICAgIHRoaXMuYXNzZXJ0VHlwZXNFcXVhbChtZXRob2Quc3lzdGVtLCBtZXRob2QucmV0dXJucy50eXBlLCBleHBlY3RhdGlvbnMucmV0dXJucywgc2NvcGUpO1xuICAgIH1cblxuICAgIGlmIChleHBlY3RhdGlvbnMucGFyYW1ldGVycykge1xuICAgICAgY29uc3QgZXhwZWN0ZWRDb3VudCA9IGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzLmxlbmd0aDtcbiAgICAgIGNvbnN0IGFjdHVhbENvdW50ID0gbWV0aG9kLnBhcmFtZXRlcnMubGVuZ3RoO1xuICAgICAgaWYgKHRoaXMuYXNzZXJ0RXF1YWxzKGFjdHVhbENvdW50LCBleHBlY3RlZENvdW50LCBzY29wZSkpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBleHBlY3RhdGlvbnMucGFyYW1ldGVycy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGNvbnN0IGV4cGVjdCA9IGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzW2ldO1xuICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IG1ldGhvZC5wYXJhbWV0ZXJzW2ldO1xuICAgICAgICAgIGNvbnN0IHBzY29wZSA9IHNjb3BlICsgYC5wYXJhbXNbJHtpfV1gO1xuICAgICAgICAgIGlmIChleHBlY3QubmFtZSkge1xuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWROYW1lID0gZXhwZWN0Lm5hbWU7XG4gICAgICAgICAgICBjb25zdCBhY3R1YWxOYW1lID0gYWN0dWFsLm5hbWU7XG4gICAgICAgICAgICB0aGlzLmFzc2VydEVxdWFscyhhY3R1YWxOYW1lLCBleHBlY3RlZE5hbWUsIHBzY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHBlY3QudHlwZSkge1xuICAgICAgICAgICAgaWYgKGV4cGVjdC5zdWJ0eXBlQWxsb3dlZCkge1xuICAgICAgICAgICAgICB0aGlzLmFzc2VydFR5cGVzQXNzaWduYWJsZShtZXRob2Quc3lzdGVtLCBhY3R1YWwudHlwZSwgZXhwZWN0LnR5cGUsIHBzY29wZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmFzc2VydFR5cGVzRXF1YWwobWV0aG9kLnN5c3RlbSwgYWN0dWFsLnR5cGUsIGV4cGVjdC50eXBlLCBwc2NvcGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwZWN0Lm9wdGlvbmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYXNzZXJ0UGFyYW1ldGVyT3B0aW9uYWwoYWN0dWFsLm9wdGlvbmFsLCBleHBlY3Qub3B0aW9uYWwsIHBzY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB3aGV0aGVyIHRoZSBydWxlIHNob3VsZCBiZSBldmFsdWF0ZWQgYmFzZWQgb24gdGhlIGZpbHRlcnMgYXBwbGllZC5cbiAgICovXG4gIHByaXZhdGUgc2hvdWxkRXZhbHVhdGUoY29kZTogc3RyaW5nLCBzY29wZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuaW5jbHVkZSB8fCB0aGlzLm9wdGlvbnMuaW5jbHVkZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5jbHVkZSBvZiB0aGlzLm9wdGlvbnMuaW5jbHVkZSkge1xuICAgICAgLy8gbWF0Y2ggaW5jbHVkZVxuICAgICAgaWYgKG1hdGNoUnVsZShpbmNsdWRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGV4Y2x1ZGUgb2YgdGhpcy5vcHRpb25zLmV4Y2x1ZGUgfHwgW10pIHtcbiAgICAgICAgICAvLyBtYXRjaCBleGNsdWRlXG4gICAgICAgICAgaWYgKG1hdGNoUnVsZShleGNsdWRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBmdW5jdGlvbiBtYXRjaFJ1bGUoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICAgIGlmIChmaWx0ZXIuaW5kZXhPZignOicpID09PSAtMSkge1xuICAgICAgICBmaWx0ZXIgKz0gJzoqJzsgLy8gYWRkIFwiKlwiIHNjb3BlIGZpbHRlciBpZiB0aGVyZSBpc24ndCBvbmVcbiAgICAgIH1cblxuICAgICAgLy8gZmlsdGVyIGZvcm1hdCBpcyBcImNvZGU6c2NvcGVcIiBhbmQgYm90aCBzdXBwb3J0IFwiKlwiIHN1ZmZpeCB0byBpbmRpY2F0ZSBzdGFydHNXaXRoXG4gICAgICBjb25zdCBbY29kZUZpbHRlciwgc2NvcGVGaWx0ZXJdID0gZmlsdGVyLnNwbGl0KCc6Jyk7XG4gICAgICByZXR1cm4gbWF0Y2hQYXR0ZXJuKGNvZGUsIGNvZGVGaWx0ZXIpICYmIG1hdGNoUGF0dGVybihzY29wZSwgc2NvcGVGaWx0ZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hdGNoUGF0dGVybihzOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZykge1xuICAgICAgaWYgKHBhdHRlcm4uZW5kc1dpdGgoJyonKSkge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBwYXR0ZXJuLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgcmV0dXJuIHMuc3RhcnRzV2l0aChwcmVmaXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHMgPT09IHBhdHRlcm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbiAgY29kZTogc3RyaW5nLFxuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHdhcm5pbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmNyZXRlUnVsZTxUPiBleHRlbmRzIFJ1bGUge1xuICBldmFsKGxpbnRlcjogRXZhbHVhdGlvbjxUPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQSB0eXBlIGNvbnN0cmFpbnRcbiAqXG4gKiBCZSBzdXBlciBmbGV4aWJsZSBhYm91dCBob3cgdHlwZXMgY2FuIGJlIHJlcHJlc2VudGVkLiBVbHRpbWF0ZWx5LCB3ZSB3aWxsXG4gKiBjb21wYXJlIHdoYXQgeW91IGdpdmUgdG8gYSBUeXBlUmVmZXJlbmNlLCBiZWNhdXNlIHRoYXQncyB3aGF0J3MgaW4gdGhlIEpTSUlcbiAqIFJlZmxlY3QgbW9kZWwuIEhvd2V2ZXIsIGlmIHlvdSBhbHJlYWR5IGhhdmUgYSByZWFsIFR5cGUsIG9yIGp1c3QgYSBzdHJpbmcgdG9cbiAqIGEgdXNlci1kZWZpbmVkIHR5cGUsIHRoYXQncyBmaW5lIHRvby4gV2UnbGwgRG8gVGhlIFJpZ2h0IFRoaW5nLlxuICovXG5leHBvcnQgdHlwZSBUeXBlU3BlY2lmaWVyID0gcmVmbGVjdC5UeXBlUmVmZXJlbmNlIHwgcmVmbGVjdC5UeXBlIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZFNpZ25hdHVyZVBhcmFtZXRlckV4cGVjdGF0aW9uIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IFR5cGVTcGVjaWZpZXI7XG4gIHN1YnR5cGVBbGxvd2VkPzogYm9vbGVhbjtcblxuICAvKiogc2hvdWxkIHRoaXMgcGFyYW0gYmUgb3B0aW9uYWw/ICovXG4gIG9wdGlvbmFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRob2RTaWduYXR1cmVFeHBlY3RhdGlvbnMge1xuICBwYXJhbWV0ZXJzPzogTWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb25bXTtcbiAgcmV0dXJucz86IFR5cGVTcGVjaWZpZXI7XG59XG5cbmV4cG9ydCBlbnVtIERpYWdub3N0aWNMZXZlbCB7XG4gIFNraXBwZWQsXG4gIFN1Y2Nlc3MsXG4gIFdhcm5pbmcsXG4gIEVycm9yLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWdub3N0aWMge1xuICBsZXZlbDogRGlhZ25vc3RpY0xldmVsO1xuICBydWxlOiBSdWxlO1xuICBzY29wZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHR5cGUgc3BlY2lmaWVyIHRvIGEgVHlwZVJlZmVyZW5jZVxuICovXG5mdW5jdGlvbiB0eXBlUmVmZXJlbmNlRnJvbSh0czogcmVmbGVjdC5UeXBlU3lzdGVtLCB4OiBUeXBlU3BlY2lmaWVyKTogcmVmbGVjdC5UeXBlUmVmZXJlbmNlIHtcbiAgaWYgKGlzVHlwZVJlZmVyZW5jZSh4KSkgeyByZXR1cm4geDsgfVxuXG4gIGlmICh0eXBlb2YgeCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoeC5pbmRleE9mKCcuJykgPT09IC0xKSB7XG4gICAgICByZXR1cm4gbmV3IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSh0cywgeyBwcmltaXRpdmU6IHggYXMgUHJpbWl0aXZlVHlwZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyByZWZsZWN0LlR5cGVSZWZlcmVuY2UodHMsIHsgZnFuOiB4IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgcmVmbGVjdC5UeXBlUmVmZXJlbmNlKHRzLCB4KTtcbn1cblxuZnVuY3Rpb24gaXNUeXBlUmVmZXJlbmNlKHg6IGFueSk6IHggaXMgcmVmbGVjdC5UeXBlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIHggaW5zdGFuY2VvZiByZWZsZWN0LlR5cGVSZWZlcmVuY2U7XG59XG4iXX0=
|
package/lib/rules/resource.js
CHANGED
|
@@ -13,7 +13,7 @@ var AttributeSite;
|
|
|
13
13
|
(function (AttributeSite) {
|
|
14
14
|
AttributeSite["Interface"] = "interface";
|
|
15
15
|
AttributeSite["Class"] = "class";
|
|
16
|
-
})(AttributeSite
|
|
16
|
+
})(AttributeSite || (exports.AttributeSite = AttributeSite = {}));
|
|
17
17
|
class ResourceReflection {
|
|
18
18
|
/**
|
|
19
19
|
* @returns all resource constructs (everything that extends `cdk.Resource`)
|
|
@@ -246,4 +246,4 @@ function guessResourceName(fqn) {
|
|
|
246
246
|
}
|
|
247
247
|
return `${org}::${ns}::${rs}`;
|
|
248
248
|
}
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBdUM7QUFFdkMsaURBQXVEO0FBQ3ZELDJDQUFrRDtBQUNsRCw2Q0FBeUM7QUFDekMsaUNBQW1DO0FBQ25DLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBR3hCO0FBRUQsTUFBYSxrQkFBa0I7SUFFN0I7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQTBCO1FBQzlDLElBQUksc0JBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7U0FDeEM7UUFFRCxPQUFPLCtCQUFtQjthQUN2QixpQkFBaUIsQ0FBQyxRQUFRLENBQUM7YUFDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ25ELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBWUQsWUFBNEIsU0FBOEI7UUFBOUIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDeEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQUMs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Q0FBQyxFQUFFLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBRTdDLE9BQU8sR0FBRyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjYW1lbGNhc2UgZnJvbSAnY2FtZWxjYXNlJztcbmltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENmblJlc291cmNlUmVmbGVjdGlvbiB9IGZyb20gJy4vY2ZuLXJlc291cmNlJztcbmltcG9ydCB7IENvbnN0cnVjdFJlZmxlY3Rpb24gfSBmcm9tICcuL2NvbnN0cnVjdCc7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RG9jVGFnIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmNvbnN0IEdSQU5UX1JFU1VMVF9GUU4gPSAnQGF3cy1jZGsvYXdzLWlhbS5HcmFudCc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBSZXNvdXJjZVJlZmxlY3Rpb24uZmluZEFsbChhKSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgc2l0ZTogQXR0cmlidXRlU2l0ZTtcbiAgcHJvcGVydHk6IHJlZmxlY3QuUHJvcGVydHk7XG4gIGNmbkF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXTsgLy8gYnVja2V0QXJuXG59XG5cbmV4cG9ydCBlbnVtIEF0dHJpYnV0ZVNpdGUge1xuICBJbnRlcmZhY2UgPSAnaW50ZXJmYWNlJyxcbiAgQ2xhc3MgPSAnY2xhc3MnXG59XG5cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVJlZmxlY3Rpb24ge1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBhbGwgcmVzb3VyY2UgY29uc3RydWN0cyAoZXZlcnl0aGluZyB0aGF0IGV4dGVuZHMgYGNkay5SZXNvdXJjZWApXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbmRBbGwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICBpZiAoQ29yZVR5cGVzLmhhc0NvcmVNb2R1bGUoYXNzZW1ibHkpKSB7XG4gICAgICByZXR1cm4gW107IC8vIG5vdCBwYXJ0IG9mIHRoZSBkZXAgc3RhY2tcbiAgICB9XG5cbiAgICByZXR1cm4gQ29uc3RydWN0UmVmbGVjdGlvblxuICAgICAgLmZpbmRBbGxDb25zdHJ1Y3RzKGFzc2VtYmx5KVxuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc1Jlc291cmNlQ2xhc3MoYy5jbGFzc1R5cGUpKVxuICAgICAgLm1hcChjID0+IG5ldyBSZXNvdXJjZVJlZmxlY3Rpb24oYykpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdOyAvLyBhY3R1YWwgYXR0cmlidXRlIHByb3BzXG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZzsgLy8gZXhwZWN0ZWQgZnFuIG9mIHJlc291cmNlIGNsYXNzXG5cbiAgcHVibGljIHJlYWRvbmx5IGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5O1xuICBwdWJsaWMgcmVhZG9ubHkgc3lzOiByZWZsZWN0LlR5cGVTeXN0ZW07XG4gIHB1YmxpYyByZWFkb25seSBjZm46IENmblJlc291cmNlUmVmbGVjdGlvbjtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VuYW1lOiBzdHJpbmc7IC8vIGkuZS4gQnVja2V0XG4gIHB1YmxpYyByZWFkb25seSBjb3JlOiBDb3JlVHlwZXM7XG4gIHB1YmxpYyByZWFkb25seSBwaHlzaWNhbE5hbWVQcm9wPzogcmVmbGVjdC5Qcm9wZXJ0eTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29uc3RydWN0OiBDb25zdHJ1Y3RSZWZsZWN0aW9uKSB7XG4gICAgdGhpcy5hc3NlbWJseSA9IGNvbnN0cnVjdC5jbGFzc1R5cGUuYXNzZW1ibHk7XG4gICAgdGhpcy5zeXMgPSB0aGlzLmFzc2VtYmx5LnN5c3RlbTtcblxuICAgIGNvbnN0IGNmbiA9IHRyeVJlc29sdmVDZm5SZXNvdXJjZShjb25zdHJ1Y3QuY2xhc3NUeXBlKTtcbiAgICBpZiAoIWNmbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBMMSBjbGFzcyBmb3IgTDIgJHtjb25zdHJ1Y3QuZnFufS4gYCArXG4gICAgICAgIGBJcyBcIiR7Z3Vlc3NSZXNvdXJjZU5hbWUoY29uc3RydWN0LmZxbil9XCIgYW4gYWN0dWFsIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLiBgICtcbiAgICAgICAgJ0lmIG5vdCwgdXNlIHRoZSBcIkByZXNvdXJjZVwiIGRvYyB0YWcgdG8gaW5kaWNhdGUgdGhlIGZ1bGwgcmVzb3VyY2UgbmFtZSAoZS5nLiBcIkByZXNvdXJjZSBBV1M6OlJvdXRlNTM6Okhvc3RlZFpvbmVcIiknKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvcmUgPSBuZXcgQ29yZVR5cGVzKHRoaXMuc3lzKTtcbiAgICB0aGlzLmNmbiA9IGNmbjtcbiAgICB0aGlzLmJhc2VuYW1lID0gY29uc3RydWN0LmNsYXNzVHlwZS5uYW1lO1xuICAgIHRoaXMuZnFuID0gY29uc3RydWN0LmZxbjtcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSB0aGlzLmZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5waHlzaWNhbE5hbWVQcm9wID0gdGhpcy5maW5kUGh5c2ljYWxOYW1lUHJvcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUGh5c2ljYWxOYW1lUHJvcCgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3RydWN0LnByb3BzVHlwZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBjYW1lbGNhc2UodGhpcy5jZm4uYmFzZW5hbWUpO1xuXG4gICAgLy8gaWYgcmVzb3VyY2UgbmFtZSBlbmRzIHdpdGggXCJOYW1lXCIgKGUuZy4gRG9tYWluTmFtZSwgdGhlbiBqdXN0IHVzZSBpdCBhcy1pcywgb3RoZXJ3aXNlIGFwcGVuZCBcIk5hbWVcIilcbiAgICBjb25zdCBwaHlzaWNhbE5hbWVQcm9wID0gcmVzb3VyY2VOYW1lLmVuZHNXaXRoKCdOYW1lJykgPyByZXNvdXJjZU5hbWUgOiBgJHtyZXNvdXJjZU5hbWV9TmFtZWA7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0LnByb3BzVHlwZS5hbGxQcm9wZXJ0aWVzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHBoeXNpY2FsTmFtZVByb3ApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBwcm9wZXJ0aWVzIGFyZSBhbGwgdGhlIHByb3BlcnRpZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSB0eXBlIG5hbWUgKGUuZy4gYnVja2V0WHh4KS5cbiAgICovXG4gIHByaXZhdGUgZmluZEF0dHJpYnV0ZVByb3BlcnRpZXMoKTogQXR0cmlidXRlW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxBdHRyaWJ1dGU+KCk7XG5cbiAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbFByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChwLnByb3RlY3RlZCkge1xuICAgICAgICBjb250aW51ZTsgLy8gc2tpcCBhbnkgcHJvdGVjdGVkIHByb3BlcnRpZXNcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmFzZW5hbWUgPSBjYW1lbGNhc2UodGhpcy5jZm4uYmFzZW5hbWUpO1xuXG4gICAgICAvLyBhbiBhdHRyaWJ1dGUgcHJvcGVydHkgaXMgYSBwcm9wZXJ0eSB3aGljaCBzdGFydHMgd2l0aCB0aGUgdHlwZSBuYW1lXG4gICAgICAvLyAoZS5nLiBcImJ1Y2tldFh4eFwiKSBhbmQvb3IgaGFzIGFuIEBhdHRyaWJ1dGUgZG9jIHRhZy5cbiAgICAgIGNvbnN0IHRhZyA9IGdldERvY1RhZyhwLCAnYXR0cmlidXRlJyk7XG4gICAgICBpZiAoIXAubmFtZS5zdGFydHNXaXRoKGJhc2VuYW1lKSAmJiAhdGFnKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgY2ZuQXR0cmlidXRlTmFtZXM7XG4gICAgICBpZiAodGFnICYmIHRhZyAhPT0gJ3RydWUnKSB7XG4gICAgICAgIC8vIGlmIHRoZXJlJ3MgYW4gYEBhdHRyaWJ1dGVgIGRvYyB0YWcgd2l0aCBhIHZhbHVlIG90aGVyIHRoYW4gXCJ0cnVlXCJcbiAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIENGTiBhdHRyaWJ1dGUgbmFtZSBpbnN0ZWFkIG9mIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgICAgIC8vIG11bHRpcGxlIGF0dHJpYnV0ZSBuYW1lcyBjYW4gYmUgbGlzdGVkIGFzIGEgY29tbWEtZGVsaW1pdGVkIGxpc3RcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSB0YWcuc3BsaXQoJywnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG9rYXksIHdlIGRvbid0IGhhdmUgYW4gZXhwbGljaXQgQ0ZOIGF0dHJpYnV0ZSBuYW1lLCBzbyB3ZSdsbCBndWVzcyBpdFxuICAgICAgICAvLyBmcm9tIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cblxuICAgICAgICBjb25zdCBuYW1lID0gY2FtZWxjYXNlKHAubmFtZSwgeyBwYXNjYWxDYXNlOiB0cnVlIH0pO1xuICAgICAgICBpZiAodGhpcy5jZm4uYXR0cmlidXRlTmFtZXMuaW5jbHVkZXMobmFtZSkpIHtcbiAgICAgICAgICAvLyBzcGVjaWFsIGNhc2U6IHRoZXJlIGlzIGEgY2xvdWRmb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBpbiB0aGUgYXR0cmlidXRlIG5hbWVcbiAgICAgICAgICAvLyBmb3IgZXhhbXBsZSAnUm9sZUlkJy5cbiAgICAgICAgICBjZm5BdHRyaWJ1dGVOYW1lcyA9IFtuYW1lXTtcbiAgICAgICAgfSBlbHNlIGlmIChwLm5hbWUuc3RhcnRzV2l0aChiYXNlbmFtZSkpIHtcbiAgICAgICAgICAvLyBiZWdpbnMgd2l0aCB0aGUgcmVzb3VyY2UgbmFtZSwganVzdCB0cmltIGl0XG4gICAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSBbbmFtZS5zdWJzdHJpbmcodGhpcy5jZm4uYmFzZW5hbWUubGVuZ3RoKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gd2UgY291bGRuJ3QgZGV0ZXJtaW5lIENGTiBhdHRyaWJ1dGUgbmFtZSwgc28gd2UgZG9uJ3QgYWNjb3VudCBmb3IgdGhpc1xuICAgICAgICAgIC8vIGFzIGFuIGF0dHJpYnV0ZS4gdGhpcyBjb3VsZCBiZSwgZm9yIGV4YW1wbGUsIHdoZW4gYSBjb25zdHJ1Y3QgaW1wbGVtZW50c1xuICAgICAgICAgIC8vIGFuIGludGVyZmFjZSB0aGF0IHJlcHJlc2VudHMgYW5vdGhlciByZXNvdXJjZSAoZS5nLiBgbGFtYmRhLkFsaWFzYCBpbXBsZW1lbnRzIGBJRnVuY3Rpb25gKS5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBjaGVjayBpZiB0aGlzIGF0dHJpYnV0ZSBpcyBkZWZpbmVkIG9uIGFuIGludGVyZmFjZSBvciBvbiBhIGNsYXNzXG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGZpbmREZWNsYXJhdGlvblNpdGUocCk7XG4gICAgICBjb25zdCBzaXRlID0gcHJvcGVydHkucGFyZW50VHlwZS5pc0ludGVyZmFjZVR5cGUoKSA/IEF0dHJpYnV0ZVNpdGUuSW50ZXJmYWNlIDogQXR0cmlidXRlU2l0ZS5DbGFzcztcblxuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBzaXRlLFxuICAgICAgICBjZm5BdHRyaWJ1dGVOYW1lcyxcbiAgICAgICAgcHJvcGVydHksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmREZWNsYXJhdGlvblNpdGUocHJvcDogcmVmbGVjdC5Qcm9wZXJ0eSk6IHJlZmxlY3QuUHJvcGVydHkge1xuICBpZiAoIXByb3Aub3ZlcnJpZGVzIHx8ICghcHJvcC5vdmVycmlkZXMuaXNDbGFzc1R5cGUoKSAmJiAhcHJvcC5vdmVycmlkZXMuaXNJbnRlcmZhY2VUeXBlKCkpKSB7XG4gICAgaWYgKCFwcm9wLnBhcmVudFR5cGUuaXNDbGFzc1R5cGUoKSAmJiAhcHJvcC5wYXJlbnRUeXBlLmlzSW50ZXJmYWNlVHlwZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcGFyZW50IHR5cGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3A7XG4gIH1cblxuICBjb25zdCBvdmVycmlkZXNQcm9wID0gcHJvcC5vdmVycmlkZXMuYWxsUHJvcGVydGllcy5maW5kKHAgPT4gcC5uYW1lID09PSBwcm9wLm5hbWUpO1xuICBpZiAoIW92ZXJyaWRlc1Byb3ApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHByb3BlcnR5ICR7cHJvcC5uYW1lfSBpbiBvdmVycmlkZSBzaXRlICR7cHJvcC5vdmVycmlkZXMuZnFufWApO1xuICB9XG4gIHJldHVybiBmaW5kRGVjbGFyYXRpb25TaXRlKG92ZXJyaWRlc1Byb3ApO1xufVxuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtY2xhc3MtZXh0ZW5kcy1yZXNvdXJjZScsXG4gIG1lc3NhZ2U6ICdyZXNvdXJjZSBjbGFzc2VzIG11c3QgZXh0ZW5kIFwiY2RrLlJlc291cmNlXCIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlQmFzZSA9IGUuY3R4LnN5cy5maW5kQ2xhc3MoZS5jdHguY29yZS5yZXNvdXJjZUNsYXNzLmZxbik7XG4gICAgZS5hc3NlcnQoZS5jdHguY29uc3RydWN0LmNsYXNzVHlwZS5leHRlbmRzKHJlc291cmNlQmFzZSksIGUuY3R4LmNvbnN0cnVjdC5mcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1pbnRlcmZhY2UnLFxuICB3YXJuaW5nOiB0cnVlLFxuICBtZXNzYWdlOiAnZXZlcnkgcmVzb3VyY2UgbXVzdCBoYXZlIGEgcmVzb3VyY2UgaW50ZXJmYWNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZS5hc3NlcnQoZS5jdHguY29uc3RydWN0LmludGVyZmFjZVR5cGUsIGUuY3R4LmNvbnN0cnVjdC5mcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1pbnRlcmZhY2UtZXh0ZW5kcy1yZXNvdXJjZScsXG4gIG1lc3NhZ2U6ICdjb25zdHJ1Y3QgaW50ZXJmYWNlcyBvZiBBV1MgcmVzb3VyY2VzIG11c3QgZXh0ZW5kIGNkay5JUmVzb3VyY2UnLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUludGVyZmFjZSA9IGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlO1xuICAgIGlmICghcmVzb3VyY2VJbnRlcmZhY2UpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCByZXNvdXJjZUludGVyZmFjZUZxbiA9IGUuY3R4LmNvcmUucmVzb3VyY2VJbnRlcmZhY2UuZnFuO1xuICAgIGNvbnN0IGludGVyZmFjZUJhc2UgPSBlLmN0eC5zeXMuZmluZEludGVyZmFjZShyZXNvdXJjZUludGVyZmFjZUZxbik7XG4gICAgZS5hc3NlcnQocmVzb3VyY2VJbnRlcmZhY2UuZXh0ZW5kcyhpbnRlcmZhY2VCYXNlKSwgcmVzb3VyY2VJbnRlcmZhY2UuZnFuKTtcbiAgfSxcbn0pO1xuXG4vKlxuLy8gVGhpcyBydWxlIGlzIHRoZSB3b3JzdFxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWF0dHJpYnV0ZScsXG4gIG1lc3NhZ2U6XG4gICAgJ3Jlc291cmNlcyBtdXN0IHJlcHJlc2VudCBhbGwgY2xvdWRmb3JtYXRpb24gYXR0cmlidXRlcyBhcyBhdHRyaWJ1dGUgcHJvcGVydGllcy4gJyArXG4gICAgJ1wiQGF0dHJpYnV0ZSBBVFRSWyxBVFRSXVwiIGNhbiBiZSB1c2VkIHRvIHRhZyBub24tc3RhbmRhcmQgYXR0cmlidXRlIG5hbWVzLiAnICtcbiAgICAnbWlzc2luZyBwcm9wZXJ0eTonLFxuICBldmFsOiBlID0+IHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZS5jdHguY2ZuLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IGNhbWVsY2FzZShuYW1lKS5zdGFydHNXaXRoKGNhbWVsY2FzZShlLmN0eC5jZm4uYmFzZW5hbWUpKVxuICAgICAgICA/IGNhbWVsY2FzZShuYW1lKVxuICAgICAgICA6IGNhbWVsY2FzZShlLmN0eC5jZm4uYmFzZW5hbWUgKyBuYW1lKTtcblxuICAgICAgY29uc3QgZm91bmQgPSBlLmN0eC5hdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLmNmbkF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKTtcbiAgICAgIGUuYXNzZXJ0KGZvdW5kLCBgJHtlLmN0eC5mcW59LiR7ZXhwZWN0ZWR9YCwgZXhwZWN0ZWQpO1xuICAgIH1cbiAgfSxcbn0pO1xuKi9cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2dyYW50LXJlc3VsdCcsXG4gIG1lc3NhZ2U6IGBcImdyYW50XCIgbWV0aG9kIG11c3QgcmV0dXJuICR7R1JBTlRfUkVTVUxUX0ZRTn1gLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBncmFudFJlc3VsdFR5cGUgPSBlLmN0eC5zeXMudHJ5RmluZEZxbihHUkFOVF9SRVNVTFRfRlFOKTtcblxuICAgIC8vIHRoaXMgaW1wbGllcyB0aGF0IHdlIGFyZSBhdCBhIGxvd2VyIGxheWVyIChpLmUuIEBhd3MtY2RrL2NvcmUpXG4gICAgaWYgKCFncmFudFJlc3VsdFR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBncmFudE1ldGhvZHMgPSBlLmN0eC5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmlsdGVyKG0gPT4gbS5uYW1lLnN0YXJ0c1dpdGgoJ2dyYW50JykpO1xuXG4gICAgZm9yIChjb25zdCBncmFudE1ldGhvZCBvZiBncmFudE1ldGhvZHMpIHtcbiAgICAgIGUuYXNzZXJ0U2lnbmF0dXJlKGdyYW50TWV0aG9kLCB7XG4gICAgICAgIHJldHVybnM6IGdyYW50UmVzdWx0VHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtcGh5c2ljYWwtbmFtZScsXG4gIG1lc3NhZ2U6ICdFdmVyeSBSZXNvdXJjZSBtdXN0IGhhdmUgYSBzaW5nbGUgcGh5c2ljYWwgbmFtZSBjb25zdHJ1Y3Rpb24gcHJvcGVydHksICcgK1xuICAgICd3aXRoIGEgbmFtZSB0aGF0IGlzIGFuIGVuZGluZyBzdWJzdHJpbmcgb2YgPGNmblJlc291cmNlPk5hbWUnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmNvbnN0cnVjdC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgZS5hc3NlcnQoZS5jdHgucGh5c2ljYWxOYW1lUHJvcCwgZS5jdHguY29uc3RydWN0LnByb3BzRnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtcGh5c2ljYWwtbmFtZS10eXBlJyxcbiAgbWVzc2FnZTogJ1RoZSB0eXBlIG9mIHRoZSBwaHlzaWNhbCBuYW1lIHByb3Agc2hvdWxkIGFsd2F5cyBiZSBhIFwic3RyaW5nXCInLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnBoeXNpY2FsTmFtZVByb3ApIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgcHJvcCA9IGUuY3R4LnBoeXNpY2FsTmFtZVByb3A7XG4gICAgZS5hc3NlcnRUeXBlc0VxdWFsKGUuY3R4LnN5cywgcHJvcC50eXBlLCAnc3RyaW5nJywgYCR7ZS5jdHguY29uc3RydWN0LnByb3BzRnFufS4ke3Byb3AubmFtZX1gKTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UocmVzb3VyY2VDbGFzczogcmVmbGVjdC5DbGFzc1R5cGUpOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBzeXMgPSByZXNvdXJjZUNsYXNzLnN5c3RlbTtcblxuICAvLyBpZiB0aGVyZSBpcyBhIEByZXNvdXJjZSBkb2MgdGFnLCBpdCB0YWtlcyBwcmVjZWRlY2VcbiAgY29uc3QgdGFnID0gcmVzb3VyY2VDbGFzcy5kb2NzLmN1c3RvbVRhZygncmVzb3VyY2UnKTtcbiAgaWYgKHRhZykge1xuICAgIHJldHVybiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEJ5TmFtZShzeXMsIHRhZyk7XG4gIH1cblxuICAvLyBwYXJzZSB0aGUgRlFOIG9mIHRoZSBjbGFzcyBuYW1lIGFuZCBzZWUgaWYgd2UgY2FuIGZpbmQgYSBtYXRjaGluZyBDRk4gcmVzb3VyY2VcbiAgY29uc3QgZ3Vlc3MgPSBndWVzc1Jlc291cmNlTmFtZShyZXNvdXJjZUNsYXNzLmZxbik7XG4gIGlmIChndWVzcykge1xuICAgIGNvbnN0IGNmbiA9IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQnlOYW1lKHN5cywgZ3Vlc3MpO1xuICAgIGlmIChjZm4pIHtcbiAgICAgIHJldHVybiBjZm47XG4gICAgfVxuICB9XG5cbiAgLy8gdHJ5IHRvIHJlc29sdmUgdGhyb3VnaCBhbmNlc3RvcnNcbiAgZm9yIChjb25zdCBiYXNlIG9mIHJlc291cmNlQ2xhc3MuZ2V0QW5jZXN0b3JzKCkpIHtcbiAgICBjb25zdCByZXQgPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoYmFzZSk7XG4gICAgaWYgKHJldCkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvLyBmYWlsZWQgbWlzcmFibHlcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ3Vlc3NSZXNvdXJjZU5hbWUoZnFuOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2ggPSAvQGF3cy1jZGtcXC8oW2Etel0rKS0oW2EtejAtOV0rKVxcLihbQS1aXVthLXpBLVowLTldKykvLmV4ZWMoZnFuKTtcbiAgaWYgKCFtYXRjaCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG5cbiAgY29uc3QgWywgb3JnLCBucywgcnNdID0gbWF0Y2g7XG4gIGlmICghb3JnIHx8ICFucyB8fCAhcnMpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gIHJldHVybiBgJHtvcmd9Ojoke25zfTo6JHtyc31gO1xufVxuIl19
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBdUM7QUFFdkMsaURBQXVEO0FBQ3ZELDJDQUFrRDtBQUNsRCw2Q0FBeUM7QUFDekMsaUNBQW1DO0FBQ25DLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsNkJBQWIsYUFBYSxRQUd4QjtBQUVELE1BQWEsa0JBQWtCO0lBRTdCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUEwQjtRQUM5QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsNEJBQTRCO1NBQ3hDO1FBRUQsT0FBTywrQkFBbUI7YUFDdkIsaUJBQWlCLENBQUMsUUFBUSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHNCQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNuRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQVlELFlBQTRCLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQ3hELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJ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QUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUU3QyxPQUFPLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2FtZWxjYXNlIGZyb20gJ2NhbWVsY2FzZSc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL2Nmbi1yZXNvdXJjZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RSZWZsZWN0aW9uIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IGdldERvY1RhZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5jb25zdCBHUkFOVF9SRVNVTFRfRlFOID0gJ0Bhd3MtY2RrL2F3cy1pYW0uR3JhbnQnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIHNpdGU6IEF0dHJpYnV0ZVNpdGU7XG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5O1xuICBjZm5BdHRyaWJ1dGVOYW1lczogc3RyaW5nW107IC8vIGJ1Y2tldEFyblxufVxuXG5leHBvcnQgZW51bSBBdHRyaWJ1dGVTaXRlIHtcbiAgSW50ZXJmYWNlID0gJ2ludGVyZmFjZScsXG4gIENsYXNzID0gJ2NsYXNzJ1xufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VSZWZsZWN0aW9uIHtcblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHJlc291cmNlIGNvbnN0cnVjdHMgKGV2ZXJ5dGhpbmcgdGhhdCBleHRlbmRzIGBjZGsuUmVzb3VyY2VgKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kQWxsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gICAgaWYgKENvcmVUeXBlcy5oYXNDb3JlTW9kdWxlKGFzc2VtYmx5KSkge1xuICAgICAgcmV0dXJuIFtdOyAvLyBub3QgcGFydCBvZiB0aGUgZGVwIHN0YWNrXG4gICAgfVxuXG4gICAgcmV0dXJuIENvbnN0cnVjdFJlZmxlY3Rpb25cbiAgICAgIC5maW5kQWxsQ29uc3RydWN0cyhhc3NlbWJseSlcbiAgICAgIC5maWx0ZXIoYyA9PiBDb3JlVHlwZXMuaXNSZXNvdXJjZUNsYXNzKGMuY2xhc3NUeXBlKSlcbiAgICAgIC5tYXAoYyA9PiBuZXcgUmVzb3VyY2VSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTsgLy8gYWN0dWFsIGF0dHJpYnV0ZSBwcm9wc1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7IC8vIGV4cGVjdGVkIGZxbiBvZiByZXNvdXJjZSBjbGFzc1xuXG4gIHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcHVibGljIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBpLmUuIEJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgY29yZTogQ29yZVR5cGVzO1xuICBwdWJsaWMgcmVhZG9ubHkgcGh5c2ljYWxOYW1lUHJvcD86IHJlZmxlY3QuUHJvcGVydHk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnN0cnVjdDogQ29uc3RydWN0UmVmbGVjdGlvbikge1xuICAgIHRoaXMuYXNzZW1ibHkgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLmFzc2VtYmx5O1xuICAgIHRoaXMuc3lzID0gdGhpcy5hc3NlbWJseS5zeXN0ZW07XG5cbiAgICBjb25zdCBjZm4gPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoY29uc3RydWN0LmNsYXNzVHlwZSk7XG4gICAgaWYgKCFjZm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgTDEgY2xhc3MgZm9yIEwyICR7Y29uc3RydWN0LmZxbn0uIGAgK1xuICAgICAgICBgSXMgXCIke2d1ZXNzUmVzb3VyY2VOYW1lKGNvbnN0cnVjdC5mcW4pfVwiIGFuIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS4gYCArXG4gICAgICAgICdJZiBub3QsIHVzZSB0aGUgXCJAcmVzb3VyY2VcIiBkb2MgdGFnIHRvIGluZGljYXRlIHRoZSBmdWxsIHJlc291cmNlIG5hbWUgKGUuZy4gXCJAcmVzb3VyY2UgQVdTOjpSb3V0ZTUzOjpIb3N0ZWRab25lXCIpJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5jZm4gPSBjZm47XG4gICAgdGhpcy5iYXNlbmFtZSA9IGNvbnN0cnVjdC5jbGFzc1R5cGUubmFtZTtcbiAgICB0aGlzLmZxbiA9IGNvbnN0cnVjdC5mcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdGhpcy5maW5kQXR0cmlidXRlUHJvcGVydGllcygpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lUHJvcCA9IHRoaXMuZmluZFBoeXNpY2FsTmFtZVByb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBoeXNpY2FsTmFtZVByb3AoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gY2FtZWxjYXNlKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgIC8vIGlmIHJlc291cmNlIG5hbWUgZW5kcyB3aXRoIFwiTmFtZVwiIChlLmcuIERvbWFpbk5hbWUsIHRoZW4ganVzdCB1c2UgaXQgYXMtaXMsIG90aGVyd2lzZSBhcHBlbmQgXCJOYW1lXCIpXG4gICAgY29uc3QgcGh5c2ljYWxOYW1lUHJvcCA9IHJlc291cmNlTmFtZS5lbmRzV2l0aCgnTmFtZScpID8gcmVzb3VyY2VOYW1lIDogYCR7cmVzb3VyY2VOYW1lfU5hbWVgO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5maW5kKHggPT4geC5uYW1lID09PSBwaHlzaWNhbE5hbWVQcm9wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcHJvcGVydGllcyBhcmUgYWxsIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgdHlwZSBuYW1lIChlLmcuIGJ1Y2tldFh4eCkuXG4gICAqL1xuICBwcml2YXRlIGZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlPigpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHRoaXMuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IHByb3RlY3RlZCBwcm9wZXJ0aWVzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VuYW1lID0gY2FtZWxjYXNlKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgICAgLy8gYW4gYXR0cmlidXRlIHByb3BlcnR5IGlzIGEgcHJvcGVydHkgd2hpY2ggc3RhcnRzIHdpdGggdGhlIHR5cGUgbmFtZVxuICAgICAgLy8gKGUuZy4gXCJidWNrZXRYeHhcIikgYW5kL29yIGhhcyBhbiBAYXR0cmlidXRlIGRvYyB0YWcuXG4gICAgICBjb25zdCB0YWcgPSBnZXREb2NUYWcocCwgJ2F0dHJpYnV0ZScpO1xuICAgICAgaWYgKCFwLm5hbWUuc3RhcnRzV2l0aChiYXNlbmFtZSkgJiYgIXRhZykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGNmbkF0dHJpYnV0ZU5hbWVzO1xuICAgICAgaWYgKHRhZyAmJiB0YWcgIT09ICd0cnVlJykge1xuICAgICAgICAvLyBpZiB0aGVyZSdzIGFuIGBAYXR0cmlidXRlYCBkb2MgdGFnIHdpdGggYSB2YWx1ZSBvdGhlciB0aGFuIFwidHJ1ZVwiXG4gICAgICAgIC8vIGl0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBDRk4gYXR0cmlidXRlIG5hbWUgaW5zdGVhZCBvZiB0aGUgcHJvcGVydHkgbmFtZVxuICAgICAgICAvLyBtdWx0aXBsZSBhdHRyaWJ1dGUgbmFtZXMgY2FuIGJlIGxpc3RlZCBhcyBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4gICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gdGFnLnNwbGl0KCcsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBva2F5LCB3ZSBkb24ndCBoYXZlIGFuIGV4cGxpY2l0IENGTiBhdHRyaWJ1dGUgbmFtZSwgc28gd2UnbGwgZ3Vlc3MgaXRcbiAgICAgICAgLy8gZnJvbSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG5cbiAgICAgICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShwLm5hbWUsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHRoaXMuY2ZuLmF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiB0aGVyZSBpcyBhIGNsb3VkZm9ybWF0aW9uIHJlc291cmNlIHR5cGUgaW4gdGhlIGF0dHJpYnV0ZSBuYW1lXG4gICAgICAgICAgLy8gZm9yIGV4YW1wbGUgJ1JvbGVJZCcuXG4gICAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSBbbmFtZV07XG4gICAgICAgIH0gZWxzZSBpZiAocC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpKSB7XG4gICAgICAgICAgLy8gYmVnaW5zIHdpdGggdGhlIHJlc291cmNlIG5hbWUsIGp1c3QgdHJpbSBpdFxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWUuc3Vic3RyaW5nKHRoaXMuY2ZuLmJhc2VuYW1lLmxlbmd0aCldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHdlIGNvdWxkbid0IGRldGVybWluZSBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlIGRvbid0IGFjY291bnQgZm9yIHRoaXNcbiAgICAgICAgICAvLyBhcyBhbiBhdHRyaWJ1dGUuIHRoaXMgY291bGQgYmUsIGZvciBleGFtcGxlLCB3aGVuIGEgY29uc3RydWN0IGltcGxlbWVudHNcbiAgICAgICAgICAvLyBhbiBpbnRlcmZhY2UgdGhhdCByZXByZXNlbnRzIGFub3RoZXIgcmVzb3VyY2UgKGUuZy4gYGxhbWJkYS5BbGlhc2AgaW1wbGVtZW50cyBgSUZ1bmN0aW9uYCkuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBvbiBhbiBpbnRlcmZhY2Ugb3Igb24gYSBjbGFzc1xuICAgICAgY29uc3QgcHJvcGVydHkgPSBmaW5kRGVjbGFyYXRpb25TaXRlKHApO1xuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5LnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkgPyBBdHRyaWJ1dGVTaXRlLkludGVyZmFjZSA6IEF0dHJpYnV0ZVNpdGUuQ2xhc3M7XG5cbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgc2l0ZSxcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMsXG4gICAgICAgIHByb3BlcnR5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kRGVjbGFyYXRpb25TaXRlKHByb3A6IHJlZmxlY3QuUHJvcGVydHkpOiByZWZsZWN0LlByb3BlcnR5IHtcbiAgaWYgKCFwcm9wLm92ZXJyaWRlcyB8fCAoIXByb3Aub3ZlcnJpZGVzLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3Aub3ZlcnJpZGVzLmlzSW50ZXJmYWNlVHlwZSgpKSkge1xuICAgIGlmICghcHJvcC5wYXJlbnRUeXBlLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3AucGFyZW50VHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBhcmVudCB0eXBlJyk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGVzUHJvcCA9IHByb3Aub3ZlcnJpZGVzLmFsbFByb3BlcnRpZXMuZmluZChwID0+IHAubmFtZSA9PT0gcHJvcC5uYW1lKTtcbiAgaWYgKCFvdmVycmlkZXNQcm9wKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcm9wZXJ0eSAke3Byb3AubmFtZX0gaW4gb3ZlcnJpZGUgc2l0ZSAke3Byb3Aub3ZlcnJpZGVzLmZxbn1gKTtcbiAgfVxuICByZXR1cm4gZmluZERlY2xhcmF0aW9uU2l0ZShvdmVycmlkZXNQcm9wKTtcbn1cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAncmVzb3VyY2UgY2xhc3NlcyBtdXN0IGV4dGVuZCBcImNkay5SZXNvdXJjZVwiIGRpcmVjdGx5IG9yIGluZGlyZWN0bHknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUJhc2UgPSBlLmN0eC5zeXMuZmluZENsYXNzKGUuY3R4LmNvcmUucmVzb3VyY2VDbGFzcy5mcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuZXh0ZW5kcyhyZXNvdXJjZUJhc2UpLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGludGVyZmFjZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZXMgb2YgQVdTIHJlc291cmNlcyBtdXN0IGV4dGVuZCBjZGsuSVJlc291cmNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2UgPSBlLmN0eC5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZTtcbiAgICBpZiAoIXJlc291cmNlSW50ZXJmYWNlKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2VGcW4gPSBlLmN0eC5jb3JlLnJlc291cmNlSW50ZXJmYWNlLmZxbjtcbiAgICBjb25zdCBpbnRlcmZhY2VCYXNlID0gZS5jdHguc3lzLmZpbmRJbnRlcmZhY2UocmVzb3VyY2VJbnRlcmZhY2VGcW4pO1xuICAgIGUuYXNzZXJ0KHJlc291cmNlSW50ZXJmYWNlLmV4dGVuZHMoaW50ZXJmYWNlQmFzZSksIHJlc291cmNlSW50ZXJmYWNlLmZxbik7XG4gIH0sXG59KTtcblxuLypcbi8vIFRoaXMgcnVsZSBpcyB0aGUgd29yc3RcbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1hdHRyaWJ1dGUnLFxuICBtZXNzYWdlOlxuICAgICdyZXNvdXJjZXMgbXVzdCByZXByZXNlbnQgYWxsIGNsb3VkZm9ybWF0aW9uIGF0dHJpYnV0ZXMgYXMgYXR0cmlidXRlIHByb3BlcnRpZXMuICcgK1xuICAgICdcIkBhdHRyaWJ1dGUgQVRUUlssQVRUUl1cIiBjYW4gYmUgdXNlZCB0byB0YWcgbm9uLXN0YW5kYXJkIGF0dHJpYnV0ZSBuYW1lcy4gJyArXG4gICAgJ21pc3NpbmcgcHJvcGVydHk6JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIGUuY3R4LmNmbi5hdHRyaWJ1dGVOYW1lcykge1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSBjYW1lbGNhc2UobmFtZSkuc3RhcnRzV2l0aChjYW1lbGNhc2UoZS5jdHguY2ZuLmJhc2VuYW1lKSlcbiAgICAgICAgPyBjYW1lbGNhc2UobmFtZSlcbiAgICAgICAgOiBjYW1lbGNhc2UoZS5jdHguY2ZuLmJhc2VuYW1lICsgbmFtZSk7XG5cbiAgICAgIGNvbnN0IGZvdW5kID0gZS5jdHguYXR0cmlidXRlcy5maW5kKGEgPT4gYS5jZm5BdHRyaWJ1dGVOYW1lcy5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICBlLmFzc2VydChmb3VuZCwgYCR7ZS5jdHguZnFufS4ke2V4cGVjdGVkfWAsIGV4cGVjdGVkKTtcbiAgICB9XG4gIH0sXG59KTtcbiovXG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdncmFudC1yZXN1bHQnLFxuICBtZXNzYWdlOiBgXCJncmFudFwiIG1ldGhvZCBtdXN0IHJldHVybiAke0dSQU5UX1JFU1VMVF9GUU59YCxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgZ3JhbnRSZXN1bHRUeXBlID0gZS5jdHguc3lzLnRyeUZpbmRGcW4oR1JBTlRfUkVTVUxUX0ZRTik7XG5cbiAgICAvLyB0aGlzIGltcGxpZXMgdGhhdCB3ZSBhcmUgYXQgYSBsb3dlciBsYXllciAoaS5lLiBAYXdzLWNkay9jb3JlKVxuICAgIGlmICghZ3JhbnRSZXN1bHRUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JhbnRNZXRob2RzID0gZS5jdHguY29uc3RydWN0LmNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbHRlcihtID0+IG0ubmFtZS5zdGFydHNXaXRoKCdncmFudCcpKTtcblxuICAgIGZvciAoY29uc3QgZ3JhbnRNZXRob2Qgb2YgZ3JhbnRNZXRob2RzKSB7XG4gICAgICBlLmFzc2VydFNpZ25hdHVyZShncmFudE1ldGhvZCwge1xuICAgICAgICByZXR1cm5zOiBncmFudFJlc3VsdFR5cGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG59KTtcblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLXBoeXNpY2FsLW5hbWUnLFxuICBtZXNzYWdlOiAnRXZlcnkgUmVzb3VyY2UgbXVzdCBoYXZlIGEgc2luZ2xlIHBoeXNpY2FsIG5hbWUgY29uc3RydWN0aW9uIHByb3BlcnR5LCAnICtcbiAgICAnd2l0aCBhIG5hbWUgdGhhdCBpcyBhbiBlbmRpbmcgc3Vic3RyaW5nIG9mIDxjZm5SZXNvdXJjZT5OYW1lJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5jb25zdHJ1Y3QucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGUuYXNzZXJ0KGUuY3R4LnBoeXNpY2FsTmFtZVByb3AsIGUuY3R4LmNvbnN0cnVjdC5wcm9wc0Zxbik7XG4gIH0sXG59KTtcblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLXBoeXNpY2FsLW5hbWUtdHlwZScsXG4gIG1lc3NhZ2U6ICdUaGUgdHlwZSBvZiB0aGUgcGh5c2ljYWwgbmFtZSBwcm9wIHNob3VsZCBhbHdheXMgYmUgYSBcInN0cmluZ1wiJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5waHlzaWNhbE5hbWVQcm9wKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHByb3AgPSBlLmN0eC5waHlzaWNhbE5hbWVQcm9wO1xuICAgIGUuYXNzZXJ0VHlwZXNFcXVhbChlLmN0eC5zeXMsIHByb3AudHlwZSwgJ3N0cmluZycsIGAke2UuY3R4LmNvbnN0cnVjdC5wcm9wc0Zxbn0uJHtwcm9wLm5hbWV9YCk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gdHJ5UmVzb2x2ZUNmblJlc291cmNlKHJlc291cmNlQ2xhc3M6IHJlZmxlY3QuQ2xhc3NUeXBlKTogQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3lzID0gcmVzb3VyY2VDbGFzcy5zeXN0ZW07XG5cbiAgLy8gaWYgdGhlcmUgaXMgYSBAcmVzb3VyY2UgZG9jIHRhZywgaXQgdGFrZXMgcHJlY2VkZWNlXG4gIGNvbnN0IHRhZyA9IHJlc291cmNlQ2xhc3MuZG9jcy5jdXN0b21UYWcoJ3Jlc291cmNlJyk7XG4gIGlmICh0YWcpIHtcbiAgICByZXR1cm4gQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRCeU5hbWUoc3lzLCB0YWcpO1xuICB9XG5cbiAgLy8gcGFyc2UgdGhlIEZRTiBvZiB0aGUgY2xhc3MgbmFtZSBhbmQgc2VlIGlmIHdlIGNhbiBmaW5kIGEgbWF0Y2hpbmcgQ0ZOIHJlc291cmNlXG4gIGNvbnN0IGd1ZXNzID0gZ3Vlc3NSZXNvdXJjZU5hbWUocmVzb3VyY2VDbGFzcy5mcW4pO1xuICBpZiAoZ3Vlc3MpIHtcbiAgICBjb25zdCBjZm4gPSBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEJ5TmFtZShzeXMsIGd1ZXNzKTtcbiAgICBpZiAoY2ZuKSB7XG4gICAgICByZXR1cm4gY2ZuO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyeSB0byByZXNvbHZlIHRocm91Z2ggYW5jZXN0b3JzXG4gIGZvciAoY29uc3QgYmFzZSBvZiByZXNvdXJjZUNsYXNzLmdldEFuY2VzdG9ycygpKSB7XG4gICAgY29uc3QgcmV0ID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGJhc2UpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLy8gZmFpbGVkIG1pc3JhYmx5XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGd1ZXNzUmVzb3VyY2VOYW1lKGZxbjogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL0Bhd3MtY2RrXFwvKFthLXpdKyktKFthLXowLTldKylcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKGZxbik7XG4gIGlmICghbWF0Y2gpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gIGNvbnN0IFssIG9yZywgbnMsIHJzXSA9IG1hdGNoO1xuICBpZiAoIW9yZyB8fCAhbnMgfHwgIXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICByZXR1cm4gYCR7b3JnfTo6JHtuc306OiR7cnN9YDtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awslint",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.87.0-alpha.0",
|
|
4
4
|
"description": "Enforces the AWS Construct Library guidelines",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc -b && eslint . --ext=.ts && pkglint && chmod +x bin/awslint",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"@types/fs-extra": "^9.0.13",
|
|
30
30
|
"@types/jest": "^29.5.1",
|
|
31
31
|
"@types/yargs": "^15.0.15",
|
|
32
|
-
"@aws-cdk/pkglint": "2.
|
|
33
|
-
"typescript": "~
|
|
32
|
+
"@aws-cdk/pkglint": "2.87.0-alpha.0",
|
|
33
|
+
"typescript": "~5.1.3",
|
|
34
34
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
35
35
|
"@typescript-eslint/parser": "^4.33.0",
|
|
36
36
|
"eslint": "^7.32.0",
|
|
37
37
|
"eslint-import-resolver-node": "^0.3.7",
|
|
38
38
|
"eslint-import-resolver-typescript": "^2.7.1",
|
|
39
|
-
"@aws-cdk/eslint-plugin": "2.
|
|
39
|
+
"@aws-cdk/eslint-plugin": "2.87.0-alpha.0",
|
|
40
40
|
"eslint-plugin-import": "^2.27.5",
|
|
41
41
|
"eslint-plugin-jest": "^24.7.0",
|
|
42
42
|
"jest": "^29.5.0"
|