awslint 2.214.0-alpha.0 → 2.216.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/rules/core-types.d.ts +1 -1
- package/lib/rules/core-types.js +4 -6
- package/lib/rules/core-types.ts +3 -6
- package/lib/rules/docs.js +5 -1
- package/lib/rules/docs.ts +4 -0
- package/lib/rules/resource.d.ts +3 -0
- package/lib/rules/resource.js +7 -1
- package/lib/rules/resource.ts +6 -0
- package/package.json +2 -2
|
@@ -30,7 +30,7 @@ export declare class CoreTypes {
|
|
|
30
30
|
*/
|
|
31
31
|
static isCfnNestedType(interfaceType: reflect.Type): boolean | "" | undefined;
|
|
32
32
|
/**
|
|
33
|
-
* Return true if the given interface type is a CFN class
|
|
33
|
+
* Return true if the given interface type is a CFN class, prop type or interface
|
|
34
34
|
*/
|
|
35
35
|
static isCfnType(interfaceType: reflect.Type): boolean | "" | undefined;
|
|
36
36
|
/**
|
package/lib/rules/core-types.js
CHANGED
|
@@ -38,10 +38,7 @@ class CoreTypes {
|
|
|
38
38
|
if (!c.extends(cfnResourceClass)) {
|
|
39
39
|
return false;
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
return true;
|
|
41
|
+
return c.name.startsWith('Cfn');
|
|
45
42
|
}
|
|
46
43
|
/**
|
|
47
44
|
* @returns true if `classType` represents a Construct
|
|
@@ -72,10 +69,11 @@ class CoreTypes {
|
|
|
72
69
|
return interfaceType.nestingParent && CoreTypes.isCfnType(interfaceType.nestingParent);
|
|
73
70
|
}
|
|
74
71
|
/**
|
|
75
|
-
* Return true if the given interface type is a CFN class
|
|
72
|
+
* Return true if the given interface type is a CFN class, prop type or interface
|
|
76
73
|
*/
|
|
77
74
|
static isCfnType(interfaceType) {
|
|
78
75
|
return interfaceType.name.startsWith('Cfn')
|
|
76
|
+
|| /^I\w+Ref/.test(interfaceType.name)
|
|
79
77
|
|| (interfaceType.namespace && interfaceType.namespace.startsWith('Cfn'))
|
|
80
78
|
// aws_service.CfnTheResource.SubType
|
|
81
79
|
|| (interfaceType.namespace && interfaceType.namespace.split('.', 2).at(1)?.startsWith('Cfn'));
|
|
@@ -166,4 +164,4 @@ class CoreTypes {
|
|
|
166
164
|
}
|
|
167
165
|
}
|
|
168
166
|
exports.CoreTypes = CoreTypes;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvcmUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQW1DO0FBRW5DLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUNsQyxJQUFLLFlBU0o7QUFURCxXQUFLLFlBQVk7SUFDZix1REFBdUMsQ0FBQTtJQUN2QyxpREFBaUMsQ0FBQTtJQUNqQywyREFBMkMsQ0FBQTtJQUMzQywrREFBK0MsQ0FBQTtJQUMvQyx5REFBeUMsQ0FBQTtJQUV6QyxrREFBa0MsQ0FBQTtJQUNsQyw0REFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBVEksWUFBWSxLQUFaLFlBQVksUUFTaEI7QUFFRCxNQUFhLFNBQVM7SUFFcEI7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQTBCO1FBQ3BELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQW9CO1FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FB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Q0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUlELFlBQVksR0FBdUI7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDdkMscUJBQXFCO1lBQ3JCLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBckxELDhCQXFMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IGdldERvY1RhZyB9IGZyb20gJy4vdXRpbCc7XG5cbmNvbnN0IENPUkVfTU9EVUxFID0gJ2F3cy1jZGstbGliJztcbmVudW0gQ29yZVR5cGVzRnFuIHtcbiAgQ2ZuUmVzb3VyY2UgPSAnYXdzLWNkay1saWIuQ2ZuUmVzb3VyY2UnLFxuICBSZXNvdXJjZSA9ICdhd3MtY2RrLWxpYi5SZXNvdXJjZScsXG4gIFJlc291cmNlSW50ZXJmYWNlID0gJ2F3cy1jZGstbGliLklSZXNvdXJjZScsXG4gIFJlc29sdmFibGVJbnRlcmZhY2UgPSAnYXdzLWNkay1saWIuSVJlc29sdmFibGUnLFxuICBQaHlzaWNhbE5hbWUgPSAnYXdzLWNkay1saWIuUGh5c2ljYWxOYW1lJyxcblxuICBDb25zdHJ1Y3QgPSAnY29uc3RydWN0cy5Db25zdHJ1Y3QnLFxuICBDb25zdHJ1Y3RJbnRlcmZhY2UgPSAnY29uc3RydWN0cy5JQ29uc3RydWN0Jyxcbn1cblxuZXhwb3J0IGNsYXNzIENvcmVUeXBlcyB7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYXNzZW1ibHkgaGFzIHRoZSBDb3JlIG1vZHVsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoYXNDb3JlTW9kdWxlKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gICAgcmV0dXJuICghYXNzZW1ibHkuc3lzdGVtLmFzc2VtYmxpZXMuZmluZChhID0+IGEubmFtZSA9PT0gQ09SRV9NT0RVTEUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGBjbGFzc1R5cGVgIHJlcHJlc2VudHMgYW4gTDEgQ2ZuIFJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2ZuUmVzb3VyY2UoYzogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICBpZiAoIWMuc3lzdGVtLmluY2x1ZGVzQXNzZW1ibHkoQ09SRV9NT0RVTEUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2tpcCBDZm5SZXNvdXJjZSBpdHNlbGZcbiAgICBpZiAoYy5mcW4gPT09IENvcmVUeXBlc0Zxbi5DZm5SZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0NvbnN0cnVjdENsYXNzKGMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgY2ZuUmVzb3VyY2VDbGFzcyA9IGMuc3lzdGVtLmZpbmRGcW4oQ29yZVR5cGVzRnFuLkNmblJlc291cmNlKTtcbiAgICBpZiAoIWMuZXh0ZW5kcyhjZm5SZXNvdXJjZUNsYXNzKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghYy5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBgY2xhc3NUeXBlYCByZXByZXNlbnRzIGEgQ29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ29uc3RydWN0Q2xhc3MoYzogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICBpZiAoIWMuc3lzdGVtLmluY2x1ZGVzQXNzZW1ibHkoQ09SRV9NT0RVTEUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFjLmlzQ2xhc3NUeXBlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoYy5hYnN0cmFjdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBjLmV4dGVuZHMoYy5zeXN0ZW0uZmluZEZxbihDb3JlVHlwZXNGcW4uQ29uc3RydWN0KSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBgY2xhc3NUeXBlYCByZXByZXNlbnRzIGFuIEFXUyByZXNvdXJjZSAoaS5lLiBleHRlbmRzIGBjZGsuUmVzb3VyY2VgKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNSZXNvdXJjZUNsYXNzKGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICBjb25zdCBiYXNlUmVzb3VyY2UgPSBjbGFzc1R5cGUuc3lzdGVtLmZpbmRDbGFzcyhDb3JlVHlwZXNGcW4uUmVzb3VyY2UpO1xuICAgIHJldHVybiBjbGFzc1R5cGUuZXh0ZW5kcyhiYXNlUmVzb3VyY2UpIHx8IGdldERvY1RhZyhjbGFzc1R5cGUsICdyZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0cnVlIGlmIHRoZSBuZXN0aW5nIHBhcmVudCBvZiB0aGUgZ2l2ZW4gaW50ZXJmYWNlIGlzIGEgQ0ZOIGNsYXNzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2ZuTmVzdGVkVHlwZShpbnRlcmZhY2VUeXBlOiByZWZsZWN0LlR5cGUpIHtcbiAgICByZXR1cm4gaW50ZXJmYWNlVHlwZS5uZXN0aW5nUGFyZW50ICYmIENvcmVUeXBlcy5pc0NmblR5cGUoaW50ZXJmYWNlVHlwZS5uZXN0aW5nUGFyZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gaW50ZXJmYWNlIHR5cGUgaXMgYSBDRk4gY2xhc3Mgb3IgcHJvcCB0eXBlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2ZuVHlwZShpbnRlcmZhY2VUeXBlOiByZWZsZWN0LlR5cGUpIHtcbiAgICByZXR1cm4gaW50ZXJmYWNlVHlwZS5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpXG4gICAgICB8fCAoaW50ZXJmYWNlVHlwZS5uYW1lc3BhY2UgJiYgaW50ZXJmYWNlVHlwZS5uYW1lc3BhY2Uuc3RhcnRzV2l0aCgnQ2ZuJykpXG4gICAgICAvLyBhd3Nfc2VydmljZS5DZm5UaGVSZXNvdXJjZS5TdWJUeXBlXG4gICAgICB8fCAoaW50ZXJmYWNlVHlwZS5uYW1lc3BhY2UgJiYgaW50ZXJmYWNlVHlwZS5uYW1lc3BhY2Uuc3BsaXQoJy4nLCAyKS5hdCgxKT8uc3RhcnRzV2l0aCgnQ2ZuJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIENvbnN0cnVjdFxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBgYmFzZUNvbnN0cnVjdENsYXNzKClgXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnN0cnVjdENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VDb25zdHJ1Y3RDbGFzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgY2xhc3NUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBDb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3ModGhpcy5iYXNlQ29uc3RydWN0Q2xhc3NGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIGdldCBiYXNlQ29uc3RydWN0Q2xhc3NGcW4oKSB7XG4gICAgcmV0dXJuIENvcmVUeXBlc0Zxbi5Db25zdHJ1Y3Q7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGludGVyZmFjZXR5cGVgIGZvciB0aGUgY29yZSB0eXBlIENvbnN0cnVjdFxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBgYmFzZUNvbnN0cnVjdEludGVyZmFjZSgpYFxuICAgKi9cbiAgcHVibGljIGdldCBjb25zdHJ1Y3RJbnRlcmZhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUNvbnN0cnVjdEludGVyZmFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgaW50ZXJmYWNldHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IGJhc2VDb25zdHJ1Y3RJbnRlcmZhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzLmZpbmRJbnRlcmZhY2UodGhpcy5iYXNlQ29uc3RydWN0SW50ZXJmYWNlRnFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBmcW4gZm9yIGZvciB0aGUgY29yZSBDb25zdHJ1Y3QgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJhc2VDb25zdHJ1Y3RJbnRlcmZhY2VGcW4oKSB7XG4gICAgcmV0dXJuIENvcmVUeXBlc0Zxbi5Db25zdHJ1Y3RJbnRlcmZhY2U7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgUmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZENsYXNzKHRoaXMucmVzb3VyY2VDbGFzc0Zxbik7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgZnFuIGZvciB0aGUgY29yZSB0eXBlIFJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlQ2xhc3NGcW4oKSB7XG4gICAgcmV0dXJuIENvcmVUeXBlc0Zxbi5SZXNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBmcW4gZm9yIHRoZSBjb3JlIFJlc291cmNlIGludGVyZmFjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZEludGVyZmFjZSh0aGlzLnJlc291cmNlSW50ZXJmYWNlRnFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgaW50ZXJmYWNlVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgUmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VJbnRlcmZhY2VGcW4oKSB7XG4gICAgcmV0dXJuIENvcmVUeXBlc0Zxbi5SZXNvdXJjZUludGVyZmFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgY2xhc3NUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBUb2tlblxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlbkludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZEludGVyZmFjZSh0aGlzLnRva2VuSW50ZXJmYWNlRnFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBmcW4gZm9yIHRoZSBjb3JlIHR5cGUgVG9rZW5cbiAgICovXG4gIHB1YmxpYyBnZXQgdG9rZW5JbnRlcmZhY2VGcW4oKSB7XG4gICAgcmV0dXJuIENvcmVUeXBlc0Zxbi5SZXNvbHZhYmxlSW50ZXJmYWNlO1xuICB9XG5cbiAgcHVibGljIGdldCBwaHlzaWNhbE5hbWVDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZENsYXNzKENvcmVUeXBlc0Zxbi5QaHlzaWNhbE5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbTtcblxuICBjb25zdHJ1Y3RvcihzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbSkge1xuICAgIHRoaXMuc3lzID0gc3lzO1xuICAgIGlmICghc3lzLmluY2x1ZGVzQXNzZW1ibHkoQ09SRV9NT0RVTEUpKSB7XG4gICAgICAvLyBkaXNhYmxlLWFsbC1jaGVja3NcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvcmUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQW1DO0FBRW5DLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUNsQyxJQUFLLFlBU0o7QUFURCxXQUFLLFlBQVk7SUFDZix1REFBdUMsQ0FBQTtJQUN2QyxpREFBaUMsQ0FBQTtJQUNqQywyREFBMkMsQ0FBQTtJQUMzQywrREFBK0MsQ0FBQTtJQUMvQyx5REFBeUMsQ0FBQTtJQUV6QyxrREFBa0MsQ0FBQTtJQUNsQyw0REFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBVEksWUFBWSxLQUFaLFlBQVksUUFTaEI7QUFFRCxNQUFhLFNBQVM7SUFFcEI7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQTBCO1FBQ3BELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQW9CO1FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FB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QztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxZQUFZLENBQUMsaUJBQWlCLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxZQUFZLENBQUMsbUJBQW1CLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFJRCxZQUFZLEdBQXVCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLHFCQUFxQjtZQUNyQixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWxMRCw4QkFrTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBnZXREb2NUYWcgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBDT1JFX01PRFVMRSA9ICdhd3MtY2RrLWxpYic7XG5lbnVtIENvcmVUeXBlc0ZxbiB7XG4gIENmblJlc291cmNlID0gJ2F3cy1jZGstbGliLkNmblJlc291cmNlJyxcbiAgUmVzb3VyY2UgPSAnYXdzLWNkay1saWIuUmVzb3VyY2UnLFxuICBSZXNvdXJjZUludGVyZmFjZSA9ICdhd3MtY2RrLWxpYi5JUmVzb3VyY2UnLFxuICBSZXNvbHZhYmxlSW50ZXJmYWNlID0gJ2F3cy1jZGstbGliLklSZXNvbHZhYmxlJyxcbiAgUGh5c2ljYWxOYW1lID0gJ2F3cy1jZGstbGliLlBoeXNpY2FsTmFtZScsXG5cbiAgQ29uc3RydWN0ID0gJ2NvbnN0cnVjdHMuQ29uc3RydWN0JyxcbiAgQ29uc3RydWN0SW50ZXJmYWNlID0gJ2NvbnN0cnVjdHMuSUNvbnN0cnVjdCcsXG59XG5cbmV4cG9ydCBjbGFzcyBDb3JlVHlwZXMge1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFzc2VtYmx5IGhhcyB0aGUgQ29yZSBtb2R1bGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ29yZU1vZHVsZShhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIHJldHVybiAoIWFzc2VtYmx5LnN5c3RlbS5hc3NlbWJsaWVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IENPUkVfTU9EVUxFKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBgY2xhc3NUeXBlYCByZXByZXNlbnRzIGFuIEwxIENmbiBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NmblJlc291cmNlKGM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgaWYgKCFjLnN5c3RlbS5pbmNsdWRlc0Fzc2VtYmx5KENPUkVfTU9EVUxFKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHNraXAgQ2ZuUmVzb3VyY2UgaXRzZWxmXG4gICAgaWYgKGMuZnFuID09PSBDb3JlVHlwZXNGcW4uQ2ZuUmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNDb25zdHJ1Y3RDbGFzcyhjKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNmblJlc291cmNlQ2xhc3MgPSBjLnN5c3RlbS5maW5kRnFuKENvcmVUeXBlc0Zxbi5DZm5SZXNvdXJjZSk7XG4gICAgaWYgKCFjLmV4dGVuZHMoY2ZuUmVzb3VyY2VDbGFzcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYy5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYGNsYXNzVHlwZWAgcmVwcmVzZW50cyBhIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbnN0cnVjdENsYXNzKGM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgaWYgKCFjLnN5c3RlbS5pbmNsdWRlc0Fzc2VtYmx5KENPUkVfTU9EVUxFKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghYy5pc0NsYXNzVHlwZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGMuYWJzdHJhY3QpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYy5leHRlbmRzKGMuc3lzdGVtLmZpbmRGcW4oQ29yZVR5cGVzRnFuLkNvbnN0cnVjdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYGNsYXNzVHlwZWAgcmVwcmVzZW50cyBhbiBBV1MgcmVzb3VyY2UgKGkuZS4gZXh0ZW5kcyBgY2RrLlJlc291cmNlYCkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzUmVzb3VyY2VDbGFzcyhjbGFzc1R5cGU6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgY29uc3QgYmFzZVJlc291cmNlID0gY2xhc3NUeXBlLnN5c3RlbS5maW5kQ2xhc3MoQ29yZVR5cGVzRnFuLlJlc291cmNlKTtcbiAgICByZXR1cm4gY2xhc3NUeXBlLmV4dGVuZHMoYmFzZVJlc291cmNlKSB8fCBnZXREb2NUYWcoY2xhc3NUeXBlLCAncmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmVzdGluZyBwYXJlbnQgb2YgdGhlIGdpdmVuIGludGVyZmFjZSBpcyBhIENGTiBjbGFzc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nmbk5lc3RlZFR5cGUoaW50ZXJmYWNlVHlwZTogcmVmbGVjdC5UeXBlKSB7XG4gICAgcmV0dXJuIGludGVyZmFjZVR5cGUubmVzdGluZ1BhcmVudCAmJiBDb3JlVHlwZXMuaXNDZm5UeXBlKGludGVyZmFjZVR5cGUubmVzdGluZ1BhcmVudCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGludGVyZmFjZSB0eXBlIGlzIGEgQ0ZOIGNsYXNzLCBwcm9wIHR5cGUgb3IgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2ZuVHlwZShpbnRlcmZhY2VUeXBlOiByZWZsZWN0LlR5cGUpIHtcbiAgICByZXR1cm4gaW50ZXJmYWNlVHlwZS5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpXG4gICAgICB8fCAvXklcXHcrUmVmLy50ZXN0KGludGVyZmFjZVR5cGUubmFtZSlcbiAgICAgIHx8IChpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZSAmJiBpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZS5zdGFydHNXaXRoKCdDZm4nKSlcbiAgICAgIC8vIGF3c19zZXJ2aWNlLkNmblRoZVJlc291cmNlLlN1YlR5cGVcbiAgICAgIHx8IChpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZSAmJiBpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZS5zcGxpdCgnLicsIDIpLmF0KDEpPy5zdGFydHNXaXRoKCdDZm4nKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGBiYXNlQ29uc3RydWN0Q2xhc3MoKWBcbiAgICovXG4gIHB1YmxpYyBnZXQgY29uc3RydWN0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUNvbnN0cnVjdENsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIGdldCBiYXNlQ29uc3RydWN0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzLmZpbmRDbGFzcyh0aGlzLmJhc2VDb25zdHJ1Y3RDbGFzc0Zxbik7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IGJhc2VDb25zdHJ1Y3RDbGFzc0ZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLkNvbnN0cnVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgaW50ZXJmYWNldHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGBiYXNlQ29uc3RydWN0SW50ZXJmYWNlKClgXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnN0cnVjdEludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlQ29uc3RydWN0SW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBpbnRlcmZhY2V0eXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBDb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdEludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZEludGVyZmFjZSh0aGlzLmJhc2VDb25zdHJ1Y3RJbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgZm9yIHRoZSBjb3JlIENvbnN0cnVjdCBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdEludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLkNvbnN0cnVjdEludGVyZmFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgY2xhc3NUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3ModGhpcy5yZXNvdXJjZUNsYXNzRnFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBmcW4gZm9yIHRoZSBjb3JlIHR5cGUgUmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VDbGFzc0ZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgdGhlIGNvcmUgUmVzb3VyY2UgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlSW50ZXJmYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kSW50ZXJmYWNlKHRoaXMucmVzb3VyY2VJbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBpbnRlcmZhY2VUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc291cmNlSW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIFRva2VuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRva2VuSW50ZXJmYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kSW50ZXJmYWNlKHRoaXMudG9rZW5JbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgdGhlIGNvcmUgdHlwZSBUb2tlblxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlbkludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc29sdmFibGVJbnRlcmZhY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBoeXNpY2FsTmFtZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3MoQ29yZVR5cGVzRnFuLlBoeXNpY2FsTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuXG4gIGNvbnN0cnVjdG9yKHN5czogcmVmbGVjdC5UeXBlU3lzdGVtKSB7XG4gICAgdGhpcy5zeXMgPSBzeXM7XG4gICAgaWYgKCFzeXMuaW5jbHVkZXNBc3NlbWJseShDT1JFX01PRFVMRSkpIHtcbiAgICAgIC8vIGRpc2FibGUtYWxsLWNoZWNrc1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/rules/core-types.ts
CHANGED
|
@@ -44,11 +44,7 @@ export class CoreTypes {
|
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return true;
|
|
47
|
+
return c.name.startsWith('Cfn');
|
|
52
48
|
}
|
|
53
49
|
|
|
54
50
|
/**
|
|
@@ -86,10 +82,11 @@ export class CoreTypes {
|
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
/**
|
|
89
|
-
* Return true if the given interface type is a CFN class
|
|
85
|
+
* Return true if the given interface type is a CFN class, prop type or interface
|
|
90
86
|
*/
|
|
91
87
|
public static isCfnType(interfaceType: reflect.Type) {
|
|
92
88
|
return interfaceType.name.startsWith('Cfn')
|
|
89
|
+
|| /^I\w+Ref/.test(interfaceType.name)
|
|
93
90
|
|| (interfaceType.namespace && interfaceType.namespace.startsWith('Cfn'))
|
|
94
91
|
// aws_service.CfnTheResource.SubType
|
|
95
92
|
|| (interfaceType.namespace && interfaceType.namespace.split('.', 2).at(1)?.startsWith('Cfn'));
|
package/lib/rules/docs.js
CHANGED
|
@@ -82,6 +82,10 @@ exports.docsLinter.add({
|
|
|
82
82
|
if (isModuleExperimental(e.ctx.assembly)) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
+
if ((e.ctx.kind === 'type' && core_types_1.CoreTypes.isCfnType(e.ctx.documentable))
|
|
86
|
+
|| (e.ctx.kind === 'interface-property' && core_types_1.CoreTypes.isCfnType(e.ctx.containingType))) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
85
89
|
const sym = e.ctx.documentable;
|
|
86
90
|
e.assert(sym.docs.docs.stability !== spec_1.Stability.Experimental, e.ctx.errorKey);
|
|
87
91
|
},
|
|
@@ -114,4 +118,4 @@ function isModuleExperimental(assembly) {
|
|
|
114
118
|
function flatMap(array, callbackfn) {
|
|
115
119
|
return Array.prototype.concat(...array.map(callbackfn));
|
|
116
120
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBRXZDLDZDQUF5QztBQUN6QyxzQ0FBbUM7QUFZdEIsUUFBQSxVQUFVLEdBQUcsSUFBSSxlQUFNLENBQW9CLFFBQVEsQ0FBQyxFQUFFO0lBQ2pFLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVFLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BMLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwSyxDQUFDO1FBQ0YsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2xELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFB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S0FBbUIsRUFBRSxVQUFpRTtJQUMzRyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFiaWxpdHkgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG50eXBlIERvY3NMaW50ZXJDb250ZXh0ID0ge1xuICByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcmVhZG9ubHkgZXJyb3JLZXk6IHN0cmluZztcbn0gJiAoeyByZWFkb25seSBraW5kOiAndHlwZSc7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5UeXBlIH1cbnwgeyByZWFkb25seSBraW5kOiAnaW50ZXJmYWNlLXByb3BlcnR5JzsgY29udGFpbmluZ1R5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTsgZG9jdW1lbnRhYmxlOiByZWZsZWN0LlByb3BlcnR5IH1cbnwgeyByZWFkb25seSBraW5kOiAnY2xhc3MtcHJvcGVydHknOyBjb250YWluaW5nVHlwZTogcmVmbGVjdC5DbGFzc1R5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5Qcm9wZXJ0eSB9XG58IHsgcmVhZG9ubHkga2luZDogJ21ldGhvZCc7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LlJlZmVyZW5jZVR5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5NZXRob2QgfVxufCB7IHJlYWRvbmx5IGtpbmQ6ICdlbnVtLW1lbWJlcic7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LkVudW1UeXBlOyBkb2N1bWVudGFibGU6IHJlZmxlY3QuRW51bU1lbWJlciB9XG4pO1xuXG5leHBvcnQgY29uc3QgZG9jc0xpbnRlciA9IG5ldyBMaW50ZXI8RG9jc0xpbnRlckNvbnRleHQ+KGFzc2VtYmx5ID0+IHtcbiAgcmV0dXJuIFtcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmFsbENsYXNzZXMsIGNsYXNzVHlwZSA9PiBbXG4gICAgICB7IGFzc2VtYmx5LCBraW5kOiAndHlwZScsIGRvY3VtZW50YWJsZTogY2xhc3NUeXBlLCBlcnJvcktleTogY2xhc3NUeXBlLmZxbiB9LFxuICAgICAgLi4uY2xhc3NUeXBlLm93blByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnY2xhc3MtcHJvcGVydHknLCBjb250YWluaW5nVHlwZTogY2xhc3NUeXBlLCBkb2N1bWVudGFibGU6IHByb3BlcnR5LCBlcnJvcktleTogYCR7Y2xhc3NUeXBlLmZxbn0uJHtwcm9wZXJ0eS5uYW1lfWAgfSkpLFxuICAgICAgLi4uY2xhc3NUeXBlLm93bk1ldGhvZHMubWFwKG1ldGhvZCA9PiAoeyBhc3NlbWJseSwga2luZDogJ21ldGhvZCcsIGNvbnRhaW5pbmdUeXBlOiBjbGFzc1R5cGUsIGRvY3VtZW50YWJsZTogbWV0aG9kLCBlcnJvcktleTogYCR7Y2xhc3NUeXBlLmZxbn0uJHttZXRob2QubmFtZX1gIH0pKSxcbiAgICBdKSxcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmFsbEludGVyZmFjZXMsIGludGVyZmFjZVR5cGUgPT4gW1xuICAgICAgeyBhc3NlbWJseSwga2luZDogJ3R5cGUnLCBkb2N1bWVudGFibGU6IGludGVyZmFjZVR5cGUsIGVycm9yS2V5OiBpbnRlcmZhY2VUeXBlLmZxbiB9LFxuICAgICAgLi4uaW50ZXJmYWNlVHlwZS5vd25Qcm9wZXJ0aWVzLm1hcChwcm9wZXJ0eSA9PiAoeyBhc3NlbWJseSwga2luZDogJ2ludGVyZmFjZS1wcm9wZXJ0eScsIGNvbnRhaW5pbmdUeXBlOiBpbnRlcmZhY2VUeXBlLCBkb2N1bWVudGFibGU6IHByb3BlcnR5LCBlcnJvcktleTogYCR7aW50ZXJmYWNlVHlwZS5mcW59LiR7cHJvcGVydHkubmFtZX1gIH0pKSxcbiAgICAgIC4uLmludGVyZmFjZVR5cGUub3duTWV0aG9kcy5tYXAobWV0aG9kID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnbWV0aG9kJywgY29udGFpbmluZ1R5cGU6IGludGVyZmFjZVR5cGUsIGRvY3VtZW50YWJsZTogbWV0aG9kLCBlcnJvcktleTogYCR7aW50ZXJmYWNlVHlwZS5mcW59LiR7bWV0aG9kLm5hbWV9YCB9KSksXG4gICAgXSksXG4gICAgLi4uZmxhdE1hcChhc3NlbWJseS5hbGxFbnVtcywgZW51bVR5cGUgPT4gW1xuICAgICAgeyBhc3NlbWJseSwga2luZDogJ3R5cGUnLCBkb2N1bWVudGFibGU6IGVudW1UeXBlLCBlcnJvcktleTogZW51bVR5cGUuZnFuIH0sXG4gICAgICAuLi5lbnVtVHlwZS5tZW1iZXJzLm1hcChtZW1iZXIgPT4gKHsgYXNzZW1ibHksIGtpbmQ6ICdlbnVtLW1lbWJlcicsIGNvbnRhaW5pbmdUeXBlOiBlbnVtVHlwZSwgZG9jdW1lbnRhYmxlOiBtZW1iZXIsIGVycm9yS2V5OiBgJHtlbnVtVHlwZS5mcW59LiR7bWVtYmVyLm5hbWV9YCB9KSksXG4gICAgXSksXG4gIF0gYXMgRG9jc0xpbnRlckNvbnRleHRbXTtcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdkb2NzLXB1YmxpYy1hcGlzJyxcbiAgbWVzc2FnZTogJ1B1YmxpYyBBUEkgZWxlbWVudCBtdXN0IGhhdmUgYSBkb2NzdHJpbmcnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWlzUHVibGljKGUuY3R4KSkgeyByZXR1cm47IH1cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChpc0NmblR5cGUoZS5jdHgpKSB7IHJldHVybjsgfVxuXG4gICAgaWYgKCFlLmN0eC5kb2N1bWVudGFibGUuZG9jcy5zdW1tYXJ5KSB7XG4gICAgICBlLmFzc2VydChlLmN0eC5kb2N1bWVudGFibGUuZG9jcy5zdW1tYXJ5LCBlLmN0eC5lcnJvcktleSk7XG4gICAgfVxuICB9LFxufSk7XG5cbmRvY3NMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLWRlZmF1bHQtZG9jJyxcbiAgbWVzc2FnZTogJ09wdGlvbmFsIHByb3BlcnR5IG11c3QgaGF2ZSBAZGVmYXVsdCBkb2N1bWVudGF0aW9uJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKGUuY3R4LmtpbmQgIT09ICdpbnRlcmZhY2UtcHJvcGVydHknKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguY29udGFpbmluZ1R5cGUuaXNEYXRhVHlwZSgpKSB7IHJldHVybjsgfVxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblR5cGUoZS5jdHguY29udGFpbmluZ1R5cGUpIHx8IENvcmVUeXBlcy5pc0Nmbk5lc3RlZFR5cGUoZS5jdHguY29udGFpbmluZ1R5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydHkgPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQoIXByb3BlcnR5Lm9wdGlvbmFsIHx8IHByb3BlcnR5LmRvY3MuZG9jcy5kZWZhdWx0ICE9PSB1bmRlZmluZWQsIGUuY3R4LmVycm9yS2V5KTtcbiAgfSxcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby11bmRlZmluZWQtZGVmYXVsdCcsXG4gIG1lc3NhZ2U6ICdcXCdAZGVmYXVsdCB1bmRlZmluZWRcXCcgaXMgbm90IGhlbHBmdWwuIFVzZXJzIHdpbGwga25vdyB0aGUgVkFMVUUgaXMgbGl0ZXJhbGx5IFxcJ3VuZGVmaW5lZFxcJyBpZiB0aGV5IGRvblxcJ3Qgc3BlY2lmeSBpdCwgYnV0IHdoYXQgaXMgdGhlIEJFSEFWSU9SIGlmIHRoZXkgZG8gc28/JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKGUuY3R4LmtpbmQgIT09ICdpbnRlcmZhY2UtcHJvcGVydHknKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguY29udGFpbmluZ1R5cGUuaXNEYXRhVHlwZSgpKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcHJvcGVydHkgPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQocHJvcGVydHkuZG9jcy5kb2NzLmRlZmF1bHQgIT09ICd1bmRlZmluZWQnLCBlLmN0eC5lcnJvcktleSk7XG4gIH0sXG59KTtcblxuZG9jc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnbm8tZXhwZXJpbWVudGFsLWFwaXMnLFxuICBtZXNzYWdlOiAnVGhlIHVzZSBvZiBAZXhwZXJpbWVudGFsIGluIG5vdCBhbGxvd2VkJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFpc1B1YmxpYyhlLmN0eCkpIHsgcmV0dXJuOyB9XG4gICAgLy8gdGVjaG5pY2FsbHkgd2Ugc2hvdWxkIGJhbiB0aGUgdXNlIG9mIEBleHBlcmltZW50YWwgaW4gdGhlIGNvZGViYXNlLiBTaW5jZSBqc2lpIG1hcmtzIGFsbCBzeW1ib2xzXG4gICAgLy8gb2YgZXhwZXJpbWVudGFsIG1vZHVsZXMgYXMgZXhwZXJpbWVudGFsIHdlIGNhbid0LlxuICAgIGlmIChpc01vZHVsZUV4cGVyaW1lbnRhbChlLmN0eC5hc3NlbWJseSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3ltID0gZS5jdHguZG9jdW1lbnRhYmxlO1xuICAgIGUuYXNzZXJ0KHN5bS5kb2NzLmRvY3Muc3RhYmlsaXR5ICE9PSBTdGFiaWxpdHkuRXhwZXJpbWVudGFsLCBlLmN0eC5lcnJvcktleSk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gaXNQdWJsaWMoY3R4OiBEb2NzTGludGVyQ29udGV4dCkge1xuICBzd2l0Y2ggKGN0eC5raW5kKSB7XG4gICAgY2FzZSAnY2xhc3MtcHJvcGVydHknOlxuICAgIGNhc2UgJ2ludGVyZmFjZS1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnbWV0aG9kJzpcbiAgICAgIHJldHVybiAhY3R4LmRvY3VtZW50YWJsZS5wcm90ZWN0ZWQ7XG5cbiAgICBjYXNlICdlbnVtLW1lbWJlcic6XG4gICAgY2FzZSAndHlwZSc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NmblR5cGUoY3R4OiBEb2NzTGludGVyQ29udGV4dCkge1xuICBzd2l0Y2ggKGN0eC5raW5kKSB7XG4gICAgY2FzZSAnY2xhc3MtcHJvcGVydHknOlxuICAgIGNhc2UgJ2ludGVyZmFjZS1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnbWV0aG9kJzpcbiAgICBjYXNlICdlbnVtLW1lbWJlcic6XG4gICAgICByZXR1cm4gQ29yZVR5cGVzLmlzQ2ZuVHlwZShjdHguY29udGFpbmluZ1R5cGUpO1xuXG4gICAgY2FzZSAndHlwZSc6XG4gICAgICByZXR1cm4gQ29yZVR5cGVzLmlzQ2ZuVHlwZShjdHguZG9jdW1lbnRhYmxlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc01vZHVsZUV4cGVyaW1lbnRhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICByZXR1cm4gYXNzZW1ibHkuc3BlYy5kb2NzPy5zdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWw7XG59XG5cbmZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oYXJyYXk6IHJlYWRvbmx5IFRbXSwgY2FsbGJhY2tmbjogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBVW10pOiBVW10ge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5hcnJheS5tYXAoY2FsbGJhY2tmbikpO1xufVxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBRXZDLDZDQUF5QztBQUN6QyxzQ0FBbUM7QUFZdEIsUUFBQSxVQUFVLEdBQUcsSUFBSSxlQUFNLENBQW9CLFFBQVEsQ0FBQyxFQUFFO0lBQ2pFLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVFLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BMLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwSyxDQUFDO1FBQ0YsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2xELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFB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QyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFakQsS0FBSyxNQUFNO1lBQ1QsT0FBTyxzQkFBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFFBQTBCO0lBQ3RELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxLQUFLLGdCQUFTLENBQUMsWUFBWSxDQUFDO0FBQ2xFLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBTyxLQUFtQixFQUFFLFVBQWlFO0lBQzNHLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWJpbGl0eSB9IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbnR5cGUgRG9jc0xpbnRlckNvbnRleHQgPSB7XG4gIHJlYWRvbmx5IGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5O1xuICByZWFkb25seSBlcnJvcktleTogc3RyaW5nO1xufSAmICh7IHJlYWRvbmx5IGtpbmQ6ICd0eXBlJzsgZG9jdW1lbnRhYmxlOiByZWZsZWN0LlR5cGUgfVxufCB7IHJlYWRvbmx5IGtpbmQ6ICdpbnRlcmZhY2UtcHJvcGVydHknOyBjb250YWluaW5nVHlwZTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlOyBkb2N1bWVudGFibGU6IHJlZmxlY3QuUHJvcGVydHkgfVxufCB7IHJlYWRvbmx5IGtpbmQ6ICdjbGFzcy1wcm9wZXJ0eSc7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LkNsYXNzVHlwZTsgZG9jdW1lbnRhYmxlOiByZWZsZWN0LlByb3BlcnR5IH1cbnwgeyByZWFkb25seSBraW5kOiAnbWV0aG9kJzsgY29udGFpbmluZ1R5cGU6IHJlZmxlY3QuUmVmZXJlbmNlVHlwZTsgZG9jdW1lbnRhYmxlOiByZWZsZWN0Lk1ldGhvZCB9XG58IHsgcmVhZG9ubHkga2luZDogJ2VudW0tbWVtYmVyJzsgY29udGFpbmluZ1R5cGU6IHJlZmxlY3QuRW51bVR5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5FbnVtTWVtYmVyIH1cbik7XG5cbmV4cG9ydCBjb25zdCBkb2NzTGludGVyID0gbmV3IExpbnRlcjxEb2NzTGludGVyQ29udGV4dD4oYXNzZW1ibHkgPT4ge1xuICByZXR1cm4gW1xuICAgIC4uLmZsYXRNYXAoYXNzZW1ibHkuYWxsQ2xhc3NlcywgY2xhc3NUeXBlID0+IFtcbiAgICAgIHsgYXNzZW1ibHksIGtpbmQ6ICd0eXBlJywgZG9jdW1lbnRhYmxlOiBjbGFzc1R5cGUsIGVycm9yS2V5OiBjbGFzc1R5cGUuZnFuIH0sXG4gICAgICAuLi5jbGFzc1R5cGUub3duUHJvcGVydGllcy5tYXAocHJvcGVydHkgPT4gKHsgYXNzZW1ibHksIGtpbmQ6ICdjbGFzcy1wcm9wZXJ0eScsIGNvbnRhaW5pbmdUeXBlOiBjbGFzc1R5cGUsIGRvY3VtZW50YWJsZTogcHJvcGVydHksIGVycm9yS2V5OiBgJHtjbGFzc1R5cGUuZnFufS4ke3Byb3BlcnR5Lm5hbWV9YCB9KSksXG4gICAgICAuLi5jbGFzc1R5cGUub3duTWV0aG9kcy5tYXAobWV0aG9kID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnbWV0aG9kJywgY29udGFpbmluZ1R5cGU6IGNsYXNzVHlwZSwgZG9jdW1lbnRhYmxlOiBtZXRob2QsIGVycm9yS2V5OiBgJHtjbGFzc1R5cGUuZnFufS4ke21ldGhvZC5uYW1lfWAgfSkpLFxuICAgIF0pLFxuICAgIC4uLmZsYXRNYXAoYXNzZW1ibHkuYWxsSW50ZXJmYWNlcywgaW50ZXJmYWNlVHlwZSA9PiBbXG4gICAgICB7IGFzc2VtYmx5LCBraW5kOiAndHlwZScsIGRvY3VtZW50YWJsZTogaW50ZXJmYWNlVHlwZSwgZXJyb3JLZXk6IGludGVyZmFjZVR5cGUuZnFuIH0sXG4gICAgICAuLi5pbnRlcmZhY2VUeXBlLm93blByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnaW50ZXJmYWNlLXByb3BlcnR5JywgY29udGFpbmluZ1R5cGU6IGludGVyZmFjZVR5cGUsIGRvY3VtZW50YWJsZTogcHJvcGVydHksIGVycm9yS2V5OiBgJHtpbnRlcmZhY2VUeXBlLmZxbn0uJHtwcm9wZXJ0eS5uYW1lfWAgfSkpLFxuICAgICAgLi4uaW50ZXJmYWNlVHlwZS5vd25NZXRob2RzLm1hcChtZXRob2QgPT4gKHsgYXNzZW1ibHksIGtpbmQ6ICdtZXRob2QnLCBjb250YWluaW5nVHlwZTogaW50ZXJmYWNlVHlwZSwgZG9jdW1lbnRhYmxlOiBtZXRob2QsIGVycm9yS2V5OiBgJHtpbnRlcmZhY2VUeXBlLmZxbn0uJHttZXRob2QubmFtZX1gIH0pKSxcbiAgICBdKSxcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmFsbEVudW1zLCBlbnVtVHlwZSA9PiBbXG4gICAgICB7IGFzc2VtYmx5LCBraW5kOiAndHlwZScsIGRvY3VtZW50YWJsZTogZW51bVR5cGUsIGVycm9yS2V5OiBlbnVtVHlwZS5mcW4gfSxcbiAgICAgIC4uLmVudW1UeXBlLm1lbWJlcnMubWFwKG1lbWJlciA9PiAoeyBhc3NlbWJseSwga2luZDogJ2VudW0tbWVtYmVyJywgY29udGFpbmluZ1R5cGU6IGVudW1UeXBlLCBkb2N1bWVudGFibGU6IG1lbWJlciwgZXJyb3JLZXk6IGAke2VudW1UeXBlLmZxbn0uJHttZW1iZXIubmFtZX1gIH0pKSxcbiAgICBdKSxcbiAgXSBhcyBEb2NzTGludGVyQ29udGV4dFtdO1xufSk7XG5cbmRvY3NMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2RvY3MtcHVibGljLWFwaXMnLFxuICBtZXNzYWdlOiAnUHVibGljIEFQSSBlbGVtZW50IG11c3QgaGF2ZSBhIGRvY3N0cmluZycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghaXNQdWJsaWMoZS5jdHgpKSB7IHJldHVybjsgfVxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKGlzQ2ZuVHlwZShlLmN0eCkpIHsgcmV0dXJuOyB9XG5cbiAgICBpZiAoIWUuY3R4LmRvY3VtZW50YWJsZS5kb2NzLnN1bW1hcnkpIHtcbiAgICAgIGUuYXNzZXJ0KGUuY3R4LmRvY3VtZW50YWJsZS5kb2NzLnN1bW1hcnksIGUuY3R4LmVycm9yS2V5KTtcbiAgICB9XG4gIH0sXG59KTtcblxuZG9jc0xpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtZGVmYXVsdC1kb2MnLFxuICBtZXNzYWdlOiAnT3B0aW9uYWwgcHJvcGVydHkgbXVzdCBoYXZlIEBkZWZhdWx0IGRvY3VtZW50YXRpb24nLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoZS5jdHgua2luZCAhPT0gJ2ludGVyZmFjZS1wcm9wZXJ0eScpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5jb250YWluaW5nVHlwZS5pc0RhdGFUeXBlKCkpIHsgcmV0dXJuOyB9XG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuVHlwZShlLmN0eC5jb250YWluaW5nVHlwZSkgfHwgQ29yZVR5cGVzLmlzQ2ZuTmVzdGVkVHlwZShlLmN0eC5jb250YWluaW5nVHlwZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0eSA9IGUuY3R4LmRvY3VtZW50YWJsZTtcbiAgICBlLmFzc2VydCghcHJvcGVydHkub3B0aW9uYWwgfHwgcHJvcGVydHkuZG9jcy5kb2NzLmRlZmF1bHQgIT09IHVuZGVmaW5lZCwgZS5jdHguZXJyb3JLZXkpO1xuICB9LFxufSk7XG5cbmRvY3NMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLW5vLXVuZGVmaW5lZC1kZWZhdWx0JyxcbiAgbWVzc2FnZTogJ1xcJ0BkZWZhdWx0IHVuZGVmaW5lZFxcJyBpcyBub3QgaGVscGZ1bC4gVXNlcnMgd2lsbCBrbm93IHRoZSBWQUxVRSBpcyBsaXRlcmFsbHkgXFwndW5kZWZpbmVkXFwnIGlmIHRoZXkgZG9uXFwndCBzcGVjaWZ5IGl0LCBidXQgd2hhdCBpcyB0aGUgQkVIQVZJT1IgaWYgdGhleSBkbyBzbz8nLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoZS5jdHgua2luZCAhPT0gJ2ludGVyZmFjZS1wcm9wZXJ0eScpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5jb250YWluaW5nVHlwZS5pc0RhdGFUeXBlKCkpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCBwcm9wZXJ0eSA9IGUuY3R4LmRvY3VtZW50YWJsZTtcbiAgICBlLmFzc2VydChwcm9wZXJ0eS5kb2NzLmRvY3MuZGVmYXVsdCAhPT0gJ3VuZGVmaW5lZCcsIGUuY3R4LmVycm9yS2V5KTtcbiAgfSxcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICduby1leHBlcmltZW50YWwtYXBpcycsXG4gIG1lc3NhZ2U6ICdUaGUgdXNlIG9mIEBleHBlcmltZW50YWwgaW4gbm90IGFsbG93ZWQnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWlzUHVibGljKGUuY3R4KSkgeyByZXR1cm47IH1cbiAgICAvLyB0ZWNobmljYWxseSB3ZSBzaG91bGQgYmFuIHRoZSB1c2Ugb2YgQGV4cGVyaW1lbnRhbCBpbiB0aGUgY29kZWJhc2UuIFNpbmNlIGpzaWkgbWFya3MgYWxsIHN5bWJvbHNcbiAgICAvLyBvZiBleHBlcmltZW50YWwgbW9kdWxlcyBhcyBleHBlcmltZW50YWwgd2UgY2FuJ3QuXG4gICAgaWYgKGlzTW9kdWxlRXhwZXJpbWVudGFsKGUuY3R4LmFzc2VtYmx5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoKGUuY3R4LmtpbmQgPT09ICd0eXBlJyAmJiBDb3JlVHlwZXMuaXNDZm5UeXBlKGUuY3R4LmRvY3VtZW50YWJsZSkpXG4gICAgfHwgKGUuY3R4LmtpbmQgPT09ICdpbnRlcmZhY2UtcHJvcGVydHknICYmIENvcmVUeXBlcy5pc0NmblR5cGUoZS5jdHguY29udGFpbmluZ1R5cGUpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzeW0gPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQoc3ltLmRvY3MuZG9jcy5zdGFiaWxpdHkgIT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWwsIGUuY3R4LmVycm9yS2V5KTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBpc1B1YmxpYyhjdHg6IERvY3NMaW50ZXJDb250ZXh0KSB7XG4gIHN3aXRjaCAoY3R4LmtpbmQpIHtcbiAgICBjYXNlICdjbGFzcy1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnaW50ZXJmYWNlLXByb3BlcnR5JzpcbiAgICBjYXNlICdtZXRob2QnOlxuICAgICAgcmV0dXJuICFjdHguZG9jdW1lbnRhYmxlLnByb3RlY3RlZDtcblxuICAgIGNhc2UgJ2VudW0tbWVtYmVyJzpcbiAgICBjYXNlICd0eXBlJzpcbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQ2ZuVHlwZShjdHg6IERvY3NMaW50ZXJDb250ZXh0KSB7XG4gIHN3aXRjaCAoY3R4LmtpbmQpIHtcbiAgICBjYXNlICdjbGFzcy1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnaW50ZXJmYWNlLXByb3BlcnR5JzpcbiAgICBjYXNlICdtZXRob2QnOlxuICAgIGNhc2UgJ2VudW0tbWVtYmVyJzpcbiAgICAgIHJldHVybiBDb3JlVHlwZXMuaXNDZm5UeXBlKGN0eC5jb250YWluaW5nVHlwZSk7XG5cbiAgICBjYXNlICd0eXBlJzpcbiAgICAgIHJldHVybiBDb3JlVHlwZXMuaXNDZm5UeXBlKGN0eC5kb2N1bWVudGFibGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzTW9kdWxlRXhwZXJpbWVudGFsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gIHJldHVybiBhc3NlbWJseS5zcGVjLmRvY3M/LnN0YWJpbGl0eSA9PT0gU3RhYmlsaXR5LkV4cGVyaW1lbnRhbDtcbn1cblxuZnVuY3Rpb24gZmxhdE1hcDxULCBVPihhcnJheTogcmVhZG9ubHkgVFtdLCBjYWxsYmFja2ZuOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IFVbXSk6IFVbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0KC4uLmFycmF5Lm1hcChjYWxsYmFja2ZuKSk7XG59XG4iXX0=
|
package/lib/rules/docs.ts
CHANGED
|
@@ -84,6 +84,10 @@ docsLinter.add({
|
|
|
84
84
|
if (isModuleExperimental(e.ctx.assembly)) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
+
if ((e.ctx.kind === 'type' && CoreTypes.isCfnType(e.ctx.documentable))
|
|
88
|
+
|| (e.ctx.kind === 'interface-property' && CoreTypes.isCfnType(e.ctx.containingType))) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
87
91
|
const sym = e.ctx.documentable;
|
|
88
92
|
e.assert(sym.docs.docs.stability !== Stability.Experimental, e.ctx.errorKey);
|
|
89
93
|
},
|
package/lib/rules/resource.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ export declare class ResourceReflection {
|
|
|
31
31
|
private findPhysicalNameProp;
|
|
32
32
|
/**
|
|
33
33
|
* Attribute properties are all the properties that begin with the type name (e.g. bucketXxx).
|
|
34
|
+
*
|
|
35
|
+
* We are adding a `bucketRef` property as well that we don't necessarily want to hold to the same linter
|
|
36
|
+
* rules as the other attributes, so we don't consider it an attribute.
|
|
34
37
|
*/
|
|
35
38
|
private findAttributeProperties;
|
|
36
39
|
}
|
package/lib/rules/resource.js
CHANGED
|
@@ -54,6 +54,9 @@ class ResourceReflection {
|
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Attribute properties are all the properties that begin with the type name (e.g. bucketXxx).
|
|
57
|
+
*
|
|
58
|
+
* We are adding a `bucketRef` property as well that we don't necessarily want to hold to the same linter
|
|
59
|
+
* rules as the other attributes, so we don't consider it an attribute.
|
|
57
60
|
*/
|
|
58
61
|
findAttributeProperties() {
|
|
59
62
|
const result = new Array();
|
|
@@ -61,6 +64,9 @@ class ResourceReflection {
|
|
|
61
64
|
if (p.protected) {
|
|
62
65
|
continue; // skip any protected properties
|
|
63
66
|
}
|
|
67
|
+
if (p.name.endsWith('Ref')) {
|
|
68
|
+
continue; // skip any "Ref" properties, these are not attributes
|
|
69
|
+
}
|
|
64
70
|
const basename = (0, case_1.camelize)(this.cfn.basename);
|
|
65
71
|
// an attribute property is a property which starts with the type name
|
|
66
72
|
// (e.g. "bucketXxx") and/or has an @attribute doc tag.
|
|
@@ -255,4 +261,4 @@ function guessResourceName(fqn) {
|
|
|
255
261
|
}
|
|
256
262
|
return `${org}::${ns}::${rs}`;
|
|
257
263
|
}
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBdUQ7QUFDdkQsMkNBQWtEO0FBQ2xELDZDQUF5QztBQUN6QyxpQ0FBbUM7QUFDbkMsa0NBQThDO0FBQzlDLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsNkJBQWIsYUFBYSxRQUd4QjtBQUVELE1BQWEsa0JBQWtCO0lBRTdCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUEwQjtRQUM5QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7UUFDekMsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLFVBQVU7YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksK0JBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFZRCxZQUE0QixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFaEMsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxHQUFHLElBQUk7Z0JBQzlELE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUM7Z0JBQzlFLG9IQUFvSCxDQUFDLENBQUM7UUFDMUgsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxzQkFBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUEsZUFBUSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakQsdUdBQXVHO1FBQ3ZHLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksTUFBTSxDQUFDO1FBQzlGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUI7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQUV0QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNoQixTQUFTLENBQUMsZ0NBQWdDO1lBQzVDLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGVBQVEsRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTdDLHNFQUFzRTtZQUN0RSx1REFBdUQ7WUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBQSxnQkFBUyxFQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDekMsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLGlCQUFpQixDQUFDO1lBQ3RCLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsb0VBQW9FO2dCQUNwRSwyRUFBMkU7Z0JBQzNFLG1FQUFtRTtnQkFDbkUsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sd0VBQXdFO2dCQUN4RSxpQ0FBaUM7Z0JBRWpDLE1BQU0sSUFBSSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzNDLDhFQUE4RTtvQkFDOUUsd0JBQXdCO29CQUN4QixpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QixDQUFDO3FCQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsOENBQThDO29CQUM5QyxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDakUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHlFQUF5RTtvQkFDekUsMkVBQTJFO29CQUMzRSw4RkFBOEY7b0JBQzlGLFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFFRCxtRUFBbUU7WUFDbkUsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUVuRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLElBQUk7Z0JBQ0osaUJBQWlCO2dCQUNqQixRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQW5IRCxnREFtSEM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLElBQXNCO0lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDNUYsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLElBQUkscUJBQXFCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsc0JBQWMsQ0FBQyxHQUFHLENBQUM7SUFDakIsSUFBSSxFQUFFLGlDQUFpQztJQUN2QyxPQUFPLEVBQUUsb0VBQW9FO0lBQzdFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsc0JBQWMsQ0FBQyxHQUFHLENBQUM7SUFDakIsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSwrQ0FBK0M7SUFDeEQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILHNCQUFjLENBQUMsR0FBRyxDQUFDO0lBQ2pCLElBQUksRUFBRSxxQ0FBcUM7SUFDM0MsT0FBTyxFQUFFLGlFQUFpRTtJQUMxRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztRQUN4RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRW5DLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDN0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFO0FBRUYsc0JBQWMsQ0FBQyxHQUFHLENBQUM7SUFDakIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsT0FBTyxFQUFFLDhCQUE4QixnQkFBZ0IsRUFBRTtJQUN6RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUvRCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWxHLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUU7Z0JBQzdCLE9BQU8sRUFBRSxlQUFlO2FBQ3pCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsc0JBQWMsQ0FBQyxHQUFHLENBQUM7SUFDakIsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixPQUFPLEVBQUUseUVBQXlFO1FBQ2hGLDhEQUE4RDtJQUNoRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILHNCQUFjLENBQUMsR0FBRyxDQUFDO0lBQ2pCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLGdFQUFnRTtJQUN6RSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNwQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMscUJBQXFCLENBQUMsYUFBZ0M7SUFDN0QsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUVqQyxzREFBc0Q7SUFDdEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sb0NBQXFCLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxHQUFHLEdBQUcsb0NBQXFCLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFXO0lBQ3BDLDREQUE0RDtJQUM1RCxJQUFJLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUU5QixLQUFLLEdBQUcsd0RBQXdELENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5GLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLGFBQWE7UUFDYixLQUFLLEdBQUcsMkRBQTJELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDOUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL2Nmbi1yZXNvdXJjZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RSZWZsZWN0aW9uIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IGdldERvY1RhZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBjYW1lbGl6ZSwgcGFzY2FsaXplIH0gZnJvbSAnLi4vY2FzZSc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5jb25zdCBHUkFOVF9SRVNVTFRfRlFOID0gJ0Bhd3MtY2RrL2F3cy1pYW0uR3JhbnQnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIHNpdGU6IEF0dHJpYnV0ZVNpdGU7XG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5O1xuICBjZm5BdHRyaWJ1dGVOYW1lczogc3RyaW5nW107IC8vIGJ1Y2tldEFyblxufVxuXG5leHBvcnQgZW51bSBBdHRyaWJ1dGVTaXRlIHtcbiAgSW50ZXJmYWNlID0gJ2ludGVyZmFjZScsXG4gIENsYXNzID0gJ2NsYXNzJyxcbn1cblxuZXhwb3J0IGNsYXNzIFJlc291cmNlUmVmbGVjdGlvbiB7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCByZXNvdXJjZSBjb25zdHJ1Y3RzIChldmVyeXRoaW5nIHRoYXQgZXh0ZW5kcyBgY2RrLlJlc291cmNlYClcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIGlmIChDb3JlVHlwZXMuaGFzQ29yZU1vZHVsZShhc3NlbWJseSkpIHtcbiAgICAgIHJldHVybiBbXTsgLy8gbm90IHBhcnQgb2YgdGhlIGRlcCBzdGFja1xuICAgIH1cblxuICAgIHJldHVybiBhc3NlbWJseS5hbGxDbGFzc2VzXG4gICAgICAuZmlsdGVyKGMgPT4gQ29yZVR5cGVzLmlzQ29uc3RydWN0Q2xhc3MoYykgJiYgQ29yZVR5cGVzLmlzUmVzb3VyY2VDbGFzcyhjKSlcbiAgICAgIC5tYXAoYyA9PiBuZXcgUmVzb3VyY2VSZWZsZWN0aW9uKG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGMpKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlczogQXR0cmlidXRlW107IC8vIGFjdHVhbCBhdHRyaWJ1dGUgcHJvcHNcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nOyAvLyBleHBlY3RlZCBmcW4gb2YgcmVzb3VyY2UgY2xhc3NcblxuICBwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHk7XG4gIHB1YmxpYyByZWFkb25seSBzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbTtcbiAgcHVibGljIHJlYWRvbmx5IGNmbjogQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZW5hbWU6IHN0cmluZzsgLy8gaS5lLiBCdWNrZXRcbiAgcHVibGljIHJlYWRvbmx5IGNvcmU6IENvcmVUeXBlcztcbiAgcHVibGljIHJlYWRvbmx5IHBoeXNpY2FsTmFtZVByb3A/OiByZWZsZWN0LlByb3BlcnR5O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb25zdHJ1Y3Q6IENvbnN0cnVjdFJlZmxlY3Rpb24pIHtcbiAgICB0aGlzLmFzc2VtYmx5ID0gY29uc3RydWN0LmNsYXNzVHlwZS5hc3NlbWJseTtcbiAgICB0aGlzLnN5cyA9IHRoaXMuYXNzZW1ibHkuc3lzdGVtO1xuXG4gICAgY29uc3QgY2ZuID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGNvbnN0cnVjdC5jbGFzc1R5cGUpO1xuICAgIGlmICghY2ZuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIEwxIGNsYXNzIGZvciBMMiAke2NvbnN0cnVjdC5mcW59LiBgICtcbiAgICAgICAgYElzIFwiJHtndWVzc1Jlc291cmNlTmFtZShjb25zdHJ1Y3QuZnFuKX1cIiBhbiBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UuIGAgK1xuICAgICAgICAnSWYgbm90LCB1c2UgdGhlIFwiQHJlc291cmNlXCIgZG9jIHRhZyB0byBpbmRpY2F0ZSB0aGUgZnVsbCByZXNvdXJjZSBuYW1lIChlLmcuIFwiQHJlc291cmNlIEFXUzo6Um91dGU1Mzo6SG9zdGVkWm9uZVwiKScpO1xuICAgIH1cblxuICAgIHRoaXMuY29yZSA9IG5ldyBDb3JlVHlwZXModGhpcy5zeXMpO1xuICAgIHRoaXMuY2ZuID0gY2ZuO1xuICAgIHRoaXMuYmFzZW5hbWUgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLm5hbWU7XG4gICAgdGhpcy5mcW4gPSBjb25zdHJ1Y3QuZnFuO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHRoaXMuZmluZEF0dHJpYnV0ZVByb3BlcnRpZXMoKTtcbiAgICB0aGlzLnBoeXNpY2FsTmFtZVByb3AgPSB0aGlzLmZpbmRQaHlzaWNhbE5hbWVQcm9wKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRQaHlzaWNhbE5hbWVQcm9wKCkge1xuICAgIGlmICghdGhpcy5jb25zdHJ1Y3QucHJvcHNUeXBlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGNhbWVsaXplKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgIC8vIGlmIHJlc291cmNlIG5hbWUgZW5kcyB3aXRoIFwiTmFtZVwiIChlLmcuIERvbWFpbk5hbWUsIHRoZW4ganVzdCB1c2UgaXQgYXMtaXMsIG90aGVyd2lzZSBhcHBlbmQgXCJOYW1lXCIpXG4gICAgY29uc3QgcGh5c2ljYWxOYW1lUHJvcCA9IHJlc291cmNlTmFtZS5lbmRzV2l0aCgnTmFtZScpID8gcmVzb3VyY2VOYW1lIDogYCR7cmVzb3VyY2VOYW1lfU5hbWVgO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5maW5kKHggPT4geC5uYW1lID09PSBwaHlzaWNhbE5hbWVQcm9wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcHJvcGVydGllcyBhcmUgYWxsIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgdHlwZSBuYW1lIChlLmcuIGJ1Y2tldFh4eCkuXG4gICAqL1xuICBwcml2YXRlIGZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlPigpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHRoaXMuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IHByb3RlY3RlZCBwcm9wZXJ0aWVzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VuYW1lID0gY2FtZWxpemUodGhpcy5jZm4uYmFzZW5hbWUpO1xuXG4gICAgICAvLyBhbiBhdHRyaWJ1dGUgcHJvcGVydHkgaXMgYSBwcm9wZXJ0eSB3aGljaCBzdGFydHMgd2l0aCB0aGUgdHlwZSBuYW1lXG4gICAgICAvLyAoZS5nLiBcImJ1Y2tldFh4eFwiKSBhbmQvb3IgaGFzIGFuIEBhdHRyaWJ1dGUgZG9jIHRhZy5cbiAgICAgIGNvbnN0IHRhZyA9IGdldERvY1RhZyhwLCAnYXR0cmlidXRlJyk7XG4gICAgICBpZiAoIXAubmFtZS5zdGFydHNXaXRoKGJhc2VuYW1lKSAmJiAhdGFnKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgY2ZuQXR0cmlidXRlTmFtZXM7XG4gICAgICBpZiAodGFnICYmIHRhZyAhPT0gJ3RydWUnKSB7XG4gICAgICAgIC8vIGlmIHRoZXJlJ3MgYW4gYEBhdHRyaWJ1dGVgIGRvYyB0YWcgd2l0aCBhIHZhbHVlIG90aGVyIHRoYW4gXCJ0cnVlXCJcbiAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIENGTiBhdHRyaWJ1dGUgbmFtZSBpbnN0ZWFkIG9mIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgICAgIC8vIG11bHRpcGxlIGF0dHJpYnV0ZSBuYW1lcyBjYW4gYmUgbGlzdGVkIGFzIGEgY29tbWEtZGVsaW1pdGVkIGxpc3RcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSB0YWcuc3BsaXQoJywnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG9rYXksIHdlIGRvbid0IGhhdmUgYW4gZXhwbGljaXQgQ0ZOIGF0dHJpYnV0ZSBuYW1lLCBzbyB3ZSdsbCBndWVzcyBpdFxuICAgICAgICAvLyBmcm9tIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cblxuICAgICAgICBjb25zdCBuYW1lID0gcGFzY2FsaXplKHAubmFtZSk7XG4gICAgICAgIGlmICh0aGlzLmNmbi5hdHRyaWJ1dGVOYW1lcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogdGhlcmUgaXMgYSBjbG91ZGZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIGluIHRoZSBhdHRyaWJ1dGUgbmFtZVxuICAgICAgICAgIC8vIGZvciBleGFtcGxlICdSb2xlSWQnLlxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWVdO1xuICAgICAgICB9IGVsc2UgaWYgKHAubmFtZS5zdGFydHNXaXRoKGJhc2VuYW1lKSkge1xuICAgICAgICAgIC8vIGJlZ2lucyB3aXRoIHRoZSByZXNvdXJjZSBuYW1lLCBqdXN0IHRyaW0gaXRcbiAgICAgICAgICBjZm5BdHRyaWJ1dGVOYW1lcyA9IFtuYW1lLnN1YnN0cmluZyh0aGlzLmNmbi5iYXNlbmFtZS5sZW5ndGgpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB3ZSBjb3VsZG4ndCBkZXRlcm1pbmUgQ0ZOIGF0dHJpYnV0ZSBuYW1lLCBzbyB3ZSBkb24ndCBhY2NvdW50IGZvciB0aGlzXG4gICAgICAgICAgLy8gYXMgYW4gYXR0cmlidXRlLiB0aGlzIGNvdWxkIGJlLCBmb3IgZXhhbXBsZSwgd2hlbiBhIGNvbnN0cnVjdCBpbXBsZW1lbnRzXG4gICAgICAgICAgLy8gYW4gaW50ZXJmYWNlIHRoYXQgcmVwcmVzZW50cyBhbm90aGVyIHJlc291cmNlIChlLmcuIGBsYW1iZGEuQWxpYXNgIGltcGxlbWVudHMgYElGdW5jdGlvbmApLlxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGlzIGRlZmluZWQgb24gYW4gaW50ZXJmYWNlIG9yIG9uIGEgY2xhc3NcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gZmluZERlY2xhcmF0aW9uU2l0ZShwKTtcbiAgICAgIGNvbnN0IHNpdGUgPSBwcm9wZXJ0eS5wYXJlbnRUeXBlLmlzSW50ZXJmYWNlVHlwZSgpID8gQXR0cmlidXRlU2l0ZS5JbnRlcmZhY2UgOiBBdHRyaWJ1dGVTaXRlLkNsYXNzO1xuXG4gICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgIHNpdGUsXG4gICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzLFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZERlY2xhcmF0aW9uU2l0ZShwcm9wOiByZWZsZWN0LlByb3BlcnR5KTogcmVmbGVjdC5Qcm9wZXJ0eSB7XG4gIGlmICghcHJvcC5vdmVycmlkZXMgfHwgKCFwcm9wLm92ZXJyaWRlcy5pc0NsYXNzVHlwZSgpICYmICFwcm9wLm92ZXJyaWRlcy5pc0ludGVyZmFjZVR5cGUoKSkpIHtcbiAgICBpZiAoIXByb3AucGFyZW50VHlwZS5pc0NsYXNzVHlwZSgpICYmICFwcm9wLnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwYXJlbnQgdHlwZScpO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcDtcbiAgfVxuXG4gIGNvbnN0IG92ZXJyaWRlc1Byb3AgPSBwcm9wLm92ZXJyaWRlcy5hbGxQcm9wZXJ0aWVzLmZpbmQocCA9PiBwLm5hbWUgPT09IHByb3AubmFtZSk7XG4gIGlmICghb3ZlcnJpZGVzUHJvcCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgcHJvcGVydHkgJHtwcm9wLm5hbWV9IGluIG92ZXJyaWRlIHNpdGUgJHtwcm9wLm92ZXJyaWRlcy5mcW59YCk7XG4gIH1cbiAgcmV0dXJuIGZpbmREZWNsYXJhdGlvblNpdGUob3ZlcnJpZGVzUHJvcCk7XG59XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1jbGFzcy1leHRlbmRzLXJlc291cmNlJyxcbiAgbWVzc2FnZTogJ3Jlc291cmNlIGNsYXNzZXMgbXVzdCBleHRlbmQgXCJjZGsuUmVzb3VyY2VcIiBkaXJlY3RseSBvciBpbmRpcmVjdGx5JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VCYXNlID0gZS5jdHguc3lzLmZpbmRDbGFzcyhlLmN0eC5jb3JlLnJlc291cmNlQ2xhc3NGcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuZXh0ZW5kcyhyZXNvdXJjZUJhc2UpLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGludGVyZmFjZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZXMgb2YgQVdTIHJlc291cmNlcyBtdXN0IGV4dGVuZCBjZGsuSVJlc291cmNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2UgPSBlLmN0eC5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZTtcbiAgICBpZiAoIXJlc291cmNlSW50ZXJmYWNlKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2VGcW4gPSBlLmN0eC5jb3JlLnJlc291cmNlSW50ZXJmYWNlRnFuO1xuICAgIGNvbnN0IGludGVyZmFjZUJhc2UgPSBlLmN0eC5zeXMuZmluZEludGVyZmFjZShyZXNvdXJjZUludGVyZmFjZUZxbik7XG4gICAgZS5hc3NlcnQocmVzb3VyY2VJbnRlcmZhY2UuZXh0ZW5kcyhpbnRlcmZhY2VCYXNlKSwgcmVzb3VyY2VJbnRlcmZhY2UuZnFuKTtcbiAgfSxcbn0pO1xuXG4vKlxuLy8gVGhpcyBydWxlIGlzIHRoZSB3b3JzdFxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWF0dHJpYnV0ZScsXG4gIG1lc3NhZ2U6XG4gICAgJ3Jlc291cmNlcyBtdXN0IHJlcHJlc2VudCBhbGwgY2xvdWRmb3JtYXRpb24gYXR0cmlidXRlcyBhcyBhdHRyaWJ1dGUgcHJvcGVydGllcy4gJyArXG4gICAgJ1wiQGF0dHJpYnV0ZSBBVFRSWyxBVFRSXVwiIGNhbiBiZSB1c2VkIHRvIHRhZyBub24tc3RhbmRhcmQgYXR0cmlidXRlIG5hbWVzLiAnICtcbiAgICAnbWlzc2luZyBwcm9wZXJ0eTonLFxuICBldmFsOiBlID0+IHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZS5jdHguY2ZuLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IGNhbWVsY2FzZShuYW1lKS5zdGFydHNXaXRoKGNhbWVsY2FzZShlLmN0eC5jZm4uYmFzZW5hbWUpKVxuICAgICAgICA/IGNhbWVsY2FzZShuYW1lKVxuICAgICAgICA6IGNhbWVsY2FzZShlLmN0eC5jZm4uYmFzZW5hbWUgKyBuYW1lKTtcblxuICAgICAgY29uc3QgZm91bmQgPSBlLmN0eC5hdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLmNmbkF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKTtcbiAgICAgIGUuYXNzZXJ0KGZvdW5kLCBgJHtlLmN0eC5mcW59LiR7ZXhwZWN0ZWR9YCwgZXhwZWN0ZWQpO1xuICAgIH1cbiAgfSxcbn0pO1xuKi9cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2dyYW50LXJlc3VsdCcsXG4gIG1lc3NhZ2U6IGBcImdyYW50XCIgbWV0aG9kIG11c3QgcmV0dXJuICR7R1JBTlRfUkVTVUxUX0ZRTn1gLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBncmFudFJlc3VsdFR5cGUgPSBlLmN0eC5zeXMudHJ5RmluZEZxbihHUkFOVF9SRVNVTFRfRlFOKTtcblxuICAgIC8vIHRoaXMgaW1wbGllcyB0aGF0IHdlIGFyZSBhdCBhIGxvd2VyIGxheWVyIChpLmUuIEBhd3MtY2RrL2NvcmUpXG4gICAgaWYgKCFncmFudFJlc3VsdFR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBncmFudE1ldGhvZHMgPSBlLmN0eC5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmlsdGVyKG0gPT4gbS5uYW1lLnN0YXJ0c1dpdGgoJ2dyYW50JykpO1xuXG4gICAgZm9yIChjb25zdCBncmFudE1ldGhvZCBvZiBncmFudE1ldGhvZHMpIHtcbiAgICAgIGUuYXNzZXJ0U2lnbmF0dXJlKGdyYW50TWV0aG9kLCB7XG4gICAgICAgIHJldHVybnM6IGdyYW50UmVzdWx0VHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtcGh5c2ljYWwtbmFtZScsXG4gIG1lc3NhZ2U6ICdFdmVyeSBSZXNvdXJjZSBtdXN0IGhhdmUgYSBzaW5nbGUgcGh5c2ljYWwgbmFtZSBjb25zdHJ1Y3Rpb24gcHJvcGVydHksICcgK1xuICAgICd3aXRoIGEgbmFtZSB0aGF0IGlzIGFuIGVuZGluZyBzdWJzdHJpbmcgb2YgPGNmblJlc291cmNlPk5hbWUnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmNvbnN0cnVjdC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgZS5hc3NlcnQoZS5jdHgucGh5c2ljYWxOYW1lUHJvcCwgZS5jdHguY29uc3RydWN0LnByb3BzRnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtcGh5c2ljYWwtbmFtZS10eXBlJyxcbiAgbWVzc2FnZTogJ1RoZSB0eXBlIG9mIHRoZSBwaHlzaWNhbCBuYW1lIHByb3Agc2hvdWxkIGFsd2F5cyBiZSBhIFwic3RyaW5nXCInLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnBoeXNpY2FsTmFtZVByb3ApIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgcHJvcCA9IGUuY3R4LnBoeXNpY2FsTmFtZVByb3A7XG4gICAgZS5hc3NlcnRUeXBlc0VxdWFsKGUuY3R4LnN5cywgcHJvcC50eXBlLCAnc3RyaW5nJywgYCR7ZS5jdHguY29uc3RydWN0LnByb3BzRnFufS4ke3Byb3AubmFtZX1gKTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UocmVzb3VyY2VDbGFzczogcmVmbGVjdC5DbGFzc1R5cGUpOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBzeXMgPSByZXNvdXJjZUNsYXNzLnN5c3RlbTtcblxuICAvLyBpZiB0aGVyZSBpcyBhIEByZXNvdXJjZSBkb2MgdGFnLCBpdCB0YWtlcyBwcmVjZWRlY2VcbiAgY29uc3QgdGFnID0gcmVzb3VyY2VDbGFzcy5kb2NzLmN1c3RvbVRhZygncmVzb3VyY2UnKTtcbiAgaWYgKHRhZykge1xuICAgIHJldHVybiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEJ5TmFtZShzeXMsIHRhZyk7XG4gIH1cblxuICAvLyBwYXJzZSB0aGUgRlFOIG9mIHRoZSBjbGFzcyBuYW1lIGFuZCBzZWUgaWYgd2UgY2FuIGZpbmQgYSBtYXRjaGluZyBDRk4gcmVzb3VyY2VcbiAgY29uc3QgZ3Vlc3MgPSBndWVzc1Jlc291cmNlTmFtZShyZXNvdXJjZUNsYXNzLmZxbik7XG4gIGlmIChndWVzcykge1xuICAgIGNvbnN0IGNmbiA9IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQnlOYW1lKHN5cywgZ3Vlc3MpO1xuICAgIGlmIChjZm4pIHtcbiAgICAgIHJldHVybiBjZm47XG4gICAgfVxuICB9XG5cbiAgLy8gdHJ5IHRvIHJlc29sdmUgdGhyb3VnaCBhbmNlc3RvcnNcbiAgZm9yIChjb25zdCBiYXNlIG9mIHJlc291cmNlQ2xhc3MuYW5jZXN0b3JzKSB7XG4gICAgY29uc3QgcmV0ID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGJhc2UpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLy8gZmFpbGVkIG1pc3JhYmx5XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGd1ZXNzUmVzb3VyY2VOYW1lKGZxbjogc3RyaW5nKSB7XG4gIC8vIFN0cmlwIGFueSB2ZXJzaW9uIHN1ZmZpeGVzIGUuZy4gJ1RhYmxlVjInIGJlY29tZXMgJ1RhYmxlJ1xuICB2YXIgbWF0Y2ggPSAvXiguKz8pKFZbMC05XSspPyQvLmV4ZWMoZnFuKTtcbiAgaWYgKCFtYXRjaCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IFssIHZlcnNpb25sZXNzXSA9IG1hdGNoO1xuXG4gIG1hdGNoID0gL2F3cy1jZGstbGliXFwuKFthLXpdKylfKFthLXowLTldKylcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKHZlcnNpb25sZXNzKTtcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgLy8gQWxwaGEgbmFtZVxuICAgIG1hdGNoID0gL0Bhd3MtY2RrXFwvKFthLXpdKyktKFthLXowLTldKyktYWxwaGFcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKGZxbik7XG4gIH1cblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IFssIG9yZywgbnMsIHJzXSA9IG1hdGNoO1xuICBpZiAoIW9yZyB8fCAhbnMgfHwgIXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICByZXR1cm4gYCR7b3JnfTo6JHtuc306OiR7cnN9YDtcbn1cbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBdUQ7QUFDdkQsMkNBQWtEO0FBQ2xELDZDQUF5QztBQUN6QyxpQ0FBbUM7QUFDbkMsa0NBQThDO0FBQzlDLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsNkJBQWIsYUFBYSxRQUd4QjtBQUVELE1BQWEsa0JBQWtCO0lBRTdCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUEwQjtRQUM5QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7UUFDekMsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLFVBQVU7YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksK0JBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFZRCxZQUE0QixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENB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QUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEdBQVc7SUFDcEMsNERBQTREO0lBQzVELElBQUksS0FBSyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDakMsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBRTlCLEtBQUssR0FBRyx3REFBd0QsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFbkYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsYUFBYTtRQUNiLEtBQUssR0FBRywyREFBMkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFFN0MsT0FBTyxHQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENmblJlc291cmNlUmVmbGVjdGlvbiB9IGZyb20gJy4vY2ZuLXJlc291cmNlJztcbmltcG9ydCB7IENvbnN0cnVjdFJlZmxlY3Rpb24gfSBmcm9tICcuL2NvbnN0cnVjdCc7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RG9jVGFnIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IGNhbWVsaXplLCBwYXNjYWxpemUgfSBmcm9tICcuLi9jYXNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmNvbnN0IEdSQU5UX1JFU1VMVF9GUU4gPSAnQGF3cy1jZGsvYXdzLWlhbS5HcmFudCc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBSZXNvdXJjZVJlZmxlY3Rpb24uZmluZEFsbChhKSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgc2l0ZTogQXR0cmlidXRlU2l0ZTtcbiAgcHJvcGVydHk6IHJlZmxlY3QuUHJvcGVydHk7XG4gIGNmbkF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXTsgLy8gYnVja2V0QXJuXG59XG5cbmV4cG9ydCBlbnVtIEF0dHJpYnV0ZVNpdGUge1xuICBJbnRlcmZhY2UgPSAnaW50ZXJmYWNlJyxcbiAgQ2xhc3MgPSAnY2xhc3MnLFxufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VSZWZsZWN0aW9uIHtcblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHJlc291cmNlIGNvbnN0cnVjdHMgKGV2ZXJ5dGhpbmcgdGhhdCBleHRlbmRzIGBjZGsuUmVzb3VyY2VgKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kQWxsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gICAgaWYgKENvcmVUeXBlcy5oYXNDb3JlTW9kdWxlKGFzc2VtYmx5KSkge1xuICAgICAgcmV0dXJuIFtdOyAvLyBub3QgcGFydCBvZiB0aGUgZGVwIHN0YWNrXG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc2VtYmx5LmFsbENsYXNzZXNcbiAgICAgIC5maWx0ZXIoYyA9PiBDb3JlVHlwZXMuaXNDb25zdHJ1Y3RDbGFzcyhjKSAmJiBDb3JlVHlwZXMuaXNSZXNvdXJjZUNsYXNzKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBSZXNvdXJjZVJlZmxlY3Rpb24obmV3IENvbnN0cnVjdFJlZmxlY3Rpb24oYykpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTsgLy8gYWN0dWFsIGF0dHJpYnV0ZSBwcm9wc1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7IC8vIGV4cGVjdGVkIGZxbiBvZiByZXNvdXJjZSBjbGFzc1xuXG4gIHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcHVibGljIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBpLmUuIEJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgY29yZTogQ29yZVR5cGVzO1xuICBwdWJsaWMgcmVhZG9ubHkgcGh5c2ljYWxOYW1lUHJvcD86IHJlZmxlY3QuUHJvcGVydHk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnN0cnVjdDogQ29uc3RydWN0UmVmbGVjdGlvbikge1xuICAgIHRoaXMuYXNzZW1ibHkgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLmFzc2VtYmx5O1xuICAgIHRoaXMuc3lzID0gdGhpcy5hc3NlbWJseS5zeXN0ZW07XG5cbiAgICBjb25zdCBjZm4gPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoY29uc3RydWN0LmNsYXNzVHlwZSk7XG4gICAgaWYgKCFjZm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgTDEgY2xhc3MgZm9yIEwyICR7Y29uc3RydWN0LmZxbn0uIGAgK1xuICAgICAgICBgSXMgXCIke2d1ZXNzUmVzb3VyY2VOYW1lKGNvbnN0cnVjdC5mcW4pfVwiIGFuIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS4gYCArXG4gICAgICAgICdJZiBub3QsIHVzZSB0aGUgXCJAcmVzb3VyY2VcIiBkb2MgdGFnIHRvIGluZGljYXRlIHRoZSBmdWxsIHJlc291cmNlIG5hbWUgKGUuZy4gXCJAcmVzb3VyY2UgQVdTOjpSb3V0ZTUzOjpIb3N0ZWRab25lXCIpJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5jZm4gPSBjZm47XG4gICAgdGhpcy5iYXNlbmFtZSA9IGNvbnN0cnVjdC5jbGFzc1R5cGUubmFtZTtcbiAgICB0aGlzLmZxbiA9IGNvbnN0cnVjdC5mcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdGhpcy5maW5kQXR0cmlidXRlUHJvcGVydGllcygpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lUHJvcCA9IHRoaXMuZmluZFBoeXNpY2FsTmFtZVByb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBoeXNpY2FsTmFtZVByb3AoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gY2FtZWxpemUodGhpcy5jZm4uYmFzZW5hbWUpO1xuXG4gICAgLy8gaWYgcmVzb3VyY2UgbmFtZSBlbmRzIHdpdGggXCJOYW1lXCIgKGUuZy4gRG9tYWluTmFtZSwgdGhlbiBqdXN0IHVzZSBpdCBhcy1pcywgb3RoZXJ3aXNlIGFwcGVuZCBcIk5hbWVcIilcbiAgICBjb25zdCBwaHlzaWNhbE5hbWVQcm9wID0gcmVzb3VyY2VOYW1lLmVuZHNXaXRoKCdOYW1lJykgPyByZXNvdXJjZU5hbWUgOiBgJHtyZXNvdXJjZU5hbWV9TmFtZWA7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0LnByb3BzVHlwZS5hbGxQcm9wZXJ0aWVzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHBoeXNpY2FsTmFtZVByb3ApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBwcm9wZXJ0aWVzIGFyZSBhbGwgdGhlIHByb3BlcnRpZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSB0eXBlIG5hbWUgKGUuZy4gYnVja2V0WHh4KS5cbiAgICpcbiAgICogV2UgYXJlIGFkZGluZyBhIGBidWNrZXRSZWZgIHByb3BlcnR5IGFzIHdlbGwgdGhhdCB3ZSBkb24ndCBuZWNlc3NhcmlseSB3YW50IHRvIGhvbGQgdG8gdGhlIHNhbWUgbGludGVyXG4gICAqIHJ1bGVzIGFzIHRoZSBvdGhlciBhdHRyaWJ1dGVzLCBzbyB3ZSBkb24ndCBjb25zaWRlciBpdCBhbiBhdHRyaWJ1dGUuXG4gICAqL1xuICBwcml2YXRlIGZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlPigpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHRoaXMuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IHByb3RlY3RlZCBwcm9wZXJ0aWVzXG4gICAgICB9XG4gICAgICBpZiAocC5uYW1lLmVuZHNXaXRoKCdSZWYnKSkge1xuICAgICAgICBjb250aW51ZTsgLy8gc2tpcCBhbnkgXCJSZWZcIiBwcm9wZXJ0aWVzLCB0aGVzZSBhcmUgbm90IGF0dHJpYnV0ZXNcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmFzZW5hbWUgPSBjYW1lbGl6ZSh0aGlzLmNmbi5iYXNlbmFtZSk7XG5cbiAgICAgIC8vIGFuIGF0dHJpYnV0ZSBwcm9wZXJ0eSBpcyBhIHByb3BlcnR5IHdoaWNoIHN0YXJ0cyB3aXRoIHRoZSB0eXBlIG5hbWVcbiAgICAgIC8vIChlLmcuIFwiYnVja2V0WHh4XCIpIGFuZC9vciBoYXMgYW4gQGF0dHJpYnV0ZSBkb2MgdGFnLlxuICAgICAgY29uc3QgdGFnID0gZ2V0RG9jVGFnKHAsICdhdHRyaWJ1dGUnKTtcbiAgICAgIGlmICghcC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpICYmICF0YWcpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxldCBjZm5BdHRyaWJ1dGVOYW1lcztcbiAgICAgIGlmICh0YWcgJiYgdGFnICE9PSAndHJ1ZScpIHtcbiAgICAgICAgLy8gaWYgdGhlcmUncyBhbiBgQGF0dHJpYnV0ZWAgZG9jIHRhZyB3aXRoIGEgdmFsdWUgb3RoZXIgdGhhbiBcInRydWVcIlxuICAgICAgICAvLyBpdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgQ0ZOIGF0dHJpYnV0ZSBuYW1lIGluc3RlYWQgb2YgdGhlIHByb3BlcnR5IG5hbWVcbiAgICAgICAgLy8gbXVsdGlwbGUgYXR0cmlidXRlIG5hbWVzIGNhbiBiZSBsaXN0ZWQgYXMgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuICAgICAgICBjZm5BdHRyaWJ1dGVOYW1lcyA9IHRhZy5zcGxpdCgnLCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gb2theSwgd2UgZG9uJ3QgaGF2ZSBhbiBleHBsaWNpdCBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlJ2xsIGd1ZXNzIGl0XG4gICAgICAgIC8vIGZyb20gdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuXG4gICAgICAgIGNvbnN0IG5hbWUgPSBwYXNjYWxpemUocC5uYW1lKTtcbiAgICAgICAgaWYgKHRoaXMuY2ZuLmF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiB0aGVyZSBpcyBhIGNsb3VkZm9ybWF0aW9uIHJlc291cmNlIHR5cGUgaW4gdGhlIGF0dHJpYnV0ZSBuYW1lXG4gICAgICAgICAgLy8gZm9yIGV4YW1wbGUgJ1JvbGVJZCcuXG4gICAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSBbbmFtZV07XG4gICAgICAgIH0gZWxzZSBpZiAocC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpKSB7XG4gICAgICAgICAgLy8gYmVnaW5zIHdpdGggdGhlIHJlc291cmNlIG5hbWUsIGp1c3QgdHJpbSBpdFxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWUuc3Vic3RyaW5nKHRoaXMuY2ZuLmJhc2VuYW1lLmxlbmd0aCldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHdlIGNvdWxkbid0IGRldGVybWluZSBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlIGRvbid0IGFjY291bnQgZm9yIHRoaXNcbiAgICAgICAgICAvLyBhcyBhbiBhdHRyaWJ1dGUuIHRoaXMgY291bGQgYmUsIGZvciBleGFtcGxlLCB3aGVuIGEgY29uc3RydWN0IGltcGxlbWVudHNcbiAgICAgICAgICAvLyBhbiBpbnRlcmZhY2UgdGhhdCByZXByZXNlbnRzIGFub3RoZXIgcmVzb3VyY2UgKGUuZy4gYGxhbWJkYS5BbGlhc2AgaW1wbGVtZW50cyBgSUZ1bmN0aW9uYCkuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBvbiBhbiBpbnRlcmZhY2Ugb3Igb24gYSBjbGFzc1xuICAgICAgY29uc3QgcHJvcGVydHkgPSBmaW5kRGVjbGFyYXRpb25TaXRlKHApO1xuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5LnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkgPyBBdHRyaWJ1dGVTaXRlLkludGVyZmFjZSA6IEF0dHJpYnV0ZVNpdGUuQ2xhc3M7XG5cbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgc2l0ZSxcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMsXG4gICAgICAgIHByb3BlcnR5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kRGVjbGFyYXRpb25TaXRlKHByb3A6IHJlZmxlY3QuUHJvcGVydHkpOiByZWZsZWN0LlByb3BlcnR5IHtcbiAgaWYgKCFwcm9wLm92ZXJyaWRlcyB8fCAoIXByb3Aub3ZlcnJpZGVzLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3Aub3ZlcnJpZGVzLmlzSW50ZXJmYWNlVHlwZSgpKSkge1xuICAgIGlmICghcHJvcC5wYXJlbnRUeXBlLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3AucGFyZW50VHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBhcmVudCB0eXBlJyk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGVzUHJvcCA9IHByb3Aub3ZlcnJpZGVzLmFsbFByb3BlcnRpZXMuZmluZChwID0+IHAubmFtZSA9PT0gcHJvcC5uYW1lKTtcbiAgaWYgKCFvdmVycmlkZXNQcm9wKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcm9wZXJ0eSAke3Byb3AubmFtZX0gaW4gb3ZlcnJpZGUgc2l0ZSAke3Byb3Aub3ZlcnJpZGVzLmZxbn1gKTtcbiAgfVxuICByZXR1cm4gZmluZERlY2xhcmF0aW9uU2l0ZShvdmVycmlkZXNQcm9wKTtcbn1cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAncmVzb3VyY2UgY2xhc3NlcyBtdXN0IGV4dGVuZCBcImNkay5SZXNvdXJjZVwiIGRpcmVjdGx5IG9yIGluZGlyZWN0bHknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUJhc2UgPSBlLmN0eC5zeXMuZmluZENsYXNzKGUuY3R4LmNvcmUucmVzb3VyY2VDbGFzc0Zxbik7XG4gICAgZS5hc3NlcnQoZS5jdHguY29uc3RydWN0LmNsYXNzVHlwZS5leHRlbmRzKHJlc291cmNlQmFzZSksIGUuY3R4LmNvbnN0cnVjdC5mcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1pbnRlcmZhY2UnLFxuICB3YXJuaW5nOiB0cnVlLFxuICBtZXNzYWdlOiAnZXZlcnkgcmVzb3VyY2UgbXVzdCBoYXZlIGEgcmVzb3VyY2UgaW50ZXJmYWNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZS5hc3NlcnQoZS5jdHguY29uc3RydWN0LmludGVyZmFjZVR5cGUsIGUuY3R4LmNvbnN0cnVjdC5mcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1pbnRlcmZhY2UtZXh0ZW5kcy1yZXNvdXJjZScsXG4gIG1lc3NhZ2U6ICdjb25zdHJ1Y3QgaW50ZXJmYWNlcyBvZiBBV1MgcmVzb3VyY2VzIG11c3QgZXh0ZW5kIGNkay5JUmVzb3VyY2UnLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUludGVyZmFjZSA9IGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlO1xuICAgIGlmICghcmVzb3VyY2VJbnRlcmZhY2UpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCByZXNvdXJjZUludGVyZmFjZUZxbiA9IGUuY3R4LmNvcmUucmVzb3VyY2VJbnRlcmZhY2VGcW47XG4gICAgY29uc3QgaW50ZXJmYWNlQmFzZSA9IGUuY3R4LnN5cy5maW5kSW50ZXJmYWNlKHJlc291cmNlSW50ZXJmYWNlRnFuKTtcbiAgICBlLmFzc2VydChyZXNvdXJjZUludGVyZmFjZS5leHRlbmRzKGludGVyZmFjZUJhc2UpLCByZXNvdXJjZUludGVyZmFjZS5mcW4pO1xuICB9LFxufSk7XG5cbi8qXG4vLyBUaGlzIHJ1bGUgaXMgdGhlIHdvcnN0XG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtYXR0cmlidXRlJyxcbiAgbWVzc2FnZTpcbiAgICAncmVzb3VyY2VzIG11c3QgcmVwcmVzZW50IGFsbCBjbG91ZGZvcm1hdGlvbiBhdHRyaWJ1dGVzIGFzIGF0dHJpYnV0ZSBwcm9wZXJ0aWVzLiAnICtcbiAgICAnXCJAYXR0cmlidXRlIEFUVFJbLEFUVFJdXCIgY2FuIGJlIHVzZWQgdG8gdGFnIG5vbi1zdGFuZGFyZCBhdHRyaWJ1dGUgbmFtZXMuICcgK1xuICAgICdtaXNzaW5nIHByb3BlcnR5OicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBlLmN0eC5jZm4uYXR0cmlidXRlTmFtZXMpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gY2FtZWxjYXNlKG5hbWUpLnN0YXJ0c1dpdGgoY2FtZWxjYXNlKGUuY3R4LmNmbi5iYXNlbmFtZSkpXG4gICAgICAgID8gY2FtZWxjYXNlKG5hbWUpXG4gICAgICAgIDogY2FtZWxjYXNlKGUuY3R4LmNmbi5iYXNlbmFtZSArIG5hbWUpO1xuXG4gICAgICBjb25zdCBmb3VuZCA9IGUuY3R4LmF0dHJpYnV0ZXMuZmluZChhID0+IGEuY2ZuQXR0cmlidXRlTmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuICAgICAgZS5hc3NlcnQoZm91bmQsIGAke2UuY3R4LmZxbn0uJHtleHBlY3RlZH1gLCBleHBlY3RlZCk7XG4gICAgfVxuICB9LFxufSk7XG4qL1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAnZ3JhbnQtcmVzdWx0JyxcbiAgbWVzc2FnZTogYFwiZ3JhbnRcIiBtZXRob2QgbXVzdCByZXR1cm4gJHtHUkFOVF9SRVNVTFRfRlFOfWAsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IGdyYW50UmVzdWx0VHlwZSA9IGUuY3R4LnN5cy50cnlGaW5kRnFuKEdSQU5UX1JFU1VMVF9GUU4pO1xuXG4gICAgLy8gdGhpcyBpbXBsaWVzIHRoYXQgd2UgYXJlIGF0IGEgbG93ZXIgbGF5ZXIgKGkuZS4gQGF3cy1jZGsvY29yZSlcbiAgICBpZiAoIWdyYW50UmVzdWx0VHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGdyYW50TWV0aG9kcyA9IGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuYWxsTWV0aG9kcy5maWx0ZXIobSA9PiBtLm5hbWUuc3RhcnRzV2l0aCgnZ3JhbnQnKSk7XG5cbiAgICBmb3IgKGNvbnN0IGdyYW50TWV0aG9kIG9mIGdyYW50TWV0aG9kcykge1xuICAgICAgZS5hc3NlcnRTaWduYXR1cmUoZ3JhbnRNZXRob2QsIHtcbiAgICAgICAgcmV0dXJuczogZ3JhbnRSZXN1bHRUeXBlLFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1waHlzaWNhbC1uYW1lJyxcbiAgbWVzc2FnZTogJ0V2ZXJ5IFJlc291cmNlIG11c3QgaGF2ZSBhIHNpbmdsZSBwaHlzaWNhbCBuYW1lIGNvbnN0cnVjdGlvbiBwcm9wZXJ0eSwgJyArXG4gICAgJ3dpdGggYSBuYW1lIHRoYXQgaXMgYW4gZW5kaW5nIHN1YnN0cmluZyBvZiA8Y2ZuUmVzb3VyY2U+TmFtZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguY29uc3RydWN0LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBlLmFzc2VydChlLmN0eC5waHlzaWNhbE5hbWVQcm9wLCBlLmN0eC5jb25zdHJ1Y3QucHJvcHNGcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1waHlzaWNhbC1uYW1lLXR5cGUnLFxuICBtZXNzYWdlOiAnVGhlIHR5cGUgb2YgdGhlIHBoeXNpY2FsIG5hbWUgcHJvcCBzaG91bGQgYWx3YXlzIGJlIGEgXCJzdHJpbmdcIicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucGh5c2ljYWxOYW1lUHJvcCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBwcm9wID0gZS5jdHgucGh5c2ljYWxOYW1lUHJvcDtcbiAgICBlLmFzc2VydFR5cGVzRXF1YWwoZS5jdHguc3lzLCBwcm9wLnR5cGUsICdzdHJpbmcnLCBgJHtlLmN0eC5jb25zdHJ1Y3QucHJvcHNGcW59LiR7cHJvcC5uYW1lfWApO1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIHRyeVJlc29sdmVDZm5SZXNvdXJjZShyZXNvdXJjZUNsYXNzOiByZWZsZWN0LkNsYXNzVHlwZSk6IENmblJlc291cmNlUmVmbGVjdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN5cyA9IHJlc291cmNlQ2xhc3Muc3lzdGVtO1xuXG4gIC8vIGlmIHRoZXJlIGlzIGEgQHJlc291cmNlIGRvYyB0YWcsIGl0IHRha2VzIHByZWNlZGVjZVxuICBjb25zdCB0YWcgPSByZXNvdXJjZUNsYXNzLmRvY3MuY3VzdG9tVGFnKCdyZXNvdXJjZScpO1xuICBpZiAodGFnKSB7XG4gICAgcmV0dXJuIENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQnlOYW1lKHN5cywgdGFnKTtcbiAgfVxuXG4gIC8vIHBhcnNlIHRoZSBGUU4gb2YgdGhlIGNsYXNzIG5hbWUgYW5kIHNlZSBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIENGTiByZXNvdXJjZVxuICBjb25zdCBndWVzcyA9IGd1ZXNzUmVzb3VyY2VOYW1lKHJlc291cmNlQ2xhc3MuZnFuKTtcbiAgaWYgKGd1ZXNzKSB7XG4gICAgY29uc3QgY2ZuID0gQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRCeU5hbWUoc3lzLCBndWVzcyk7XG4gICAgaWYgKGNmbikge1xuICAgICAgcmV0dXJuIGNmbjtcbiAgICB9XG4gIH1cblxuICAvLyB0cnkgdG8gcmVzb2x2ZSB0aHJvdWdoIGFuY2VzdG9yc1xuICBmb3IgKGNvbnN0IGJhc2Ugb2YgcmVzb3VyY2VDbGFzcy5hbmNlc3RvcnMpIHtcbiAgICBjb25zdCByZXQgPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoYmFzZSk7XG4gICAgaWYgKHJldCkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvLyBmYWlsZWQgbWlzcmFibHlcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ3Vlc3NSZXNvdXJjZU5hbWUoZnFuOiBzdHJpbmcpIHtcbiAgLy8gU3RyaXAgYW55IHZlcnNpb24gc3VmZml4ZXMgZS5nLiAnVGFibGVWMicgYmVjb21lcyAnVGFibGUnXG4gIHZhciBtYXRjaCA9IC9eKC4rPykoVlswLTldKyk/JC8uZXhlYyhmcW4pO1xuICBpZiAoIW1hdGNoKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgWywgdmVyc2lvbmxlc3NdID0gbWF0Y2g7XG5cbiAgbWF0Y2ggPSAvYXdzLWNkay1saWJcXC4oW2Etel0rKV8oW2EtejAtOV0rKVxcLihbQS1aXVthLXpBLVowLTldKykvLmV4ZWModmVyc2lvbmxlc3MpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICAvLyBBbHBoYSBuYW1lXG4gICAgbWF0Y2ggPSAvQGF3cy1jZGtcXC8oW2Etel0rKS0oW2EtejAtOV0rKS1hbHBoYVxcLihbQS1aXVthLXpBLVowLTldKykvLmV4ZWMoZnFuKTtcbiAgfVxuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgWywgb3JnLCBucywgcnNdID0gbWF0Y2g7XG4gIGlmICghb3JnIHx8ICFucyB8fCAhcnMpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gIHJldHVybiBgJHtvcmd9Ojoke25zfTo6JHtyc31gO1xufVxuIl19
|
package/lib/rules/resource.ts
CHANGED
|
@@ -79,6 +79,9 @@ export class ResourceReflection {
|
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* Attribute properties are all the properties that begin with the type name (e.g. bucketXxx).
|
|
82
|
+
*
|
|
83
|
+
* We are adding a `bucketRef` property as well that we don't necessarily want to hold to the same linter
|
|
84
|
+
* rules as the other attributes, so we don't consider it an attribute.
|
|
82
85
|
*/
|
|
83
86
|
private findAttributeProperties(): Attribute[] {
|
|
84
87
|
const result = new Array<Attribute>();
|
|
@@ -87,6 +90,9 @@ export class ResourceReflection {
|
|
|
87
90
|
if (p.protected) {
|
|
88
91
|
continue; // skip any protected properties
|
|
89
92
|
}
|
|
93
|
+
if (p.name.endsWith('Ref')) {
|
|
94
|
+
continue; // skip any "Ref" properties, these are not attributes
|
|
95
|
+
}
|
|
90
96
|
|
|
91
97
|
const basename = camelize(this.cfn.basename);
|
|
92
98
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awslint",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.216.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",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@cdklabs/eslint-plugin": "^1.3.4",
|
|
30
|
-
"@aws-cdk/pkglint": "2.
|
|
30
|
+
"@aws-cdk/pkglint": "2.216.0-alpha.0",
|
|
31
31
|
"@types/fs-extra": "^9.0.13",
|
|
32
32
|
"@types/jest": "^29.5.14",
|
|
33
33
|
"@types/yargs": "^15.0.19",
|