@aws-c2a/presets
Advanced tools
Comparing version 0.5.0 to 0.6.0
@@ -9,5 +9,5 @@ "use strict"; | ||
const broadeningPermissions = new lib_1.PresetRules(...iamRules.rules, ...securityGroupRules.rules); | ||
fs_1.writeFileSync(path_1.resolve(__dirname, 'broadening-iam-permissions.json'), iamRules.toString()); | ||
fs_1.writeFileSync(path_1.resolve(__dirname, 'broadening-security-group.json'), securityGroupRules.toString()); | ||
fs_1.writeFileSync(path_1.resolve(__dirname, 'broadening-permissions.json'), broadeningPermissions.toString()); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZpeHR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3JlYXRlLWZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQW1DO0FBQ25DLCtCQUErQjtBQUMvQixnQ0FBZ0U7QUFFaEUsTUFBTSxRQUFRLEdBQUcsZ0JBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsbUJBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQ2pFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpQkFBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRTlGLGtCQUFhLENBQUMsY0FBTyxDQUFDLFNBQVMsRUFBRSxpQ0FBaUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQzFGLGtCQUFhLENBQUMsY0FBTyxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDbkcsa0JBQWEsQ0FBQyxjQUFPLENBQUMsU0FBUyxFQUFFLDZCQUE2QixDQUFDLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdyaXRlRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBJYW1DaGFuZ2VzLCBTZWN1cml0eUdyb3VwLCBQcmVzZXRSdWxlcyB9IGZyb20gJy4uL2xpYic7XG5cbmNvbnN0IGlhbVJ1bGVzID0gSWFtQ2hhbmdlcy5Ccm9hZGVuaW5nUGVybWlzc2lvbnMoKTtcbmNvbnN0IHNlY3VyaXR5R3JvdXBSdWxlcyA9IFNlY3VyaXR5R3JvdXAuQnJvYWRlbmluZ1Blcm1pc3Npb25zKCk7XG5jb25zdCBicm9hZGVuaW5nUGVybWlzc2lvbnMgPSBuZXcgUHJlc2V0UnVsZXMoLi4uaWFtUnVsZXMucnVsZXMsIC4uLnNlY3VyaXR5R3JvdXBSdWxlcy5ydWxlcyk7XG5cbndyaXRlRmlsZVN5bmMocmVzb2x2ZShfX2Rpcm5hbWUsICdicm9hZGVuaW5nLWlhbS1wZXJtaXNzaW9ucy5qc29uJyksIGlhbVJ1bGVzLnRvU3RyaW5nKCkpO1xud3JpdGVGaWxlU3luYyhyZXNvbHZlKF9fZGlybmFtZSwgJ2Jyb2FkZW5pbmctc2VjdXJpdHktZ3JvdXAuanNvbicpLCBzZWN1cml0eUdyb3VwUnVsZXMudG9TdHJpbmcoKSk7XG53cml0ZUZpbGVTeW5jKHJlc29sdmUoX19kaXJuYW1lLCAnYnJvYWRlbmluZy1wZXJtaXNzaW9ucy5qc29uJyksIGJyb2FkZW5pbmdQZXJtaXNzaW9ucy50b1N0cmluZygpKTsiXX0= | ||
(0, fs_1.writeFileSync)((0, path_1.resolve)(__dirname, 'broadening-iam-permissions.json'), iamRules.toString()); | ||
(0, fs_1.writeFileSync)((0, path_1.resolve)(__dirname, 'broadening-security-group.json'), securityGroupRules.toString()); | ||
(0, fs_1.writeFileSync)((0, path_1.resolve)(__dirname, 'broadening-permissions.json'), broadeningPermissions.toString()); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZpeHR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3JlYXRlLWZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQW1DO0FBQ25DLCtCQUErQjtBQUMvQixnQ0FBZ0U7QUFFaEUsTUFBTSxRQUFRLEdBQUcsZ0JBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsbUJBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQ2pFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpQkFBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRTlGLElBQUEsa0JBQWEsRUFBQyxJQUFBLGNBQU8sRUFBQyxTQUFTLEVBQUUsaUNBQWlDLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUMxRixJQUFBLGtCQUFhLEVBQUMsSUFBQSxjQUFPLEVBQUMsU0FBUyxFQUFFLGdDQUFnQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUNuRyxJQUFBLGtCQUFhLEVBQUMsSUFBQSxjQUFPLEVBQUMsU0FBUyxFQUFFLDZCQUE2QixDQUFDLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdyaXRlRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBJYW1DaGFuZ2VzLCBTZWN1cml0eUdyb3VwLCBQcmVzZXRSdWxlcyB9IGZyb20gJy4uL2xpYic7XG5cbmNvbnN0IGlhbVJ1bGVzID0gSWFtQ2hhbmdlcy5Ccm9hZGVuaW5nUGVybWlzc2lvbnMoKTtcbmNvbnN0IHNlY3VyaXR5R3JvdXBSdWxlcyA9IFNlY3VyaXR5R3JvdXAuQnJvYWRlbmluZ1Blcm1pc3Npb25zKCk7XG5jb25zdCBicm9hZGVuaW5nUGVybWlzc2lvbnMgPSBuZXcgUHJlc2V0UnVsZXMoLi4uaWFtUnVsZXMucnVsZXMsIC4uLnNlY3VyaXR5R3JvdXBSdWxlcy5ydWxlcyk7XG5cbndyaXRlRmlsZVN5bmMocmVzb2x2ZShfX2Rpcm5hbWUsICdicm9hZGVuaW5nLWlhbS1wZXJtaXNzaW9ucy5qc29uJyksIGlhbVJ1bGVzLnRvU3RyaW5nKCkpO1xud3JpdGVGaWxlU3luYyhyZXNvbHZlKF9fZGlybmFtZSwgJ2Jyb2FkZW5pbmctc2VjdXJpdHktZ3JvdXAuanNvbicpLCBzZWN1cml0eUdyb3VwUnVsZXMudG9TdHJpbmcoKSk7XG53cml0ZUZpbGVTeW5jKHJlc29sdmUoX19kaXJuYW1lLCAnYnJvYWRlbmluZy1wZXJtaXNzaW9ucy5qc29uJyksIGJyb2FkZW5pbmdQZXJtaXNzaW9ucy50b1N0cmluZygpKTsiXX0= |
@@ -26,6 +26,6 @@ "use strict"; | ||
// because the INSERT operation happens on the component level. | ||
high_risk_child_1.generateHighRiskChild(parent, component, { | ||
(0, high_risk_child_1.generateHighRiskChild)(parent, component, { | ||
change: rules_1.Change.INSERT, | ||
equals: 'Allow', | ||
sourcePath: path_1.generateEffectPath(documentName, ...prefix), | ||
sourcePath: (0, path_1.generateEffectPath)(documentName, ...prefix), | ||
}); | ||
@@ -37,6 +37,6 @@ // At the property level, we simply need to obtain the property path for the statement | ||
[rules_1.Change.INSERT_PROP, rules_1.Change.UPDATE_PROP].forEach(change => { | ||
high_risk_child_1.generateHighRiskChild(parent, component, { | ||
(0, high_risk_child_1.generateHighRiskChild)(parent, component, { | ||
change, | ||
equals: 'Allow', | ||
targetPath: path_1.generateStatementPath(documentName, ...prefix), | ||
targetPath: (0, path_1.generateStatementPath)(documentName, ...prefix), | ||
sourcePath: ['Effect'], | ||
@@ -47,2 +47,2 @@ }); | ||
exports.generateStatementRules = generateStatementRules; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LXN0YXRlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvbGljeS1zdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXlEO0FBQ3pELHVEQUEwRDtBQUMxRCxpQ0FBbUU7QUFFbkU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQ3BDLE1BQVksRUFDWixTQUFvQixFQUNwQixZQUFZLEdBQUcsZ0JBQWdCLEVBQy9CLEdBQUcsTUFBZ0I7SUFFbkIsb0ZBQW9GO0lBQ3BGLCtEQUErRDtJQUMvRCx1Q0FBcUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ3ZDLE1BQU0sRUFBRSxjQUFNLENBQUMsTUFBTTtRQUNyQixNQUFNLEVBQUUsT0FBTztRQUNmLFVBQVUsRUFBRSx5QkFBa0IsQ0FBQyxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUM7S0FDeEQsQ0FBQyxDQUFDO0lBQ0gsc0ZBQXNGO0lBQ3RGLDhDQUE4QztJQUM5Qyx5RkFBeUY7SUFDekYsbUVBQW1FO0lBQ25FLENBQUMsY0FBTSxDQUFDLFdBQVcsRUFBRSxjQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hELHVDQUFxQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDdkMsTUFBTTtZQUNOLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLDRCQUFxQixDQUFDLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQztZQUMxRCxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBekJELHdEQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZSwgQ29tcG9uZW50LCBSdWxlIH0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVIaWdoUmlza0NoaWxkIH0gZnJvbSAnLi9oaWdoLXJpc2stY2hpbGQnO1xuaW1wb3J0IHsgZ2VuZXJhdGVFZmZlY3RQYXRoLCBnZW5lcmF0ZVN0YXRlbWVudFBhdGggfSBmcm9tICcuL3BhdGgnO1xuXG4vKipcbiAqIFRoaXMgKipoaWdobHkqKiBvcGluaW9uYXRlZCBydWxlIGdlbmVyYXRvciB0YWtlcyBpbiBhXG4gKiBwYXJlbnQgcnVsZSBhbmQgYSBBV1MgY29tcG9uZW50IGFuZCB3aWxsIGdlbmVyYXRlIDNcbiAqIHJ1bGVzIHRoYXQgYXBwbHkgdG8gUG9saWN5IERvY3VtZW50cyBmb3IgdGhlIGNvbXBvbmVudC5cbiAqXG4gKiBNYXJrIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzIGFzIGhpZ2ggcmlzazpcbiAqICAxLiBOZXcgYGNvbXBvbmVudHNgIHRoYXQgaGF2ZSBhIFBvbGljeURvY3VtZW50IHN0YXRlbWVudCB3aXRoXG4gKiAgICAgYW4gJ0FsbG93JyBlZmZlY3RcbiAqICAyLiBBZGRpdGlvbnMgdG8gdGhlIFBvbGljeURvY3VtZW50IHN0YXRlbWVudCB3aXRoIGFuICdBbGxvdycgZWZmZWN0XG4gKiAgMy4gVXBkYXRlcyB0byB0aGUgUG9saWN5RG9jdW1lbnQgdGhhdCByZXN1bHQgaW4gYW4gJ0FsbG93JyBlZmZlY3RcbiAqXG4gKiBAcGFyYW0gcGFyZW50XG4gKiBAcGFyYW0gY29tcG9uZW50XG4gKiBAcGFyYW0gZG9jdW1lbnROYW1lXG4gKiBAcGFyYW0gcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVN0YXRlbWVudFJ1bGVzKFxuICBwYXJlbnQ6IFJ1bGUsXG4gIGNvbXBvbmVudDogQ29tcG9uZW50LFxuICBkb2N1bWVudE5hbWUgPSAnUG9saWN5RG9jdW1lbnQnLFxuICAuLi5wcmVmaXg6IHN0cmluZ1tdXG4pOiB2b2lkIHtcbiAgLy8gV2UgY2FudCB0YXJnZXQgcHJvcGVydHkgcGF0aHMgd2l0aGluIHRoZSBuZXdseSBjcmVhdGVkIGNvbXBvbmVudCB1c2luZyBhcHBsaWVzIHRvXG4gIC8vIGJlY2F1c2UgdGhlIElOU0VSVCBvcGVyYXRpb24gaGFwcGVucyBvbiB0aGUgY29tcG9uZW50IGxldmVsLlxuICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQocGFyZW50LCBjb21wb25lbnQsIHtcbiAgICBjaGFuZ2U6IENoYW5nZS5JTlNFUlQsXG4gICAgZXF1YWxzOiAnQWxsb3cnLFxuICAgIHNvdXJjZVBhdGg6IGdlbmVyYXRlRWZmZWN0UGF0aChkb2N1bWVudE5hbWUsIC4uLnByZWZpeCksXG4gIH0pO1xuICAvLyBBdCB0aGUgcHJvcGVydHkgbGV2ZWwsIHdlIHNpbXBseSBuZWVkIHRvIG9idGFpbiB0aGUgcHJvcGVydHkgcGF0aCBmb3IgdGhlIHN0YXRlbWVudFxuICAvLyBhbmQgdGhlbiBjb21wYXJlIHRoZSBgLmVmZmVjdGAgd2l0aCAnQWxsb3cnXG4gIC8vIE5PVEU6IFdlIGNhbm5vdCBnbyBhbGwgdGhlIHdheSB0byBgLkVmZmVjdGAgaW4gb3VyIGFwcGxpZXNUbyBjYWxsIGJlY2F1c2Ugc3RhdGVtZW50IGlzXG4gIC8vIGFuIGFycmF5IGFuZCB3ZSBhcmUgZGV0ZWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHN0YXRlbWVudCBwcm9wZXJ0eS5cbiAgW0NoYW5nZS5JTlNFUlRfUFJPUCwgQ2hhbmdlLlVQREFURV9QUk9QXS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgZ2VuZXJhdGVIaWdoUmlza0NoaWxkKHBhcmVudCwgY29tcG9uZW50LCB7XG4gICAgICBjaGFuZ2UsXG4gICAgICBlcXVhbHM6ICdBbGxvdycsXG4gICAgICB0YXJnZXRQYXRoOiBnZW5lcmF0ZVN0YXRlbWVudFBhdGgoZG9jdW1lbnROYW1lLCAuLi5wcmVmaXgpLFxuICAgICAgc291cmNlUGF0aDogWydFZmZlY3QnXSxcbiAgICB9KTtcbiAgfSk7XG59XG5cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LXN0YXRlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvbGljeS1zdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXlEO0FBQ3pELHVEQUEwRDtBQUMxRCxpQ0FBbUU7QUFFbkU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQ3BDLE1BQVksRUFDWixTQUFvQixFQUNwQixZQUFZLEdBQUcsZ0JBQWdCLEVBQy9CLEdBQUcsTUFBZ0I7SUFFbkIsb0ZBQW9GO0lBQ3BGLCtEQUErRDtJQUMvRCxJQUFBLHVDQUFxQixFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7UUFDdkMsTUFBTSxFQUFFLGNBQU0sQ0FBQyxNQUFNO1FBQ3JCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsVUFBVSxFQUFFLElBQUEseUJBQWtCLEVBQUMsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO0tBQ3hELENBQUMsQ0FBQztJQUNILHNGQUFzRjtJQUN0Riw4Q0FBOEM7SUFDOUMseUZBQXlGO0lBQ3pGLG1FQUFtRTtJQUNuRSxDQUFDLGNBQU0sQ0FBQyxXQUFXLEVBQUUsY0FBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4RCxJQUFBLHVDQUFxQixFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDdkMsTUFBTTtZQUNOLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLElBQUEsNEJBQXFCLEVBQUMsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO1lBQzFELFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUF6QkQsd0RBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlLCBDb21wb25lbnQsIFJ1bGUgfSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQgfSBmcm9tICcuL2hpZ2gtcmlzay1jaGlsZCc7XG5pbXBvcnQgeyBnZW5lcmF0ZUVmZmVjdFBhdGgsIGdlbmVyYXRlU3RhdGVtZW50UGF0aCB9IGZyb20gJy4vcGF0aCc7XG5cbi8qKlxuICogVGhpcyAqKmhpZ2hseSoqIG9waW5pb25hdGVkIHJ1bGUgZ2VuZXJhdG9yIHRha2VzIGluIGFcbiAqIHBhcmVudCBydWxlIGFuZCBhIEFXUyBjb21wb25lbnQgYW5kIHdpbGwgZ2VuZXJhdGUgM1xuICogcnVsZXMgdGhhdCBhcHBseSB0byBQb2xpY3kgRG9jdW1lbnRzIGZvciB0aGUgY29tcG9uZW50LlxuICpcbiAqIE1hcmsgdGhlIGZvbGxvd2luZyBiZWhhdmlvcnMgYXMgaGlnaCByaXNrOlxuICogIDEuIE5ldyBgY29tcG9uZW50c2AgdGhhdCBoYXZlIGEgUG9saWN5RG9jdW1lbnQgc3RhdGVtZW50IHdpdGhcbiAqICAgICBhbiAnQWxsb3cnIGVmZmVjdFxuICogIDIuIEFkZGl0aW9ucyB0byB0aGUgUG9saWN5RG9jdW1lbnQgc3RhdGVtZW50IHdpdGggYW4gJ0FsbG93JyBlZmZlY3RcbiAqICAzLiBVcGRhdGVzIHRvIHRoZSBQb2xpY3lEb2N1bWVudCB0aGF0IHJlc3VsdCBpbiBhbiAnQWxsb3cnIGVmZmVjdFxuICpcbiAqIEBwYXJhbSBwYXJlbnRcbiAqIEBwYXJhbSBjb21wb25lbnRcbiAqIEBwYXJhbSBkb2N1bWVudE5hbWVcbiAqIEBwYXJhbSBwcmVmaXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoXG4gIHBhcmVudDogUnVsZSxcbiAgY29tcG9uZW50OiBDb21wb25lbnQsXG4gIGRvY3VtZW50TmFtZSA9ICdQb2xpY3lEb2N1bWVudCcsXG4gIC4uLnByZWZpeDogc3RyaW5nW11cbik6IHZvaWQge1xuICAvLyBXZSBjYW50IHRhcmdldCBwcm9wZXJ0eSBwYXRocyB3aXRoaW4gdGhlIG5ld2x5IGNyZWF0ZWQgY29tcG9uZW50IHVzaW5nIGFwcGxpZXMgdG9cbiAgLy8gYmVjYXVzZSB0aGUgSU5TRVJUIG9wZXJhdGlvbiBoYXBwZW5zIG9uIHRoZSBjb21wb25lbnQgbGV2ZWwuXG4gIGdlbmVyYXRlSGlnaFJpc2tDaGlsZChwYXJlbnQsIGNvbXBvbmVudCwge1xuICAgIGNoYW5nZTogQ2hhbmdlLklOU0VSVCxcbiAgICBlcXVhbHM6ICdBbGxvdycsXG4gICAgc291cmNlUGF0aDogZ2VuZXJhdGVFZmZlY3RQYXRoKGRvY3VtZW50TmFtZSwgLi4ucHJlZml4KSxcbiAgfSk7XG4gIC8vIEF0IHRoZSBwcm9wZXJ0eSBsZXZlbCwgd2Ugc2ltcGx5IG5lZWQgdG8gb2J0YWluIHRoZSBwcm9wZXJ0eSBwYXRoIGZvciB0aGUgc3RhdGVtZW50XG4gIC8vIGFuZCB0aGVuIGNvbXBhcmUgdGhlIGAuZWZmZWN0YCB3aXRoICdBbGxvdydcbiAgLy8gTk9URTogV2UgY2Fubm90IGdvIGFsbCB0aGUgd2F5IHRvIGAuRWZmZWN0YCBpbiBvdXIgYXBwbGllc1RvIGNhbGwgYmVjYXVzZSBzdGF0ZW1lbnQgaXNcbiAgLy8gYW4gYXJyYXkgYW5kIHdlIGFyZSBkZXRlY3RpbmcgdXBkYXRlcyB0byB0aGUgc3RhdGVtZW50IHByb3BlcnR5LlxuICBbQ2hhbmdlLklOU0VSVF9QUk9QLCBDaGFuZ2UuVVBEQVRFX1BST1BdLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQocGFyZW50LCBjb21wb25lbnQsIHtcbiAgICAgIGNoYW5nZSxcbiAgICAgIGVxdWFsczogJ0FsbG93JyxcbiAgICAgIHRhcmdldFBhdGg6IGdlbmVyYXRlU3RhdGVtZW50UGF0aChkb2N1bWVudE5hbWUsIC4uLnByZWZpeCksXG4gICAgICBzb3VyY2VQYXRoOiBbJ0VmZmVjdCddLFxuICAgIH0pO1xuICB9KTtcbn1cblxuIl19 |
@@ -23,4 +23,4 @@ "use strict"; | ||
security_policies_1.IAM_LAMBDA_PERMISSION.forEach(resource => { | ||
const { component, rule: componentBindings } = generators_1.generateComponent(resource, rootBindings); | ||
generators_1.generateHighRiskChild(componentBindings, component, { | ||
const { component, rule: componentBindings } = (0, generators_1.generateComponent)(resource, rootBindings); | ||
(0, generators_1.generateHighRiskChild)(componentBindings, component, { | ||
change: rules_1.Change.INSERT, | ||
@@ -31,9 +31,9 @@ }); | ||
Object.entries(security_policies_1.IAM_MANAGED_POLICIES).forEach(([resource, policies]) => { | ||
const { component, rule: componentBindings } = generators_1.generateComponent(resource, rootBindings); | ||
const { component, rule: componentBindings } = (0, generators_1.generateComponent)(resource, rootBindings); | ||
policies.forEach(policy => { | ||
generators_1.generateHighRiskChild(componentBindings, component, { | ||
(0, generators_1.generateHighRiskChild)(componentBindings, component, { | ||
change: rules_1.Change.INSERT_PROP, | ||
targetPath: ['Properties', policy, '*'], | ||
}); | ||
generators_1.generateHighRiskChild(componentBindings, component, { | ||
(0, generators_1.generateHighRiskChild)(componentBindings, component, { | ||
change: rules_1.Change.INSERT, | ||
@@ -55,6 +55,6 @@ equals: '*', | ||
Object.entries(security_policies_1.IAM_INLINE_IDENTITY_POLICIES).forEach(([resource, policies]) => { | ||
const { component, rule: componentBindings } = generators_1.generateComponent(resource, rootBindings); | ||
const { component, rule: componentBindings } = (0, generators_1.generateComponent)(resource, rootBindings); | ||
policies.forEach(policy => { | ||
generators_1.generateStatementRules(componentBindings, component, 'PolicyDocument', policy, '*'); | ||
generators_1.generateHighRiskChild(componentBindings, component, { | ||
(0, generators_1.generateStatementRules)(componentBindings, component, 'PolicyDocument', policy, '*'); | ||
(0, generators_1.generateHighRiskChild)(componentBindings, component, { | ||
change: rules_1.Change.INSERT_PROP, | ||
@@ -69,5 +69,5 @@ equals: 'Allow', | ||
Object.entries(security_policies_1.IAM_INLINE_RESOURCE_POLICIES).forEach(([resource, policies]) => { | ||
const { component, rule: componentBindings } = generators_1.generateComponent(resource, rootBindings); | ||
const { component, rule: componentBindings } = (0, generators_1.generateComponent)(resource, rootBindings); | ||
policies.forEach(policy => { | ||
generators_1.generateStatementRules(componentBindings, component, policy); | ||
(0, generators_1.generateStatementRules)(componentBindings, component, policy); | ||
}); | ||
@@ -77,4 +77,4 @@ }); | ||
security_policies_1.IAM_POLICY_RESOURCES.forEach(resource => { | ||
const { component, rule: componentBindings } = generators_1.generateComponent(resource, rootBindings); | ||
generators_1.generateStatementRules(componentBindings, component); | ||
const { component, rule: componentBindings } = (0, generators_1.generateComponent)(resource, rootBindings); | ||
(0, generators_1.generateStatementRules)(componentBindings, component); | ||
}); | ||
@@ -86,2 +86,2 @@ rules.addRules(rootBindings.toJSON()); | ||
exports.IamChanges = IamChanges; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWNoYW5nZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBMkM7QUFDM0MsMENBQTBEO0FBQzFELDZDQUFnRztBQUNoRyxpREFBNkM7QUFDN0MsbUVBTXFDO0FBRXJDOzs7R0FHRztBQUNILE1BQWEsVUFBVyxTQUFRLDBCQUFXO0lBQ3pDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUI7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQixNQUFNLFlBQVksR0FBRyxJQUFJLFlBQUksQ0FBQyxDQUFDLGNBQU0sQ0FBQyxNQUFNLEVBQUUsY0FBTSxDQUFDLFdBQVcsRUFBRSxjQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUV2RixxQkFBcUI7UUFDckIseUNBQXFCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsOEJBQWlCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3pGLGtDQUFxQixDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRTtnQkFDbEQsTUFBTSxFQUFFLGNBQU0sQ0FBQyxNQUFNO2FBQ3RCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUJBQW1CO1FBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsd0NBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3BFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsOEJBQWlCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3pGLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hCLGtDQUFx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QUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUF4RUQsZ0NBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZVJpc2sgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQ2hhbmdlLCBDaGFuZ2VUeXBlLCBSdWxlIH0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVDb21wb25lbnQsIGdlbmVyYXRlSGlnaFJpc2tDaGlsZCwgZ2VuZXJhdGVTdGF0ZW1lbnRSdWxlcyB9IGZyb20gJy4vZ2VuZXJhdG9ycyc7XG5pbXBvcnQgeyBQcmVzZXRSdWxlcyB9IGZyb20gJy4vcHJlc2V0LXJ1bGVzJztcbmltcG9ydCB7XG4gIElBTV9JTkxJTkVfSURFTlRJVFlfUE9MSUNJRVMsXG4gIElBTV9JTkxJTkVfUkVTT1VSQ0VfUE9MSUNJRVMsXG4gIElBTV9MQU1CREFfUEVSTUlTU0lPTixcbiAgSUFNX01BTkFHRURfUE9MSUNJRVMsXG4gIElBTV9QT0xJQ1lfUkVTT1VSQ0VTLFxufSBmcm9tICcuL3ByaXZhdGUvc2VjdXJpdHktcG9saWNpZXMnO1xuXG4vKipcbiAqIEEgY2xhc3MgY29udGFpbmluZyBzdGF0aWMgcHJlc2V0cyB0aGF0IHJlcHJlc2VudCBsZXZlbHNcbiAqIG9mIHBlcm1pc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgSWFtQ2hhbmdlcyBleHRlbmRzIFByZXNldFJ1bGVzIHtcbiAgLyoqXG4gICAqIFJ1bGVzIHRoYXQgcGVydGFpbiB0byBicm9hZGVuaW5nIHBlcm1pc3Npb25zIGZvclxuICAgKiBJQU0gcG9saWN5L3N0YXRlbWVudCBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCcm9hZGVuaW5nUGVybWlzc2lvbnMoKTogUHJlc2V0UnVsZXMge1xuICAgIGNvbnN0IHJ1bGVzID0gbmV3IElhbUNoYW5nZXMoKTtcbiAgICBjb25zdCByb290QmluZGluZ3MgPSBuZXcgUnVsZShbQ2hhbmdlLklOU0VSVCwgQ2hhbmdlLklOU0VSVF9QUk9QLCBDaGFuZ2UuVVBEQVRFX1BST1BdKTtcblxuICAgIC8vIExhbWJkYSBQZXJtaXNzaW9uc1xuICAgIElBTV9MQU1CREFfUEVSTUlTU0lPTi5mb3JFYWNoKHJlc291cmNlID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwge1xuICAgICAgICBjaGFuZ2U6IENoYW5nZS5JTlNFUlQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIE1hbmFnZWQgUG9saWNpZXNcbiAgICBPYmplY3QuZW50cmllcyhJQU1fTUFOQUdFRF9QT0xJQ0lFUykuZm9yRWFjaCgoW3Jlc291cmNlLCBwb2xpY2llc10pID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBwb2xpY2llcy5mb3JFYWNoKHBvbGljeSA9PiB7XG4gICAgICAgIGdlbmVyYXRlSGlnaFJpc2tDaGlsZChjb21wb25lbnRCaW5kaW5ncywgY29tcG9uZW50LCB7XG4gICAgICAgICAgY2hhbmdlOiBDaGFuZ2UuSU5TRVJUX1BST1AsXG4gICAgICAgICAgdGFyZ2V0UGF0aDogWydQcm9wZXJ0aWVzJywgcG9saWN5LCAnKiddLFxuICAgICAgICB9KTtcbiAgICAgICAgZ2VuZXJhdGVIaWdoUmlza0NoaWxkKGNvbXBvbmVudEJpbmRpbmdzLCBjb21wb25lbnQsIHtcbiAgICAgICAgICBjaGFuZ2U6IENoYW5nZS5JTlNFUlQsXG4gICAgICAgICAgZXF1YWxzOiAnKicsXG4gICAgICAgICAgc291cmNlUGF0aDogWydQcm9wZXJ0aWVzJywgcG9saWN5LCAnKiddLFxuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50QmluZGluZ3MuY3JlYXRlQ2hpbGQoe1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtcbiAgICAgICAgICAgIENoYW5nZS5JTlNFUlQuYXBwbGllc1RvKGNvbXBvbmVudCksXG4gICAgICAgICAgICBDaGFuZ2UuSU5TRVJULmVxdWFscygnKicsIENoYW5nZVR5cGUuTkVXLCB7IHNvdXJjZVBhdGg6IFsnUHJvcGVydGllcycsIHBvbGljeSwgJyonXSB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJpc2s6IFJ1bGVSaXNrLkhpZ2gsXG4gICAgICAgICAgdGFyZ2V0OiBDaGFuZ2UuSU5TRVJULFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gSW5saW5lIElkZW50aXR5IFBvbGljaWVzXG4gICAgT2JqZWN0LmVudHJpZXMoSUFNX0lOTElORV9JREVOVElUWV9QT0xJQ0lFUykuZm9yRWFjaCgoW3Jlc291cmNlLCBwb2xpY2llc10pID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBwb2xpY2llcy5mb3JFYWNoKHBvbGljeSA9PiB7XG4gICAgICAgIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwgJ1BvbGljeURvY3VtZW50JywgcG9saWN5LCAnKicpO1xuICAgICAgICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwge1xuICAgICAgICAgIGNoYW5nZTogQ2hhbmdlLklOU0VSVF9QUk9QLFxuICAgICAgICAgIGVxdWFsczogJ0FsbG93JyxcbiAgICAgICAgICB0YXJnZXRQYXRoOiBbJ1Byb3BlcnRpZXMnLCBwb2xpY3ksICcqJ10sXG4gICAgICAgICAgc291cmNlUGF0aDogWydQb2xpY3lEb2N1bWVudCcsICdTdGF0ZW1lbnQnLCAnKiddLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gSW5saW5lIFJlc291cmNlIFBvbGljaWVzXG4gICAgT2JqZWN0LmVudHJpZXMoSUFNX0lOTElORV9SRVNPVVJDRV9QT0xJQ0lFUykuZm9yRWFjaCgoW3Jlc291cmNlLCBwb2xpY2llc10pID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBwb2xpY2llcy5mb3JFYWNoKHBvbGljeSA9PiB7XG4gICAgICAgIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwgcG9saWN5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gUG9saWN5IFJlc291cmNlc1xuICAgIElBTV9QT0xJQ1lfUkVTT1VSQ0VTLmZvckVhY2gocmVzb3VyY2UgPT4ge1xuICAgICAgY29uc3QgeyBjb21wb25lbnQsIHJ1bGU6IGNvbXBvbmVudEJpbmRpbmdzIH0gPSBnZW5lcmF0ZUNvbXBvbmVudChyZXNvdXJjZSwgcm9vdEJpbmRpbmdzKTtcbiAgICAgIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICBydWxlcy5hZGRSdWxlcyhyb290QmluZGluZ3MudG9KU09OKCkpO1xuICAgIHJldHVybiBydWxlcztcbiAgfVxufVxuXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWNoYW5nZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBMkM7QUFDM0MsMENBQTBEO0FBQzFELDZDQUFnRztBQUNoRyxpREFBNkM7QUFDN0MsbUVBTXFDO0FBRXJDOzs7R0FHRztBQUNILE1BQWEsVUFBVyxTQUFRLDBCQUFXO0lBQ3pDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUI7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQixNQUFNLFlBQVksR0FBRyxJQUFJLFlBQUksQ0FBQyxDQUFDLGNBQU0sQ0FBQyxNQUFNLEVBQUUsY0FBTSxDQUFDLFdBQVcsRUFBRSxjQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUV2RixxQkFBcUI7UUFDckIseUNBQXFCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDekYsSUFBQSxrQ0FBcUIsRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUU7Z0JBQ2xELE1BQU0sRUFBRSxjQUFNLENBQUMsTUFBTTthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILG1CQUFtQjtRQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLHdDQUFvQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNwRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3pGLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVB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QUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUF4RUQsZ0NBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZVJpc2sgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQ2hhbmdlLCBDaGFuZ2VUeXBlLCBSdWxlIH0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVDb21wb25lbnQsIGdlbmVyYXRlSGlnaFJpc2tDaGlsZCwgZ2VuZXJhdGVTdGF0ZW1lbnRSdWxlcyB9IGZyb20gJy4vZ2VuZXJhdG9ycyc7XG5pbXBvcnQgeyBQcmVzZXRSdWxlcyB9IGZyb20gJy4vcHJlc2V0LXJ1bGVzJztcbmltcG9ydCB7XG4gIElBTV9JTkxJTkVfSURFTlRJVFlfUE9MSUNJRVMsXG4gIElBTV9JTkxJTkVfUkVTT1VSQ0VfUE9MSUNJRVMsXG4gIElBTV9MQU1CREFfUEVSTUlTU0lPTixcbiAgSUFNX01BTkFHRURfUE9MSUNJRVMsXG4gIElBTV9QT0xJQ1lfUkVTT1VSQ0VTLFxufSBmcm9tICcuL3ByaXZhdGUvc2VjdXJpdHktcG9saWNpZXMnO1xuXG4vKipcbiAqIEEgY2xhc3MgY29udGFpbmluZyBzdGF0aWMgcHJlc2V0cyB0aGF0IHJlcHJlc2VudCBsZXZlbHNcbiAqIG9mIHBlcm1pc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgSWFtQ2hhbmdlcyBleHRlbmRzIFByZXNldFJ1bGVzIHtcbiAgLyoqXG4gICAqIFJ1bGVzIHRoYXQgcGVydGFpbiB0byBicm9hZGVuaW5nIHBlcm1pc3Npb25zIGZvclxuICAgKiBJQU0gcG9saWN5L3N0YXRlbWVudCBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCcm9hZGVuaW5nUGVybWlzc2lvbnMoKTogUHJlc2V0UnVsZXMge1xuICAgIGNvbnN0IHJ1bGVzID0gbmV3IElhbUNoYW5nZXMoKTtcbiAgICBjb25zdCByb290QmluZGluZ3MgPSBuZXcgUnVsZShbQ2hhbmdlLklOU0VSVCwgQ2hhbmdlLklOU0VSVF9QUk9QLCBDaGFuZ2UuVVBEQVRFX1BST1BdKTtcblxuICAgIC8vIExhbWJkYSBQZXJtaXNzaW9uc1xuICAgIElBTV9MQU1CREFfUEVSTUlTU0lPTi5mb3JFYWNoKHJlc291cmNlID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwge1xuICAgICAgICBjaGFuZ2U6IENoYW5nZS5JTlNFUlQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIE1hbmFnZWQgUG9saWNpZXNcbiAgICBPYmplY3QuZW50cmllcyhJQU1fTUFOQUdFRF9QT0xJQ0lFUykuZm9yRWFjaCgoW3Jlc291cmNlLCBwb2xpY2llc10pID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBwb2xpY2llcy5mb3JFYWNoKHBvbGljeSA9PiB7XG4gICAgICAgIGdlbmVyYXRlSGlnaFJpc2tDaGlsZChjb21wb25lbnRCaW5kaW5ncywgY29tcG9uZW50LCB7XG4gICAgICAgICAgY2hhbmdlOiBDaGFuZ2UuSU5TRVJUX1BST1AsXG4gICAgICAgICAgdGFyZ2V0UGF0aDogWydQcm9wZXJ0aWVzJywgcG9saWN5LCAnKiddLFxuICAgICAgICB9KTtcbiAgICAgICAgZ2VuZXJhdGVIaWdoUmlza0NoaWxkKGNvbXBvbmVudEJpbmRpbmdzLCBjb21wb25lbnQsIHtcbiAgICAgICAgICBjaGFuZ2U6IENoYW5nZS5JTlNFUlQsXG4gICAgICAgICAgZXF1YWxzOiAnKicsXG4gICAgICAgICAgc291cmNlUGF0aDogWydQcm9wZXJ0aWVzJywgcG9saWN5LCAnKiddLFxuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50QmluZGluZ3MuY3JlYXRlQ2hpbGQoe1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtcbiAgICAgICAgICAgIENoYW5nZS5JTlNFUlQuYXBwbGllc1RvKGNvbXBvbmVudCksXG4gICAgICAgICAgICBDaGFuZ2UuSU5TRVJULmVxdWFscygnKicsIENoYW5nZVR5cGUuTkVXLCB7IHNvdXJjZVBhdGg6IFsnUHJvcGVydGllcycsIHBvbGljeSwgJyonXSB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJpc2s6IFJ1bGVSaXNrLkhpZ2gsXG4gICAgICAgICAgdGFyZ2V0OiBDaGFuZ2UuSU5TRVJULFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gSW5saW5lIElkZW50aXR5IFBvbGljaWVzXG4gICAgT2JqZWN0LmVudHJpZXMoSUFNX0lOTElORV9JREVOVElUWV9QT0xJQ0lFUykuZm9yRWFjaCgoW3Jlc291cmNlLCBwb2xpY2llc10pID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBwb2xpY2llcy5mb3JFYWNoKHBvbGljeSA9PiB7XG4gICAgICAgIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwgJ1BvbGljeURvY3VtZW50JywgcG9saWN5LCAnKicpO1xuICAgICAgICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwge1xuICAgICAgICAgIGNoYW5nZTogQ2hhbmdlLklOU0VSVF9QUk9QLFxuICAgICAgICAgIGVxdWFsczogJ0FsbG93JyxcbiAgICAgICAgICB0YXJnZXRQYXRoOiBbJ1Byb3BlcnRpZXMnLCBwb2xpY3ksICcqJ10sXG4gICAgICAgICAgc291cmNlUGF0aDogWydQb2xpY3lEb2N1bWVudCcsICdTdGF0ZW1lbnQnLCAnKiddLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gSW5saW5lIFJlc291cmNlIFBvbGljaWVzXG4gICAgT2JqZWN0LmVudHJpZXMoSUFNX0lOTElORV9SRVNPVVJDRV9QT0xJQ0lFUykuZm9yRWFjaCgoW3Jlc291cmNlLCBwb2xpY2llc10pID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQocmVzb3VyY2UsIHJvb3RCaW5kaW5ncyk7XG4gICAgICBwb2xpY2llcy5mb3JFYWNoKHBvbGljeSA9PiB7XG4gICAgICAgIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwgcG9saWN5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gUG9saWN5IFJlc291cmNlc1xuICAgIElBTV9QT0xJQ1lfUkVTT1VSQ0VTLmZvckVhY2gocmVzb3VyY2UgPT4ge1xuICAgICAgY29uc3QgeyBjb21wb25lbnQsIHJ1bGU6IGNvbXBvbmVudEJpbmRpbmdzIH0gPSBnZW5lcmF0ZUNvbXBvbmVudChyZXNvdXJjZSwgcm9vdEJpbmRpbmdzKTtcbiAgICAgIGdlbmVyYXRlU3RhdGVtZW50UnVsZXMoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICBydWxlcy5hZGRSdWxlcyhyb290QmluZGluZ3MudG9KU09OKCkpO1xuICAgIHJldHVybiBydWxlcztcbiAgfVxufVxuXG4iXX0= |
@@ -15,9 +15,9 @@ "use strict"; | ||
const rootBindings = new rules_1.Rule([rules_1.Change.ALL, rules_1.Change.INSERT]); | ||
const { component: securityGroup, rule: sgBindings } = generators_1.generateComponent('AWS::EC2::SecurityGroup', rootBindings); | ||
const { component: securityGroup, rule: sgBindings } = (0, generators_1.generateComponent)('AWS::EC2::SecurityGroup', rootBindings); | ||
['Ingress', 'Egress'].forEach(type => { | ||
const { component, rule: componentBindings } = generators_1.generateComponent(`AWS::EC2::SecurityGroup${type}`, rootBindings); | ||
generators_1.generateHighRiskChild(componentBindings, component, { | ||
const { component, rule: componentBindings } = (0, generators_1.generateComponent)(`AWS::EC2::SecurityGroup${type}`, rootBindings); | ||
(0, generators_1.generateHighRiskChild)(componentBindings, component, { | ||
change: rules_1.Change.ALL, | ||
}); | ||
generators_1.generateHighRiskChild(sgBindings, securityGroup, { | ||
(0, generators_1.generateHighRiskChild)(sgBindings, securityGroup, { | ||
change: rules_1.Change.INSERT, | ||
@@ -27,3 +27,3 @@ equals: '*', | ||
}); | ||
generators_1.generateHighRiskChild(sgBindings, securityGroup, { | ||
(0, generators_1.generateHighRiskChild)(sgBindings, securityGroup, { | ||
change: rules_1.Change.ALL, | ||
@@ -38,2 +38,2 @@ targetPath: ['Properties', `SecurityGroup${type}`, '*'], | ||
exports.SecurityGroup = SecurityGroup; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBOEM7QUFDOUMsNkNBQXdFO0FBQ3hFLGlEQUE2QztBQUU3QyxNQUFhLGFBQWMsU0FBUSwwQkFBVztJQUM1Qzs7O09BR0c7SUFDSSxNQUFNLENBQUMscUJBQXFCO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFJLENBQUMsQ0FBQyxjQUFNLENBQUMsR0FBRyxFQUFFLGNBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyw4QkFBaUIsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNsSCxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyw4QkFBaUIsQ0FBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFFakgsa0NBQXFCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFO2dCQUNsRCxNQUFNLEVBQUUsY0FBTSxDQUFDLEdBQUc7YUFDbkIsQ0FBQyxDQUFDO1lBQ0gsa0NBQXFCLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRTtnQkFDL0MsTUFBTSxFQUFFLGNBQU0sQ0FBQyxNQUFNO2dCQUNyQixNQUFNLEVBQUUsR0FBRztnQkFDWCxVQUFVLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQzthQUN4RCxDQUFDLENBQUM7WUFDSCxrQ0FBcUIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFO2dCQUMvQyxNQUFNLEVBQUUsY0FBTSxDQUFDLEdBQUc7Z0JBQ2xCLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDO2FBQ3hELENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQTVCRCxzQ0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2UsIFJ1bGUgfSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUNvbXBvbmVudCwgZ2VuZXJhdGVIaWdoUmlza0NoaWxkIH0gZnJvbSAnLi9nZW5lcmF0b3JzJztcbmltcG9ydCB7IFByZXNldFJ1bGVzIH0gZnJvbSAnLi9wcmVzZXQtcnVsZXMnO1xuXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlHcm91cCBleHRlbmRzIFByZXNldFJ1bGVzIHtcbiAgLyoqXG4gICAqIFJ1bGVzIHRoYXQgcGVydGFpbiB0byBicm9hZGVuaW5nIHBlcm1pc3Npb25zIGZvclxuICAgKiBFQzIgc2VjdXJpdHkgZ3JvdXAgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQnJvYWRlbmluZ1Blcm1pc3Npb25zKCk6IFByZXNldFJ1bGVzIHtcbiAgICBjb25zdCBydWxlcyA9IG5ldyBTZWN1cml0eUdyb3VwKCk7XG4gICAgY29uc3Qgcm9vdEJpbmRpbmdzID0gbmV3IFJ1bGUoW0NoYW5nZS5BTEwsIENoYW5nZS5JTlNFUlRdKTtcbiAgICBjb25zdCB7IGNvbXBvbmVudDogc2VjdXJpdHlHcm91cCwgcnVsZTogc2dCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQoJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywgcm9vdEJpbmRpbmdzKTtcbiAgICBbJ0luZ3Jlc3MnLCAnRWdyZXNzJ10uZm9yRWFjaCh0eXBlID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50LCBydWxlOiBjb21wb25lbnRCaW5kaW5ncyB9ID0gZ2VuZXJhdGVDb21wb25lbnQoYEFXUzo6RUMyOjpTZWN1cml0eUdyb3VwJHt0eXBlfWAsIHJvb3RCaW5kaW5ncyk7XG5cbiAgICAgIGdlbmVyYXRlSGlnaFJpc2tDaGlsZChjb21wb25lbnRCaW5kaW5ncywgY29tcG9uZW50LCB7XG4gICAgICAgIGNoYW5nZTogQ2hhbmdlLkFMTCxcbiAgICAgIH0pO1xuICAgICAgZ2VuZXJhdGVIaWdoUmlza0NoaWxkKHNnQmluZGluZ3MsIHNlY3VyaXR5R3JvdXAsIHtcbiAgICAgICAgY2hhbmdlOiBDaGFuZ2UuSU5TRVJULFxuICAgICAgICBlcXVhbHM6ICcqJyxcbiAgICAgICAgc291cmNlUGF0aDogWydQcm9wZXJ0aWVzJywgYFNlY3VyaXR5R3JvdXAke3R5cGV9YCwgJyonXSxcbiAgICAgIH0pO1xuICAgICAgZ2VuZXJhdGVIaWdoUmlza0NoaWxkKHNnQmluZGluZ3MsIHNlY3VyaXR5R3JvdXAsIHtcbiAgICAgICAgY2hhbmdlOiBDaGFuZ2UuQUxMLFxuICAgICAgICB0YXJnZXRQYXRoOiBbJ1Byb3BlcnRpZXMnLCBgU2VjdXJpdHlHcm91cCR7dHlwZX1gLCAnKiddLFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcnVsZXMuYWRkUnVsZXMocm9vdEJpbmRpbmdzLnRvSlNPTigpKTtcbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cbn1cblxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBOEM7QUFDOUMsNkNBQXdFO0FBQ3hFLGlEQUE2QztBQUU3QyxNQUFhLGFBQWMsU0FBUSwwQkFBVztJQUM1Qzs7O09BR0c7SUFDSSxNQUFNLENBQUMscUJBQXFCO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFJLENBQUMsQ0FBQyxjQUFNLENBQUMsR0FBRyxFQUFFLGNBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xILENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBRWpILElBQUEsa0NBQXFCLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFO2dCQUNsRCxNQUFNLEVBQUUsY0FBTSxDQUFDLEdBQUc7YUFDbkIsQ0FBQyxDQUFDO1lBQ0gsSUFBQSxrQ0FBcUIsRUFBQyxVQUFVLEVBQUUsYUFBYSxFQUFFO2dCQUMvQyxNQUFNLEVBQUUsY0FBTSxDQUFDLE1BQU07Z0JBQ3JCLE1BQU0sRUFBRSxHQUFHO2dCQUNYLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDO2FBQ3hELENBQUMsQ0FBQztZQUNILElBQUEsa0NBQXFCLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRTtnQkFDL0MsTUFBTSxFQUFFLGNBQU0sQ0FBQyxHQUFHO2dCQUNsQixVQUFVLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQzthQUN4RCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUE1QkQsc0NBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlLCBSdWxlIH0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVDb21wb25lbnQsIGdlbmVyYXRlSGlnaFJpc2tDaGlsZCB9IGZyb20gJy4vZ2VuZXJhdG9ycyc7XG5pbXBvcnQgeyBQcmVzZXRSdWxlcyB9IGZyb20gJy4vcHJlc2V0LXJ1bGVzJztcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5R3JvdXAgZXh0ZW5kcyBQcmVzZXRSdWxlcyB7XG4gIC8qKlxuICAgKiBSdWxlcyB0aGF0IHBlcnRhaW4gdG8gYnJvYWRlbmluZyBwZXJtaXNzaW9ucyBmb3JcbiAgICogRUMyIHNlY3VyaXR5IGdyb3VwIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEJyb2FkZW5pbmdQZXJtaXNzaW9ucygpOiBQcmVzZXRSdWxlcyB7XG4gICAgY29uc3QgcnVsZXMgPSBuZXcgU2VjdXJpdHlHcm91cCgpO1xuICAgIGNvbnN0IHJvb3RCaW5kaW5ncyA9IG5ldyBSdWxlKFtDaGFuZ2UuQUxMLCBDaGFuZ2UuSU5TRVJUXSk7XG4gICAgY29uc3QgeyBjb21wb25lbnQ6IHNlY3VyaXR5R3JvdXAsIHJ1bGU6IHNnQmluZGluZ3MgfSA9IGdlbmVyYXRlQ29tcG9uZW50KCdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsIHJvb3RCaW5kaW5ncyk7XG4gICAgWydJbmdyZXNzJywgJ0VncmVzcyddLmZvckVhY2godHlwZSA9PiB7XG4gICAgICBjb25zdCB7IGNvbXBvbmVudCwgcnVsZTogY29tcG9uZW50QmluZGluZ3MgfSA9IGdlbmVyYXRlQ29tcG9uZW50KGBBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCR7dHlwZX1gLCByb290QmluZGluZ3MpO1xuXG4gICAgICBnZW5lcmF0ZUhpZ2hSaXNrQ2hpbGQoY29tcG9uZW50QmluZGluZ3MsIGNvbXBvbmVudCwge1xuICAgICAgICBjaGFuZ2U6IENoYW5nZS5BTEwsXG4gICAgICB9KTtcbiAgICAgIGdlbmVyYXRlSGlnaFJpc2tDaGlsZChzZ0JpbmRpbmdzLCBzZWN1cml0eUdyb3VwLCB7XG4gICAgICAgIGNoYW5nZTogQ2hhbmdlLklOU0VSVCxcbiAgICAgICAgZXF1YWxzOiAnKicsXG4gICAgICAgIHNvdXJjZVBhdGg6IFsnUHJvcGVydGllcycsIGBTZWN1cml0eUdyb3VwJHt0eXBlfWAsICcqJ10sXG4gICAgICB9KTtcbiAgICAgIGdlbmVyYXRlSGlnaFJpc2tDaGlsZChzZ0JpbmRpbmdzLCBzZWN1cml0eUdyb3VwLCB7XG4gICAgICAgIGNoYW5nZTogQ2hhbmdlLkFMTCxcbiAgICAgICAgdGFyZ2V0UGF0aDogWydQcm9wZXJ0aWVzJywgYFNlY3VyaXR5R3JvdXAke3R5cGV9YCwgJyonXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJ1bGVzLmFkZFJ1bGVzKHJvb3RCaW5kaW5ncy50b0pTT04oKSk7XG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG59XG5cbiJdfQ== |
{ | ||
"name": "@aws-c2a/presets", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"description": "The preset rules for CDK Change Analyzer", | ||
@@ -30,9 +30,9 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"@aws-c2a/engine": "^0.5.0", | ||
"@aws-c2a/models": "^0.5.0", | ||
"@aws-c2a/rules": "^0.5.0", | ||
"@aws-c2a/engine": "^0.6.0", | ||
"@aws-c2a/models": "^0.6.0", | ||
"@aws-c2a/rules": "^0.6.0", | ||
"fifinet": "0.1.7" | ||
}, | ||
"devDependencies": { | ||
"@aws-cdk/core": "^1.115.0", | ||
"@aws-cdk/core": "1.115.0", | ||
"@babel/core": "^7.12.13", | ||
@@ -57,3 +57,3 @@ "@babel/preset-env": "^7.12.13", | ||
}, | ||
"gitHead": "ca8a2214e9258a7193110857687cb90320fc20ac" | ||
"gitHead": "e8b1afb56d7ea4d1eb54a44a654b4d161f8b9ccb" | ||
} |
@@ -17,13 +17,13 @@ "use strict"; | ||
security_policies_1.IAM_POLICY_RESOURCES.slice(-1).forEach(resource => { | ||
utils_1.behavior(`new resource ${resource}`, (suite) => { | ||
(0, utils_1.behavior)(`new resource ${resource}`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'Allow' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'Allow' }]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources[resource.replace(/::/g, '-')] = { | ||
@@ -36,16 +36,16 @@ Type: resource, | ||
}); | ||
utils_1.behavior(`addition to statement property in ${resource}`, (suite) => { | ||
(0, utils_1.behavior)(`addition to statement property in ${resource}`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = utils_1.cfnWithPolicyDocument(BEFORE, resource); | ||
const before = (0, utils_1.cfnWithPolicyDocument)(BEFORE, resource); | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties.PolicyDocument.Statement.push(statement); | ||
@@ -55,17 +55,17 @@ return { after, _oldModel }; | ||
}); | ||
utils_1.behavior(`update to existing policy statement in ${resource}`, (suite) => { | ||
(0, utils_1.behavior)(`update to existing policy statement in ${resource}`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement, utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.UPDATE, [ALLOW, DENY]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.UPDATE, [ALLOW, DENY]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement, utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(oldStatement, newStatement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = utils_1.cfnWithPolicyDocument(BEFORE, resource); | ||
const before = (0, utils_1.cfnWithPolicyDocument)(BEFORE, resource); | ||
before.Resources[id].Properties.PolicyDocument.Statement[0] = oldStatement; | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties.PolicyDocument.Statement[0] = newStatement; | ||
@@ -81,3 +81,3 @@ return { after, _oldModel }; | ||
// GIVEN | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources.LambdaPermission = { | ||
@@ -87,7 +87,7 @@ Type: resource, | ||
}; | ||
utils_1.THEN_expectResource(after, oldModel, models_1.OperationType.INSERT, [{ value: 'Test' }]); | ||
(0, utils_1.THEN_expectResource)(after, oldModel, models_1.OperationType.INSERT, [{ value: 'Test' }]); | ||
}); | ||
test('removing lambda permission is ignored', () => { | ||
// GIVEN | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources.LambdaPermission = { | ||
@@ -98,3 +98,3 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
utils_1.THEN_expectNoResults(BEFORE, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(BEFORE, _oldModel); | ||
}); | ||
@@ -108,3 +108,3 @@ }); | ||
const id = resource.replace(/::/g, '-'); | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources[id] = { | ||
@@ -115,3 +115,3 @@ Type: resource, | ||
// THEN | ||
utils_1.THEN_expectResource(after, oldModel, models_1.OperationType.INSERT, [{ value: '123456789' }]); | ||
(0, utils_1.THEN_expectResource)(after, oldModel, models_1.OperationType.INSERT, [{ value: '123456789' }]); | ||
}); | ||
@@ -121,3 +121,3 @@ test(`detect additions to managed policy arns in ${resource} resource`, () => { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -128,5 +128,5 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties[policy].push('abcdefghi'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'abcdefghi' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'abcdefghi' }]); | ||
}); | ||
@@ -139,14 +139,14 @@ }); | ||
policies.forEach(_policy => { | ||
utils_1.behavior(`addition to statement property in ${resource} resource`, (suite) => { | ||
(0, utils_1.behavior)(`addition to statement property in ${resource} resource`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -157,3 +157,3 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties.Policies[0].PolicyDocument.Statement.push(statement); | ||
@@ -163,14 +163,14 @@ return { after, _oldModel }; | ||
}); | ||
utils_1.behavior(`addition to empty policies property in ${resource} resource`, (suite) => { | ||
(0, utils_1.behavior)(`addition to empty policies property in ${resource} resource`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -181,3 +181,3 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties.Policies.push({ PolicyDocument: { Statement: [statement] } }); | ||
@@ -187,14 +187,14 @@ return { after, _oldModel }; | ||
}); | ||
utils_1.behavior(`new ${resource} resource`, (suite) => { | ||
(0, utils_1.behavior)(`new ${resource} resource`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'Allow' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'Allow' }]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources[id] = { | ||
@@ -215,14 +215,14 @@ Type: resource, | ||
policies.forEach(policy => { | ||
utils_1.behavior(`new ${resource} resource and statement property, ${policy},`, (suite) => { | ||
(0, utils_1.behavior)(`new ${resource} resource and statement property, ${policy},`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'Allow' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: 'Allow' }]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources[id] = { | ||
@@ -235,14 +235,14 @@ Type: resource, | ||
}); | ||
utils_1.behavior(`addition to statement property, ${policy}, in ${resource}`, (suite) => { | ||
(0, utils_1.behavior)(`addition to statement property, ${policy}, in ${resource}`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [ALLOW]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(statement) { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -253,3 +253,3 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties[policy].Statement.push(statement); | ||
@@ -259,14 +259,14 @@ return { after, _oldModel }; | ||
}); | ||
utils_1.behavior(`update to statement property, ${policy}, in ${resource}`, (suite) => { | ||
(0, utils_1.behavior)(`update to statement property, ${policy}, in ${resource}`, (suite) => { | ||
suite.allow(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryNegativePolicyStatement, utils_1.arbitraryPolicyStatement); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.UPDATE, [ALLOW, DENY]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.UPDATE, [ALLOW, DENY]); | ||
}); | ||
suite.deny(() => { | ||
const { after, _oldModel } = GIVEN(utils_1.arbitraryPolicyStatement, utils_1.arbitraryNegativePolicyStatement); | ||
utils_1.THEN_expectNoResults(after, _oldModel); | ||
(0, utils_1.THEN_expectNoResults)(after, _oldModel); | ||
}); | ||
function GIVEN(oldPolicy, newPolicy) { | ||
const id = resource.replace(/::/g, '-'); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -277,3 +277,3 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties[policy].Statement[0] = newPolicy; | ||
@@ -286,2 +286,2 @@ return { after, _oldModel }; | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXBvbGljeS1ydWxlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaWFtLXBvbGljeS1ydWxlcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBQTJDO0FBQzNDLDRDQUE0RDtBQUM1RCxrREFBNkM7QUFDN0Msd0VBQTBKO0FBQzFKLG1DQUFzTDtBQUV0TCxNQUFNLE1BQU0sR0FBcUIsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDbkQsTUFBTSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDakMsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFL0IsSUFBSSxRQUFvQixDQUFDO0FBQ3pCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDYixRQUFRLEdBQUcsSUFBSSxpQkFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsd0NBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2hELGdCQUFRLENBQUMsZ0JBQWdCLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDN0MsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsR0FBRyxLQUFLLENBQUMsZ0NBQXdCLENBQUMsQ0FBQztnQkFDM0QsMkJBQW1CLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQztZQUVILEtBQUssQ0FBQyxJ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U0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUVoRSxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDO2dCQUM1QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDRlBhcnNlciB9IGZyb20gJ0Bhd3MtYzJhL2VuZ2luZSc7XG5pbXBvcnQgeyBJbmZyYU1vZGVsLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGNvcHkgfSBmcm9tICcuLi9saWIvcHJpdmF0ZS9vYmplY3QnO1xuaW1wb3J0IHsgSUFNX0lOTElORV9JREVOVElUWV9QT0xJQ0lFUywgSUFNX0lOTElORV9SRVNPVVJDRV9QT0xJQ0lFUywgSUFNX01BTkFHRURfUE9MSUNJRVMsIElBTV9QT0xJQ1lfUkVTT1VSQ0VTIH0gZnJvbSAnLi4vbGliL3ByaXZhdGUvc2VjdXJpdHktcG9saWNpZXMnO1xuaW1wb3J0IHsgYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50LCBiZWhhdmlvciwgY2ZuV2l0aFBvbGljeURvY3VtZW50LCBhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCwgVEhFTl9leHBlY3RSZXNvdXJjZSwgVEhFTl9leHBlY3ROb1Jlc3VsdHMsIFRIRU5fZXhwZWN0UHJvcGVydHkgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgQkVGT1JFOiBSZWNvcmQ8YW55LCBhbnk+ID0geyBSZXNvdXJjZXM6IHt9IH07XG5jb25zdCBBTExPVyA9IHsgdmFsdWU6ICdBbGxvdycgfTtcbmNvbnN0IERFTlkgPSB7IHZhbHVlOiAnRGVueScgfTtcblxubGV0IG9sZE1vZGVsOiBJbmZyYU1vZGVsO1xuYmVmb3JlQWxsKCgpID0+IHtcbiAgb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBCRUZPUkUpLnBhcnNlKCk7XG59KTtcblxuZGVzY3JpYmUoJ3BvbGljeSByZXNvdXJjZXMnLCAoKSA9PiB7XG4gIElBTV9QT0xJQ1lfUkVTT1VSQ0VTLnNsaWNlKC0xKS5mb3JFYWNoKHJlc291cmNlID0+IHtcbiAgICBiZWhhdmlvcihgbmV3IHJlc291cmNlICR7cmVzb3VyY2V9YCwgKHN1aXRlKSA9PiB7XG4gICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICdBbGxvdyd9XSk7XG4gICAgICB9KTtcblxuICAgICAgc3VpdGUuZGVueSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICB9KTtcblxuICAgICAgZnVuY3Rpb24gR0lWRU4oc3RhdGVtZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgIGFmdGVyLlJlc291cmNlc1tyZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpXSA9IHtcbiAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogW3N0YXRlbWVudF0gfSB9LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGJlaGF2aW9yKGBhZGRpdGlvbiB0byBzdGF0ZW1lbnQgcHJvcGVydHkgaW4gJHtyZXNvdXJjZX1gLCAoc3VpdGUpID0+IHtcbiAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW0FMTE9XXSk7XG4gICAgICB9KTtcblxuICAgICAgc3VpdGUuZGVueSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICB9KTtcblxuICAgICAgZnVuY3Rpb24gR0lWRU4gKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJy0nKTtcbiAgICAgICAgY29uc3QgYmVmb3JlID0gY2ZuV2l0aFBvbGljeURvY3VtZW50KEJFRk9SRSwgcmVzb3VyY2UpO1xuICAgICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICAgIGFmdGVyLlJlc291cmNlc1tpZF0uUHJvcGVydGllcy5Qb2xpY3lEb2N1bWVudC5TdGF0ZW1lbnQucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWx9O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYmVoYXZpb3IoYHVwZGF0ZSB0byBleGlzdGluZyBwb2xpY3kgc3RhdGVtZW50IGluICR7cmVzb3VyY2V9YCwgKHN1aXRlKSA9PiB7XG4gICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50LCBhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuVVBEQVRFLCBbQUxMT1csIERFTlldKTtcbiAgICAgIH0pO1xuXG4gICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50LCBhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgIFRIRU5fZXhwZWN0Tm9SZXN1bHRzKGFmdGVyLCBfb2xkTW9kZWwpO1xuICAgICAgfSk7XG5cbiAgICAgIGZ1bmN0aW9uIEdJVkVOKG9sZFN0YXRlbWVudDogYW55LCBuZXdTdGF0ZW1lbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gICAgICAgIGNvbnN0IGJlZm9yZSA9IGNmbldpdGhQb2xpY3lEb2N1bWVudChCRUZPUkUsIHJlc291cmNlKTtcbiAgICAgICAgYmVmb3JlLlJlc291cmNlc1tpZF0uUHJvcGVydGllcy5Qb2xpY3lEb2N1bWVudC5TdGF0ZW1lbnRbMF0gPSBvbGRTdGF0ZW1lbnQ7XG4gICAgICAgIGNvbnN0IF9vbGRNb2RlbCA9IG5ldyBDRlBhcnNlcigncm9vdCcsIGJlZm9yZSkucGFyc2UoKTtcblxuICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzLlBvbGljeURvY3VtZW50LlN0YXRlbWVudFswXSA9IG5ld1N0YXRlbWVudDtcbiAgICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2xhbWJkYSBwZXJtaXNzaW9ucycsICgpID0+IHtcbiAgY29uc3QgcmVzb3VyY2UgPSAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nO1xuICB0ZXN0KCdhZGRpbmcgbmV3IGxhbWJkYSBwZXJtaXNzaW9ucyBpcyBkZXRlY3RlZCcsICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgIGFmdGVyLlJlc291cmNlcy5MYW1iZGFQZXJtaXNzaW9uID0ge1xuICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICBQcm9wZXJ0aWVzOiB7IEZ1bmN0aW9uTmFtZTogJ1Rlc3QnIH0sXG4gICAgfTtcblxuICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIG9sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3sgdmFsdWU6ICdUZXN0JyB9XSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3JlbW92aW5nIGxhbWJkYSBwZXJtaXNzaW9uIGlzIGlnbm9yZWQnLCAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgYmVmb3JlLlJlc291cmNlcy5MYW1iZGFQZXJtaXNzaW9uID0ge1xuICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICBQcm9wZXJ0aWVzOiB7IH0sXG4gICAgfTtcbiAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICBUSEVOX2V4cGVjdE5vUmVzdWx0cyhCRUZPUkUsIF9vbGRNb2RlbCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdtYW5hZ2VkIHBvbGljeSBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICBPYmplY3QuZW50cmllcyhJQU1fTUFOQUdFRF9QT0xJQ0lFUykuc2xpY2UoLTEpLmZvckVhY2goKFtyZXNvdXJjZSwgcG9saWNpZXNdKSA9PiB7XG4gICAgcG9saWNpZXMuZm9yRWFjaChwb2xpY3kgPT4ge1xuICAgICAgdGVzdChgZGV0ZWN0IGFkZGl0aW9uIG9mIG5ldyAke3Jlc291cmNlfSByZXNvdXJjZWAsICgpID0+IHtcbiAgICAgICAgLy8gR0lWRU5cbiAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoQkVGT1JFKTtcbiAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7IFtwb2xpY3ldOiBbJzEyMzQ1Njc4OSddIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gVEhFTlxuICAgICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBvbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICcxMjM0NTY3ODknfV0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRlc3QoYGRldGVjdCBhZGRpdGlvbnMgdG8gbWFuYWdlZCBwb2xpY3kgYXJucyBpbiAke3Jlc291cmNlfSByZXNvdXJjZWAsICgpID0+IHtcbiAgICAgICAgLy8gR0lWRU5cbiAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgIGJlZm9yZS5SZXNvdXJjZXNbaWRdID0ge1xuICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHsgW3BvbGljeV06IFsnMTIzNDU2Nzg5J10gfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICAgIGNvbnN0IGFmdGVyID0gY29weShiZWZvcmUpO1xuICAgICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXNbcG9saWN5XS5wdXNoKCdhYmNkZWZnaGknKTtcblxuICAgICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbeyB2YWx1ZTogJ2FiY2RlZmdoaScgfV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdpbmxpbmUgaWRlbnRpdHkgcG9saWN5IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIE9iamVjdC5lbnRyaWVzKElBTV9JTkxJTkVfSURFTlRJVFlfUE9MSUNJRVMpLnNsaWNlKC0xKS5mb3JFYWNoKChbcmVzb3VyY2UsIHBvbGljaWVzXSkgPT4ge1xuICAgIHBvbGljaWVzLmZvckVhY2goX3BvbGljeSA9PiB7XG4gICAgICBiZWhhdmlvcihgYWRkaXRpb24gdG8gc3RhdGVtZW50IHByb3BlcnR5IGluICR7cmVzb3VyY2V9IHJlc291cmNlYCwgKHN1aXRlKSA9PiB7XG4gICAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFtBTExPV10pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIEdJVkVOKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IGNvcHkoQkVGT1JFKTtcbiAgICAgICAgICBiZWZvcmUuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgICAgUHJvcGVydGllczogeyBQb2xpY2llczogWyB7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogWyBhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQgXSB9IH0gXSB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzLlBvbGljaWVzWzBdLlBvbGljeURvY3VtZW50LlN0YXRlbWVudC5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGJlaGF2aW9yKGBhZGRpdGlvbiB0byBlbXB0eSBwb2xpY2llcyBwcm9wZXJ0eSBpbiAke3Jlc291cmNlfSByZXNvdXJjZWAsIChzdWl0ZSkgPT4ge1xuICAgICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbQUxMT1ddKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3VpdGUuZGVueSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0Tm9SZXN1bHRzKGFmdGVyLCBfb2xkTW9kZWwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBHSVZFTihzdGF0ZW1lbnQ6IGFueSkge1xuICAgICAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJy0nKTtcbiAgICAgICAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgICAgYmVmb3JlLlJlc291cmNlc1tpZF0gPSB7XG4gICAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICAgIFByb3BlcnRpZXM6IHsgUG9saWNpZXM6IFtdIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXMuUG9saWNpZXMucHVzaCh7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogWyBzdGF0ZW1lbnQgXSB9IH0pO1xuICAgICAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBiZWhhdmlvcihgbmV3ICR7cmVzb3VyY2V9IHJlc291cmNlYCwgKHN1aXRlKSA9PiB7XG4gICAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICdBbGxvdyd9XSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN1aXRlLmRlbnkoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgICBUSEVOX2V4cGVjdE5vUmVzdWx0cyhhZnRlciwgX29sZE1vZGVsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZnVuY3Rpb24gR0lWRU4oc3RhdGVtZW50OiBhbnkpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICBQb2xpY2llczogWyB7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogW3N0YXRlbWVudF0gfSB9IF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdpbmxpbmUgcmVzb3VyY2UgcG9saWN5IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIE9iamVjdC5lbnRyaWVzKElBTV9JTkxJTkVfUkVTT1VSQ0VfUE9MSUNJRVMpLnNsaWNlKC0xKS5mb3JFYWNoKChbcmVzb3VyY2UsIHBvbGljaWVzXSkgPT4ge1xuICAgIHBvbGljaWVzLmZvckVhY2gocG9saWN5ID0+IHtcbiAgICAgIGJlaGF2aW9yKGBuZXcgJHtyZXNvdXJjZX0gcmVzb3VyY2UgYW5kIHN0YXRlbWVudCBwcm9wZXJ0eSwgJHtwb2xpY3l9LGAsIChzdWl0ZSkgPT4ge1xuICAgICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbe3ZhbHVlOiAnQWxsb3cnfV0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIEdJVkVOKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgICAgICAgIGFmdGVyLlJlc291cmNlc1tpZF0gPSB7XG4gICAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICAgIFByb3BlcnRpZXM6IHsgW3BvbGljeV06IHsgU3RhdGVtZW50OiBbIHN0YXRlbWVudCBdIH0gfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsOiBvbGRNb2RlbH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBiZWhhdmlvcihgYWRkaXRpb24gdG8gc3RhdGVtZW50IHByb3BlcnR5LCAke3BvbGljeX0sIGluICR7cmVzb3VyY2V9YCwgKHN1aXRlKSA9PiB7XG4gICAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFtBTExPV10pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIEdJVkVOKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IGNvcHkoQkVGT1JFKTtcbiAgICAgICAgICBiZWZvcmUuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgICAgUHJvcGVydGllczogeyBbcG9saWN5XTogeyBTdGF0ZW1lbnQ6IFsgYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50IF0gfSB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzW3BvbGljeV0uU3RhdGVtZW50LnB1c2goc3RhdGVtZW50KTtcblxuICAgICAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBiZWhhdmlvcihgdXBkYXRlIHRvIHN0YXRlbWVudCBwcm9wZXJ0eSwgJHtwb2xpY3l9LCBpbiAke3Jlc291cmNlfWAsIChzdWl0ZSkgPT4ge1xuICAgICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQsIGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlVQREFURSwgW0FMTE9XLCBERU5ZXSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN1aXRlLmRlbnkoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCwgYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0Tm9SZXN1bHRzKGFmdGVyLCBfb2xkTW9kZWwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBHSVZFTihvbGRQb2xpY3k6IGFueSwgbmV3UG9saWN5OiBhbnkpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gICAgICAgICAgY29uc3QgYmVmb3JlID0gY29weShCRUZPUkUpO1xuICAgICAgICAgIGJlZm9yZS5SZXNvdXJjZXNbaWRdID0ge1xuICAgICAgICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICAgICAgICBQcm9wZXJ0aWVzOiB7IFtwb2xpY3ldOiB7IFN0YXRlbWVudDogWyBvbGRQb2xpY3kgXSB9IH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXNbcG9saWN5XS5TdGF0ZW1lbnRbMF0gPSBuZXdQb2xpY3k7XG5cbiAgICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWx9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTsiXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXBvbGljeS1ydWxlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaWFtLXBvbGljeS1ydWxlcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBQTJDO0FBQzNDLDRDQUE0RDtBQUM1RCxrREFBNkM7QUFDN0Msd0VBQTBKO0FBQzFKLG1DQUFzTDtBQUV0TCxNQUFNLE1BQU0sR0FBcUIsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDbkQsTUFBTSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDakMsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFL0IsSUFBSSxRQUFvQixDQUFDO0FBQ3pCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDYixRQUFRLEdBQUcsSUFBSSxpQkFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsd0NBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2hELElBQUEsZ0JBQVEsRUFBQyxnQkFBZ0IsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM3QyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxHQUFHLEtBQUssQ0FBQyxnQ0FBd0IsQ0FBQyxDQUFDO2dCQUMzRCxJQUFBLDJCQUFtQixFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsc0JBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEYsQ0FBQyxDQUFDLENBQUM7WUFFSCxL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LElBQUksRUFBRSxRQUFRO3dCQUNkLFVBQVUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBRSxTQUFTLENBQUUsRUFBRSxFQUFFO3FCQUN2RCxDQUFDO29CQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksaUJBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRXZELE1BQU0sS0FBSyxHQUFHLElBQUEsYUFBSSxFQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUVoRSxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDO2dCQUM1QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDRlBhcnNlciB9IGZyb20gJ0Bhd3MtYzJhL2VuZ2luZSc7XG5pbXBvcnQgeyBJbmZyYU1vZGVsLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGNvcHkgfSBmcm9tICcuLi9saWIvcHJpdmF0ZS9vYmplY3QnO1xuaW1wb3J0IHsgSUFNX0lOTElORV9JREVOVElUWV9QT0xJQ0lFUywgSUFNX0lOTElORV9SRVNPVVJDRV9QT0xJQ0lFUywgSUFNX01BTkFHRURfUE9MSUNJRVMsIElBTV9QT0xJQ1lfUkVTT1VSQ0VTIH0gZnJvbSAnLi4vbGliL3ByaXZhdGUvc2VjdXJpdHktcG9saWNpZXMnO1xuaW1wb3J0IHsgYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50LCBiZWhhdmlvciwgY2ZuV2l0aFBvbGljeURvY3VtZW50LCBhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCwgVEhFTl9leHBlY3RSZXNvdXJjZSwgVEhFTl9leHBlY3ROb1Jlc3VsdHMsIFRIRU5fZXhwZWN0UHJvcGVydHkgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgQkVGT1JFOiBSZWNvcmQ8YW55LCBhbnk+ID0geyBSZXNvdXJjZXM6IHt9IH07XG5jb25zdCBBTExPVyA9IHsgdmFsdWU6ICdBbGxvdycgfTtcbmNvbnN0IERFTlkgPSB7IHZhbHVlOiAnRGVueScgfTtcblxubGV0IG9sZE1vZGVsOiBJbmZyYU1vZGVsO1xuYmVmb3JlQWxsKCgpID0+IHtcbiAgb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBCRUZPUkUpLnBhcnNlKCk7XG59KTtcblxuZGVzY3JpYmUoJ3BvbGljeSByZXNvdXJjZXMnLCAoKSA9PiB7XG4gIElBTV9QT0xJQ1lfUkVTT1VSQ0VTLnNsaWNlKC0xKS5mb3JFYWNoKHJlc291cmNlID0+IHtcbiAgICBiZWhhdmlvcihgbmV3IHJlc291cmNlICR7cmVzb3VyY2V9YCwgKHN1aXRlKSA9PiB7XG4gICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICdBbGxvdyd9XSk7XG4gICAgICB9KTtcblxuICAgICAgc3VpdGUuZGVueSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICB9KTtcblxuICAgICAgZnVuY3Rpb24gR0lWRU4oc3RhdGVtZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgIGFmdGVyLlJlc291cmNlc1tyZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpXSA9IHtcbiAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogW3N0YXRlbWVudF0gfSB9LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGJlaGF2aW9yKGBhZGRpdGlvbiB0byBzdGF0ZW1lbnQgcHJvcGVydHkgaW4gJHtyZXNvdXJjZX1gLCAoc3VpdGUpID0+IHtcbiAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW0FMTE9XXSk7XG4gICAgICB9KTtcblxuICAgICAgc3VpdGUuZGVueSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICB9KTtcblxuICAgICAgZnVuY3Rpb24gR0lWRU4gKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJy0nKTtcbiAgICAgICAgY29uc3QgYmVmb3JlID0gY2ZuV2l0aFBvbGljeURvY3VtZW50KEJFRk9SRSwgcmVzb3VyY2UpO1xuICAgICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICAgIGFmdGVyLlJlc291cmNlc1tpZF0uUHJvcGVydGllcy5Qb2xpY3lEb2N1bWVudC5TdGF0ZW1lbnQucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWx9O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYmVoYXZpb3IoYHVwZGF0ZSB0byBleGlzdGluZyBwb2xpY3kgc3RhdGVtZW50IGluICR7cmVzb3VyY2V9YCwgKHN1aXRlKSA9PiB7XG4gICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50LCBhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuVVBEQVRFLCBbQUxMT1csIERFTlldKTtcbiAgICAgIH0pO1xuXG4gICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50LCBhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgIFRIRU5fZXhwZWN0Tm9SZXN1bHRzKGFmdGVyLCBfb2xkTW9kZWwpO1xuICAgICAgfSk7XG5cbiAgICAgIGZ1bmN0aW9uIEdJVkVOKG9sZFN0YXRlbWVudDogYW55LCBuZXdTdGF0ZW1lbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gICAgICAgIGNvbnN0IGJlZm9yZSA9IGNmbldpdGhQb2xpY3lEb2N1bWVudChCRUZPUkUsIHJlc291cmNlKTtcbiAgICAgICAgYmVmb3JlLlJlc291cmNlc1tpZF0uUHJvcGVydGllcy5Qb2xpY3lEb2N1bWVudC5TdGF0ZW1lbnRbMF0gPSBvbGRTdGF0ZW1lbnQ7XG4gICAgICAgIGNvbnN0IF9vbGRNb2RlbCA9IG5ldyBDRlBhcnNlcigncm9vdCcsIGJlZm9yZSkucGFyc2UoKTtcblxuICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzLlBvbGljeURvY3VtZW50LlN0YXRlbWVudFswXSA9IG5ld1N0YXRlbWVudDtcbiAgICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2xhbWJkYSBwZXJtaXNzaW9ucycsICgpID0+IHtcbiAgY29uc3QgcmVzb3VyY2UgPSAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nO1xuICB0ZXN0KCdhZGRpbmcgbmV3IGxhbWJkYSBwZXJtaXNzaW9ucyBpcyBkZXRlY3RlZCcsICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgIGFmdGVyLlJlc291cmNlcy5MYW1iZGFQZXJtaXNzaW9uID0ge1xuICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICBQcm9wZXJ0aWVzOiB7IEZ1bmN0aW9uTmFtZTogJ1Rlc3QnIH0sXG4gICAgfTtcblxuICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIG9sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3sgdmFsdWU6ICdUZXN0JyB9XSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3JlbW92aW5nIGxhbWJkYSBwZXJtaXNzaW9uIGlzIGlnbm9yZWQnLCAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgYmVmb3JlLlJlc291cmNlcy5MYW1iZGFQZXJtaXNzaW9uID0ge1xuICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICBQcm9wZXJ0aWVzOiB7IH0sXG4gICAgfTtcbiAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICBUSEVOX2V4cGVjdE5vUmVzdWx0cyhCRUZPUkUsIF9vbGRNb2RlbCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdtYW5hZ2VkIHBvbGljeSBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICBPYmplY3QuZW50cmllcyhJQU1fTUFOQUdFRF9QT0xJQ0lFUykuc2xpY2UoLTEpLmZvckVhY2goKFtyZXNvdXJjZSwgcG9saWNpZXNdKSA9PiB7XG4gICAgcG9saWNpZXMuZm9yRWFjaChwb2xpY3kgPT4ge1xuICAgICAgdGVzdChgZGV0ZWN0IGFkZGl0aW9uIG9mIG5ldyAke3Jlc291cmNlfSByZXNvdXJjZWAsICgpID0+IHtcbiAgICAgICAgLy8gR0lWRU5cbiAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoQkVGT1JFKTtcbiAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7IFtwb2xpY3ldOiBbJzEyMzQ1Njc4OSddIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gVEhFTlxuICAgICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBvbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICcxMjM0NTY3ODknfV0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRlc3QoYGRldGVjdCBhZGRpdGlvbnMgdG8gbWFuYWdlZCBwb2xpY3kgYXJucyBpbiAke3Jlc291cmNlfSByZXNvdXJjZWAsICgpID0+IHtcbiAgICAgICAgLy8gR0lWRU5cbiAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgIGJlZm9yZS5SZXNvdXJjZXNbaWRdID0ge1xuICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHsgW3BvbGljeV06IFsnMTIzNDU2Nzg5J10gfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICAgIGNvbnN0IGFmdGVyID0gY29weShiZWZvcmUpO1xuICAgICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXNbcG9saWN5XS5wdXNoKCdhYmNkZWZnaGknKTtcblxuICAgICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbeyB2YWx1ZTogJ2FiY2RlZmdoaScgfV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdpbmxpbmUgaWRlbnRpdHkgcG9saWN5IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIE9iamVjdC5lbnRyaWVzKElBTV9JTkxJTkVfSURFTlRJVFlfUE9MSUNJRVMpLnNsaWNlKC0xKS5mb3JFYWNoKChbcmVzb3VyY2UsIHBvbGljaWVzXSkgPT4ge1xuICAgIHBvbGljaWVzLmZvckVhY2goX3BvbGljeSA9PiB7XG4gICAgICBiZWhhdmlvcihgYWRkaXRpb24gdG8gc3RhdGVtZW50IHByb3BlcnR5IGluICR7cmVzb3VyY2V9IHJlc291cmNlYCwgKHN1aXRlKSA9PiB7XG4gICAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFtBTExPV10pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIEdJVkVOKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IGNvcHkoQkVGT1JFKTtcbiAgICAgICAgICBiZWZvcmUuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgICAgUHJvcGVydGllczogeyBQb2xpY2llczogWyB7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogWyBhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQgXSB9IH0gXSB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzLlBvbGljaWVzWzBdLlBvbGljeURvY3VtZW50LlN0YXRlbWVudC5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGJlaGF2aW9yKGBhZGRpdGlvbiB0byBlbXB0eSBwb2xpY2llcyBwcm9wZXJ0eSBpbiAke3Jlc291cmNlfSByZXNvdXJjZWAsIChzdWl0ZSkgPT4ge1xuICAgICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbQUxMT1ddKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3VpdGUuZGVueSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0Tm9SZXN1bHRzKGFmdGVyLCBfb2xkTW9kZWwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBHSVZFTihzdGF0ZW1lbnQ6IGFueSkge1xuICAgICAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJy0nKTtcbiAgICAgICAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgICAgYmVmb3JlLlJlc291cmNlc1tpZF0gPSB7XG4gICAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICAgIFByb3BlcnRpZXM6IHsgUG9saWNpZXM6IFtdIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXMuUG9saWNpZXMucHVzaCh7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogWyBzdGF0ZW1lbnQgXSB9IH0pO1xuICAgICAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBiZWhhdmlvcihgbmV3ICR7cmVzb3VyY2V9IHJlc291cmNlYCwgKHN1aXRlKSA9PiB7XG4gICAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICdBbGxvdyd9XSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN1aXRlLmRlbnkoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeU5lZ2F0aXZlUG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgICBUSEVOX2V4cGVjdE5vUmVzdWx0cyhhZnRlciwgX29sZE1vZGVsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZnVuY3Rpb24gR0lWRU4oc3RhdGVtZW50OiBhbnkpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KEJFRk9SRSk7XG4gICAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICBQb2xpY2llczogWyB7IFBvbGljeURvY3VtZW50OiB7IFN0YXRlbWVudDogW3N0YXRlbWVudF0gfSB9IF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdpbmxpbmUgcmVzb3VyY2UgcG9saWN5IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIE9iamVjdC5lbnRyaWVzKElBTV9JTkxJTkVfUkVTT1VSQ0VfUE9MSUNJRVMpLnNsaWNlKC0xKS5mb3JFYWNoKChbcmVzb3VyY2UsIHBvbGljaWVzXSkgPT4ge1xuICAgIHBvbGljaWVzLmZvckVhY2gocG9saWN5ID0+IHtcbiAgICAgIGJlaGF2aW9yKGBuZXcgJHtyZXNvdXJjZX0gcmVzb3VyY2UgYW5kIHN0YXRlbWVudCBwcm9wZXJ0eSwgJHtwb2xpY3l9LGAsIChzdWl0ZSkgPT4ge1xuICAgICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50KTtcbiAgICAgICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbe3ZhbHVlOiAnQWxsb3cnfV0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIEdJVkVOKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgICAgICAgIGFmdGVyLlJlc291cmNlc1tpZF0gPSB7XG4gICAgICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgICAgIFByb3BlcnRpZXM6IHsgW3BvbGljeV06IHsgU3RhdGVtZW50OiBbIHN0YXRlbWVudCBdIH0gfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsOiBvbGRNb2RlbH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBiZWhhdmlvcihgYWRkaXRpb24gdG8gc3RhdGVtZW50IHByb3BlcnR5LCAke3BvbGljeX0sIGluICR7cmVzb3VyY2V9YCwgKHN1aXRlKSA9PiB7XG4gICAgICAgIHN1aXRlLmFsbG93KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFtBTExPV10pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdWl0ZS5kZW55KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3ROb1Jlc3VsdHMoYWZ0ZXIsIF9vbGRNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIEdJVkVOKHN0YXRlbWVudDogYW55KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnLScpO1xuICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IGNvcHkoQkVGT1JFKTtcbiAgICAgICAgICBiZWZvcmUuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICAgICAgUHJvcGVydGllczogeyBbcG9saWN5XTogeyBTdGF0ZW1lbnQ6IFsgYXJiaXRyYXJ5UG9saWN5U3RhdGVtZW50IF0gfSB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzW3BvbGljeV0uU3RhdGVtZW50LnB1c2goc3RhdGVtZW50KTtcblxuICAgICAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBiZWhhdmlvcihgdXBkYXRlIHRvIHN0YXRlbWVudCBwcm9wZXJ0eSwgJHtwb2xpY3l9LCBpbiAke3Jlc291cmNlfWAsIChzdWl0ZSkgPT4ge1xuICAgICAgICBzdWl0ZS5hbGxvdygoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQsIGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCk7XG4gICAgICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlVQREFURSwgW0FMTE9XLCBERU5ZXSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN1aXRlLmRlbnkoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCwgYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgICAgIFRIRU5fZXhwZWN0Tm9SZXN1bHRzKGFmdGVyLCBfb2xkTW9kZWwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBHSVZFTihvbGRQb2xpY3k6IGFueSwgbmV3UG9saWN5OiBhbnkpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gICAgICAgICAgY29uc3QgYmVmb3JlID0gY29weShCRUZPUkUpO1xuICAgICAgICAgIGJlZm9yZS5SZXNvdXJjZXNbaWRdID0ge1xuICAgICAgICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICAgICAgICBQcm9wZXJ0aWVzOiB7IFtwb2xpY3ldOiB7IFN0YXRlbWVudDogWyBvbGRQb2xpY3kgXSB9IH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXNbcG9saWN5XS5TdGF0ZW1lbnRbMF0gPSBuZXdQb2xpY3k7XG5cbiAgICAgICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWx9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTsiXX0= |
@@ -23,14 +23,14 @@ "use strict"; | ||
describe('EC2 Security Group default rules', () => { | ||
utils_1.behavior('with new Security Group resource with property, security group', (suite) => { | ||
(0, utils_1.behavior)('with new Security Group resource with property, security group', (suite) => { | ||
suite.egress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupEgress'); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: '0.0.0.1/0' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: '0.0.0.1/0' }]); | ||
}); | ||
suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupIngress'); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: '0.0.0.1/0' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: '0.0.0.1/0' }]); | ||
}); | ||
function GIVEN(path) { | ||
const before = { Resources: {} }; | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources.SecurityGroup = { | ||
@@ -43,13 +43,13 @@ Type: 'AWS::EC2::SecurityGroup', | ||
}); | ||
utils_1.behavior('with full additions to security group property', (suite) => { | ||
(0, utils_1.behavior)('with full additions to security group property', (suite) => { | ||
suite.egress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupEgress'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [{ value: '-1' }, { value: '0.0.0.1/0' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [{ value: '-1' }, { value: '0.0.0.1/0' }]); | ||
}); | ||
suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupIngress'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.INSERT, [{ value: '-1' }, { value: '0.0.0.1/0' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.INSERT, [{ value: '-1' }, { value: '0.0.0.1/0' }]); | ||
}); | ||
function GIVEN(path) { | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources.SecurityGroup.Properties[path].push({ CidrIp: '0.0.0.1/0', IpProtocol: '-1' }); | ||
@@ -59,13 +59,13 @@ return { after, _oldModel: oldModel }; | ||
}); | ||
utils_1.behavior('with updates to security group property', (suite) => { | ||
(0, utils_1.behavior)('with updates to security group property', (suite) => { | ||
suite.egress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupEgress'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.UPDATE, [{ value: '0.0.0.1/0' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.UPDATE, [{ value: '0.0.0.1/0' }]); | ||
}); | ||
suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupIngress'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.UPDATE, [{ value: '0.0.0.1/0' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.UPDATE, [{ value: '0.0.0.1/0' }]); | ||
}); | ||
function GIVEN(path) { | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources.SecurityGroup.Properties[path][0].CidrIp = '0.0.0.1/0'; | ||
@@ -75,13 +75,13 @@ return { after, _oldModel: oldModel }; | ||
}); | ||
utils_1.behavior('with removals to security group property', (suite) => { | ||
(0, utils_1.behavior)('with removals to security group property', (suite) => { | ||
suite.egress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupEgress'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '0.0.0.0/0' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '0.0.0.0/0' }]); | ||
}); | ||
suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN('SecurityGroupIngress'); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '0.0.0.0/0' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '0.0.0.0/0' }]); | ||
}); | ||
function GIVEN(path) { | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources.SecurityGroup.Properties[path] = []; | ||
@@ -93,7 +93,7 @@ return { after, _oldModel: oldModel }; | ||
describe('AWS::EC2::SecurityGroupXxx', () => { | ||
utils_1.behavior('with new resource security group', (suite) => { | ||
(0, utils_1.behavior)('with new resource security group', (suite) => { | ||
suite.egress(() => { | ||
const resource = 'AWS::EC2::SecurityGroupEgress'; | ||
const { after, _oldModel } = GIVEN(resource); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: '123456789' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: '123456789' }]); | ||
}); | ||
@@ -103,7 +103,7 @@ suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN(resource); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.INSERT, [{ value: '123456789' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.INSERT, [{ value: '123456789' }]); | ||
}); | ||
function GIVEN(resource) { | ||
const id = resource.replace(/::/g, ''); | ||
const after = object_1.copy(BEFORE); | ||
const after = (0, object_1.copy)(BEFORE); | ||
after.Resources[id] = { | ||
@@ -119,7 +119,7 @@ Type: resource, | ||
}); | ||
utils_1.behavior('with updates to resource security group', (suite) => { | ||
(0, utils_1.behavior)('with updates to resource security group', (suite) => { | ||
suite.egress(() => { | ||
const resource = 'AWS::EC2::SecurityGroupEgress'; | ||
const { after, _oldModel } = GIVEN(resource); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.UPDATE, [{ value: 'abcdefghi' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.UPDATE, [{ value: 'abcdefghi' }]); | ||
}); | ||
@@ -129,7 +129,7 @@ suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN(resource); | ||
utils_1.THEN_expectProperty(after, _oldModel, models_1.OperationType.UPDATE, [{ value: 'abcdefghi' }]); | ||
(0, utils_1.THEN_expectProperty)(after, _oldModel, models_1.OperationType.UPDATE, [{ value: 'abcdefghi' }]); | ||
}); | ||
function GIVEN(resource) { | ||
const id = resource.replace(/::/g, ''); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -143,3 +143,3 @@ Type: resource, | ||
const _oldModel = new engine_1.CFParser('root', before).parse(); | ||
const after = object_1.copy(before); | ||
const after = (0, object_1.copy)(before); | ||
after.Resources[id].Properties.GroupId = 'abcdefghi'; | ||
@@ -149,7 +149,7 @@ return { after, _oldModel }; | ||
}); | ||
utils_1.behavior('with removals to resource security group', (suite) => { | ||
(0, utils_1.behavior)('with removals to resource security group', (suite) => { | ||
suite.egress(() => { | ||
const resource = 'AWS::EC2::SecurityGroupEgress'; | ||
const { after, _oldModel } = GIVEN(resource); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '123456789' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '123456789' }]); | ||
}); | ||
@@ -159,7 +159,7 @@ suite.ingress(() => { | ||
const { after, _oldModel } = GIVEN(resource); | ||
utils_1.THEN_expectResource(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '123456789' }]); | ||
(0, utils_1.THEN_expectResource)(after, _oldModel, models_1.OperationType.REMOVE, [{ value: '123456789' }]); | ||
}); | ||
function GIVEN(resource) { | ||
const id = resource.replace(/::/g, ''); | ||
const before = object_1.copy(BEFORE); | ||
const before = (0, object_1.copy)(BEFORE); | ||
before.Resources[id] = { | ||
@@ -177,2 +177,2 @@ Type: resource, | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtcnVsZXMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWdyb3VwLXJ1bGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBMkM7QUFDM0MsNENBQTREO0FBQzVELGtEQUE2QztBQUM3QyxtQ0FBNkU7QUFFN0UsTUFBTSxNQUFNLEdBQXFCO0lBQy9CLFNBQVMsRUFBRTtRQUNULGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsVUFBVSxFQUFFO2dCQUNWLG1CQUFtQixFQUFFLENBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBRTtnQkFDbEUsb0JBQW9CLEVBQUUsQ0FBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFFO2FBQ3BFO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRixJQUFJLFFBQW9CLENBQUM7QUFDekIsU0FBUyxDQUFDLEdBQUcsRUFBRTtJQUNiLFFBQVEsR0FBRyxJQUFJLGlCQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtJQUNoRCxnQkFBUSxDQUFDLGdFQUFnRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbkYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDaEIsTUFBTSxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RCwyQkFBbUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLHNCQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBQyxLQUFLLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxD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RyxFQUFFO1lBQ2pCLE1BQU0sUUFBUSxHQUFHLGdDQUFnQyxDQUFDO1lBQ2xELE1BQU0sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLDJCQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsc0JBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLEtBQUssQ0FBQyxRQUFnQjtZQUM3QixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxhQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRztnQkFDckIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRSxXQUFXO29CQUNwQixVQUFVLEVBQUUsS0FBSztpQkFDbEI7YUFDRixDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxpQkFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENGUGFyc2VyIH0gZnJvbSAnQGF3cy1jMmEvZW5naW5lJztcbmltcG9ydCB7IEluZnJhTW9kZWwsIE9wZXJhdGlvblR5cGUgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgY29weSB9IGZyb20gJy4uL2xpYi9wcml2YXRlL29iamVjdCc7XG5pbXBvcnQgeyBiZWhhdmlvciwgVEhFTl9leHBlY3RSZXNvdXJjZSwgVEhFTl9leHBlY3RQcm9wZXJ0eSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBCRUZPUkU6IFJlY29yZDxhbnksIGFueT4gPSB7XG4gIFJlc291cmNlczoge1xuICAgIFNlY3VyaXR5R3JvdXA6IHtcbiAgICAgIFR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgIFNlY3VyaXR5R3JvdXBFZ3Jlc3M6IFsgeyBDaWRySXA6ICcwLjAuMC4wLzAnLCBJcFByb3RvY29sOiAnLTEnIH0gXSxcbiAgICAgICAgU2VjdXJpdHlHcm91cEluZ3Jlc3M6IFsgeyBDaWRySXA6ICcwLjAuMC4wLzAnLCBJcFByb3RvY29sOiAnLTEnIH0gXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG5cbmxldCBvbGRNb2RlbDogSW5mcmFNb2RlbDtcbmJlZm9yZUFsbCgoKSA9PiB7XG4gIG9sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgQkVGT1JFKS5wYXJzZSgpO1xufSk7XG5cbmRlc2NyaWJlKCdFQzIgU2VjdXJpdHkgR3JvdXAgZGVmYXVsdCBydWxlcycsICgpID0+IHtcbiAgYmVoYXZpb3IoJ3dpdGggbmV3IFNlY3VyaXR5IEdyb3VwIHJlc291cmNlIHdpdGggcHJvcGVydHksIHNlY3VyaXR5IGdyb3VwJywgKHN1aXRlKSA9PiB7XG4gICAgc3VpdGUuZWdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKCdTZWN1cml0eUdyb3VwRWdyZXNzJyk7XG4gICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbe3ZhbHVlOiAnMC4wLjAuMS8wJ31dKTtcbiAgICB9KTtcblxuICAgIHN1aXRlLmluZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oJ1NlY3VyaXR5R3JvdXBJbmdyZXNzJyk7XG4gICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbe3ZhbHVlOiAnMC4wLjAuMS8wJ31dKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIEdJVkVOKHBhdGg6IHN0cmluZykge1xuICAgICAgY29uc3QgYmVmb3JlOiBSZWNvcmQ8YW55LCBhbnk+ID0geyBSZXNvdXJjZXM6IHt9IH07XG4gICAgICBjb25zdCBhZnRlciA9IGNvcHkoYmVmb3JlKTtcbiAgICAgIGFmdGVyLlJlc291cmNlcy5TZWN1cml0eUdyb3VwID0ge1xuICAgICAgICBUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7IFtwYXRoXTogeyBDaWRySXA6ICcwLjAuMC4xLzAnLCBJcFByb3RvY29sOiAnLTEnIH0gfSxcbiAgICAgIH07XG4gICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG5ldyBDRlBhcnNlcigncm9vdCcsIGJlZm9yZSkucGFyc2UoKX07XG4gICAgfVxuICB9KTtcblxuICBiZWhhdmlvcignd2l0aCBmdWxsIGFkZGl0aW9ucyB0byBzZWN1cml0eSBncm91cCBwcm9wZXJ0eScsIChzdWl0ZSkgPT4ge1xuICAgIHN1aXRlLmVncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTignU2VjdXJpdHlHcm91cEVncmVzcycpO1xuICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3t2YWx1ZTogJy0xJ30sIHt2YWx1ZTogJzAuMC4wLjEvMCd9XSk7XG4gICAgfSk7XG5cbiAgICBzdWl0ZS5pbmdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKCdTZWN1cml0eUdyb3VwSW5ncmVzcycpO1xuICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3t2YWx1ZTogJy0xJ30sIHt2YWx1ZTogJzAuMC4wLjEvMCd9XSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBHSVZFTihwYXRoOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgICAgYWZ0ZXIuUmVzb3VyY2VzLlNlY3VyaXR5R3JvdXAuUHJvcGVydGllc1twYXRoXS5wdXNoKHsgQ2lkcklwOiAnMC4wLjAuMS8wJywgSXBQcm90b2NvbDogJy0xJyB9KTtcbiAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbDogb2xkTW9kZWx9O1xuICAgIH1cbiAgfSk7XG5cbiAgYmVoYXZpb3IoJ3dpdGggdXBkYXRlcyB0byBzZWN1cml0eSBncm91cCBwcm9wZXJ0eScsIChzdWl0ZSkgPT4ge1xuICAgIHN1aXRlLmVncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTignU2VjdXJpdHlHcm91cEVncmVzcycpO1xuICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlVQREFURSwgW3t2YWx1ZTogJzAuMC4wLjEvMCd9XSk7XG4gICAgfSk7XG5cbiAgICBzdWl0ZS5pbmdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKCdTZWN1cml0eUdyb3VwSW5ncmVzcycpO1xuICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlVQREFURSwgW3t2YWx1ZTogJzAuMC4wLjEvMCd9XSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBHSVZFTihwYXRoOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgICAgYWZ0ZXIuUmVzb3VyY2VzLlNlY3VyaXR5R3JvdXAuUHJvcGVydGllc1twYXRoXVswXS5DaWRySXAgPSAnMC4wLjAuMS8wJztcbiAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbDogb2xkTW9kZWx9O1xuICAgIH1cbiAgfSk7XG5cbiAgYmVoYXZpb3IoJ3dpdGggcmVtb3ZhbHMgdG8gc2VjdXJpdHkgZ3JvdXAgcHJvcGVydHknLCAoc3VpdGUpID0+IHtcbiAgICBzdWl0ZS5lZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oJ1NlY3VyaXR5R3JvdXBFZ3Jlc3MnKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5SRU1PVkUsIFt7dmFsdWU6ICcwLjAuMC4wLzAnfV0pO1xuICAgIH0pO1xuXG4gICAgc3VpdGUuaW5ncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTignU2VjdXJpdHlHcm91cEluZ3Jlc3MnKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5SRU1PVkUsIFt7dmFsdWU6ICcwLjAuMC4wLzAnfV0pO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gR0lWRU4ocGF0aDogc3RyaW5nKSB7XG4gICAgICBjb25zdCBhZnRlciA9IGNvcHkoQkVGT1JFKTtcbiAgICAgIGFmdGVyLlJlc291cmNlcy5TZWN1cml0eUdyb3VwLlByb3BlcnRpZXNbcGF0aF0gPSBbXTtcbiAgICAgIHJldHVybiB7YWZ0ZXIsIF9vbGRNb2RlbDogb2xkTW9kZWx9O1xuICAgIH1cbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwWHh4JywgKCkgPT4ge1xuICBiZWhhdmlvcignd2l0aCBuZXcgcmVzb3VyY2Ugc2VjdXJpdHkgZ3JvdXAnLCAoc3VpdGUpID0+IHtcbiAgICBzdWl0ZS5lZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBFZ3Jlc3MnO1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4ocmVzb3VyY2UpO1xuICAgICAgVEhFTl9leHBlY3RSZXNvdXJjZShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3t2YWx1ZTogJzEyMzQ1Njc4OSd9XSk7XG4gICAgfSk7XG5cbiAgICBzdWl0ZS5pbmdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwSW5ncmVzcyc7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihyZXNvdXJjZSk7XG4gICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuSU5TRVJULCBbe3ZhbHVlOiAnMTIzNDU2Nzg5J31dKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIEdJVkVOKHJlc291cmNlOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJycpO1xuICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KEJFRk9SRSk7XG4gICAgICBhZnRlci5SZXNvdXJjZXNbaWRdID0ge1xuICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEdyb3VwSWQ6ICcxMjM0NTY3ODknLFxuICAgICAgICAgIElwUHJvdG9jb2w6ICd0Y3AnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHsgYWZ0ZXIsIF9vbGRNb2RlbDogb2xkTW9kZWwgfTtcbiAgICB9XG4gIH0pO1xuXG4gIGJlaGF2aW9yKCd3aXRoIHVwZGF0ZXMgdG8gcmVzb3VyY2Ugc2VjdXJpdHkgZ3JvdXAnLCAoc3VpdGUpID0+IHtcbiAgICBzdWl0ZS5lZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBFZ3Jlc3MnO1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4ocmVzb3VyY2UpO1xuICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlVQREFURSwgW3t2YWx1ZTogJ2FiY2RlZmdoaSd9XSk7XG4gICAgfSk7XG5cbiAgICBzdWl0ZS5pbmdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwSW5ncmVzcyc7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihyZXNvdXJjZSk7XG4gICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuVVBEQVRFLCBbe3ZhbHVlOiAnYWJjZGVmZ2hpJ31dKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIEdJVkVOKHJlc291cmNlOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJycpO1xuICAgICAgY29uc3QgYmVmb3JlID0gY29weShCRUZPUkUpO1xuICAgICAgYmVmb3JlLlJlc291cmNlc1tpZF0gPSB7XG4gICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgR3JvdXBJZDogJzEyMzQ1Njc4OScsXG4gICAgICAgICAgSXBQcm90b2NvbDogJ3RjcCcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICBhZnRlci5SZXNvdXJjZXNbaWRdLlByb3BlcnRpZXMuR3JvdXBJZCA9ICdhYmNkZWZnaGknO1xuXG4gICAgICByZXR1cm4geyBhZnRlciwgX29sZE1vZGVsIH07XG4gICAgfVxuICB9KTtcblxuICBiZWhhdmlvcignd2l0aCByZW1vdmFscyB0byByZXNvdXJjZSBzZWN1cml0eSBncm91cCcsIChzdWl0ZSkgPT4ge1xuICAgIHN1aXRlLmVncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cEVncmVzcyc7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihyZXNvdXJjZSk7XG4gICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuUkVNT1ZFLCBbe3ZhbHVlOiAnMTIzNDU2Nzg5J31dKTtcbiAgICB9KTtcblxuICAgIHN1aXRlLmluZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBJbmdyZXNzJztcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKHJlc291cmNlKTtcbiAgICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5SRU1PVkUsIFt7dmFsdWU6ICcxMjM0NTY3ODknfV0pO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gR0lWRU4ocmVzb3VyY2U6IHN0cmluZykge1xuICAgICAgY29uc3QgaWQgPSByZXNvdXJjZS5yZXBsYWNlKC86Oi9nLCAnJyk7XG4gICAgICBjb25zdCBiZWZvcmUgPSBjb3B5KEJFRk9SRSk7XG4gICAgICBiZWZvcmUuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBHcm91cElkOiAnMTIzNDU2Nzg5JyxcbiAgICAgICAgICBJcFByb3RvY29sOiAndGNwJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBfb2xkTW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCk7XG5cbiAgICAgIHJldHVybiB7IGFmdGVyOiBCRUZPUkUsIF9vbGRNb2RlbCB9O1xuICAgIH1cbiAgfSk7XG59KTsiXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtcnVsZXMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWdyb3VwLXJ1bGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBMkM7QUFDM0MsNENBQTREO0FBQzVELGtEQUE2QztBQUM3QyxtQ0FBNkU7QUFFN0UsTUFBTSxNQUFNLEdBQXFCO0lBQy9CLFNBQVMsRUFBRTtRQUNULGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsVUFBVSxFQUFFO2dCQUNWLG1CQUFtQixFQUFFLENBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBRTtnQkFDbEUsb0JBQW9CLEVBQUUsQ0FBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFFO2FBQ3BFO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRixJQUFJLFFBQW9CLENBQUM7QUFDekIsU0FBUyxDQUFDLEdBQUcsRUFBRTtJQUNiLFFBQVEsR0FBRyxJQUFJLGlCQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtJQUNoRCxJQUFBLGdCQUFRLEVBQUMsZ0VBQWdFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNuRixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNoQixNQUFNLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3hELElBQUEsMkJBQW1CLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixD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cnQgeyBJbmZyYU1vZGVsLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGNvcHkgfSBmcm9tICcuLi9saWIvcHJpdmF0ZS9vYmplY3QnO1xuaW1wb3J0IHsgYmVoYXZpb3IsIFRIRU5fZXhwZWN0UmVzb3VyY2UsIFRIRU5fZXhwZWN0UHJvcGVydHkgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgQkVGT1JFOiBSZWNvcmQ8YW55LCBhbnk+ID0ge1xuICBSZXNvdXJjZXM6IHtcbiAgICBTZWN1cml0eUdyb3VwOiB7XG4gICAgICBUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgUHJvcGVydGllczoge1xuICAgICAgICBTZWN1cml0eUdyb3VwRWdyZXNzOiBbIHsgQ2lkcklwOiAnMC4wLjAuMC8wJywgSXBQcm90b2NvbDogJy0xJyB9IF0sXG4gICAgICAgIFNlY3VyaXR5R3JvdXBJbmdyZXNzOiBbIHsgQ2lkcklwOiAnMC4wLjAuMC8wJywgSXBQcm90b2NvbDogJy0xJyB9IF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59O1xuXG5sZXQgb2xkTW9kZWw6IEluZnJhTW9kZWw7XG5iZWZvcmVBbGwoKCkgPT4ge1xuICBvbGRNb2RlbCA9IG5ldyBDRlBhcnNlcigncm9vdCcsIEJFRk9SRSkucGFyc2UoKTtcbn0pO1xuXG5kZXNjcmliZSgnRUMyIFNlY3VyaXR5IEdyb3VwIGRlZmF1bHQgcnVsZXMnLCAoKSA9PiB7XG4gIGJlaGF2aW9yKCd3aXRoIG5ldyBTZWN1cml0eSBHcm91cCByZXNvdXJjZSB3aXRoIHByb3BlcnR5LCBzZWN1cml0eSBncm91cCcsIChzdWl0ZSkgPT4ge1xuICAgIHN1aXRlLmVncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTignU2VjdXJpdHlHcm91cEVncmVzcycpO1xuICAgICAgVEhFTl9leHBlY3RSZXNvdXJjZShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3t2YWx1ZTogJzAuMC4wLjEvMCd9XSk7XG4gICAgfSk7XG5cbiAgICBzdWl0ZS5pbmdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKCdTZWN1cml0eUdyb3VwSW5ncmVzcycpO1xuICAgICAgVEhFTl9leHBlY3RSZXNvdXJjZShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3t2YWx1ZTogJzAuMC4wLjEvMCd9XSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBHSVZFTihwYXRoOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGJlZm9yZTogUmVjb3JkPGFueSwgYW55PiA9IHsgUmVzb3VyY2VzOiB7fSB9O1xuICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KGJlZm9yZSk7XG4gICAgICBhZnRlci5SZXNvdXJjZXMuU2VjdXJpdHlHcm91cCA9IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgICAgUHJvcGVydGllczogeyBbcGF0aF06IHsgQ2lkcklwOiAnMC4wLjAuMS8wJywgSXBQcm90b2NvbDogJy0xJyB9IH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHthZnRlciwgX29sZE1vZGVsOiBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBiZWZvcmUpLnBhcnNlKCl9O1xuICAgIH1cbiAgfSk7XG5cbiAgYmVoYXZpb3IoJ3dpdGggZnVsbCBhZGRpdGlvbnMgdG8gc2VjdXJpdHkgZ3JvdXAgcHJvcGVydHknLCAoc3VpdGUpID0+IHtcbiAgICBzdWl0ZS5lZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oJ1NlY3VyaXR5R3JvdXBFZ3Jlc3MnKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICctMSd9LCB7dmFsdWU6ICcwLjAuMC4xLzAnfV0pO1xuICAgIH0pO1xuXG4gICAgc3VpdGUuaW5ncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTignU2VjdXJpdHlHcm91cEluZ3Jlc3MnKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICctMSd9LCB7dmFsdWU6ICcwLjAuMC4xLzAnfV0pO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gR0lWRU4ocGF0aDogc3RyaW5nKSB7XG4gICAgICBjb25zdCBhZnRlciA9IGNvcHkoQkVGT1JFKTtcbiAgICAgIGFmdGVyLlJlc291cmNlcy5TZWN1cml0eUdyb3VwLlByb3BlcnRpZXNbcGF0aF0ucHVzaCh7IENpZHJJcDogJzAuMC4wLjEvMCcsIElwUHJvdG9jb2w6ICctMScgfSk7XG4gICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICB9XG4gIH0pO1xuXG4gIGJlaGF2aW9yKCd3aXRoIHVwZGF0ZXMgdG8gc2VjdXJpdHkgZ3JvdXAgcHJvcGVydHknLCAoc3VpdGUpID0+IHtcbiAgICBzdWl0ZS5lZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oJ1NlY3VyaXR5R3JvdXBFZ3Jlc3MnKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5VUERBVEUsIFt7dmFsdWU6ICcwLjAuMC4xLzAnfV0pO1xuICAgIH0pO1xuXG4gICAgc3VpdGUuaW5ncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTignU2VjdXJpdHlHcm91cEluZ3Jlc3MnKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5VUERBVEUsIFt7dmFsdWU6ICcwLjAuMC4xLzAnfV0pO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gR0lWRU4ocGF0aDogc3RyaW5nKSB7XG4gICAgICBjb25zdCBhZnRlciA9IGNvcHkoQkVGT1JFKTtcbiAgICAgIGFmdGVyLlJlc291cmNlcy5TZWN1cml0eUdyb3VwLlByb3BlcnRpZXNbcGF0aF1bMF0uQ2lkcklwID0gJzAuMC4wLjEvMCc7XG4gICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICB9XG4gIH0pO1xuXG4gIGJlaGF2aW9yKCd3aXRoIHJlbW92YWxzIHRvIHNlY3VyaXR5IGdyb3VwIHByb3BlcnR5JywgKHN1aXRlKSA9PiB7XG4gICAgc3VpdGUuZWdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKCdTZWN1cml0eUdyb3VwRWdyZXNzJyk7XG4gICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuUkVNT1ZFLCBbe3ZhbHVlOiAnMC4wLjAuMC8wJ31dKTtcbiAgICB9KTtcblxuICAgIHN1aXRlLmluZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4oJ1NlY3VyaXR5R3JvdXBJbmdyZXNzJyk7XG4gICAgICBUSEVOX2V4cGVjdFByb3BlcnR5KGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuUkVNT1ZFLCBbe3ZhbHVlOiAnMC4wLjAuMC8wJ31dKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIEdJVkVOKHBhdGg6IHN0cmluZykge1xuICAgICAgY29uc3QgYWZ0ZXIgPSBjb3B5KEJFRk9SRSk7XG4gICAgICBhZnRlci5SZXNvdXJjZXMuU2VjdXJpdHlHcm91cC5Qcm9wZXJ0aWVzW3BhdGhdID0gW107XG4gICAgICByZXR1cm4ge2FmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsfTtcbiAgICB9XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cFh4eCcsICgpID0+IHtcbiAgYmVoYXZpb3IoJ3dpdGggbmV3IHJlc291cmNlIHNlY3VyaXR5IGdyb3VwJywgKHN1aXRlKSA9PiB7XG4gICAgc3VpdGUuZWdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwRWdyZXNzJztcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKHJlc291cmNlKTtcbiAgICAgIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5JTlNFUlQsIFt7dmFsdWU6ICcxMjM0NTY3ODknfV0pO1xuICAgIH0pO1xuXG4gICAgc3VpdGUuaW5ncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cEluZ3Jlc3MnO1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4ocmVzb3VyY2UpO1xuICAgICAgVEhFTl9leHBlY3RSZXNvdXJjZShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLklOU0VSVCwgW3t2YWx1ZTogJzEyMzQ1Njc4OSd9XSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBHSVZFTihyZXNvdXJjZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICcnKTtcbiAgICAgIGNvbnN0IGFmdGVyID0gY29weShCRUZPUkUpO1xuICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICAgICAgVHlwZTogcmVzb3VyY2UsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBHcm91cElkOiAnMTIzNDU2Nzg5JyxcbiAgICAgICAgICBJcFByb3RvY29sOiAndGNwJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB7IGFmdGVyLCBfb2xkTW9kZWw6IG9sZE1vZGVsIH07XG4gICAgfVxuICB9KTtcblxuICBiZWhhdmlvcignd2l0aCB1cGRhdGVzIHRvIHJlc291cmNlIHNlY3VyaXR5IGdyb3VwJywgKHN1aXRlKSA9PiB7XG4gICAgc3VpdGUuZWdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwRWdyZXNzJztcbiAgICAgIGNvbnN0IHthZnRlciwgX29sZE1vZGVsfSA9IEdJVkVOKHJlc291cmNlKTtcbiAgICAgIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXIsIF9vbGRNb2RlbCwgT3BlcmF0aW9uVHlwZS5VUERBVEUsIFt7dmFsdWU6ICdhYmNkZWZnaGknfV0pO1xuICAgIH0pO1xuXG4gICAgc3VpdGUuaW5ncmVzcygoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cEluZ3Jlc3MnO1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4ocmVzb3VyY2UpO1xuICAgICAgVEhFTl9leHBlY3RQcm9wZXJ0eShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlVQREFURSwgW3t2YWx1ZTogJ2FiY2RlZmdoaSd9XSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBHSVZFTihyZXNvdXJjZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBpZCA9IHJlc291cmNlLnJlcGxhY2UoLzo6L2csICcnKTtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IGNvcHkoQkVGT1JFKTtcbiAgICAgIGJlZm9yZS5SZXNvdXJjZXNbaWRdID0ge1xuICAgICAgICBUeXBlOiByZXNvdXJjZSxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEdyb3VwSWQ6ICcxMjM0NTY3ODknLFxuICAgICAgICAgIElwUHJvdG9jb2w6ICd0Y3AnLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IF9vbGRNb2RlbCA9IG5ldyBDRlBhcnNlcigncm9vdCcsIGJlZm9yZSkucGFyc2UoKTtcbiAgICAgIGNvbnN0IGFmdGVyID0gY29weShiZWZvcmUpO1xuICAgICAgYWZ0ZXIuUmVzb3VyY2VzW2lkXS5Qcm9wZXJ0aWVzLkdyb3VwSWQgPSAnYWJjZGVmZ2hpJztcblxuICAgICAgcmV0dXJuIHsgYWZ0ZXIsIF9vbGRNb2RlbCB9O1xuICAgIH1cbiAgfSk7XG5cbiAgYmVoYXZpb3IoJ3dpdGggcmVtb3ZhbHMgdG8gcmVzb3VyY2Ugc2VjdXJpdHkgZ3JvdXAnLCAoc3VpdGUpID0+IHtcbiAgICBzdWl0ZS5lZ3Jlc3MoKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBFZ3Jlc3MnO1xuICAgICAgY29uc3Qge2FmdGVyLCBfb2xkTW9kZWx9ID0gR0lWRU4ocmVzb3VyY2UpO1xuICAgICAgVEhFTl9leHBlY3RSZXNvdXJjZShhZnRlciwgX29sZE1vZGVsLCBPcGVyYXRpb25UeXBlLlJFTU9WRSwgW3t2YWx1ZTogJzEyMzQ1Njc4OSd9XSk7XG4gICAgfSk7XG5cbiAgICBzdWl0ZS5pbmdyZXNzKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwSW5ncmVzcyc7XG4gICAgICBjb25zdCB7YWZ0ZXIsIF9vbGRNb2RlbH0gPSBHSVZFTihyZXNvdXJjZSk7XG4gICAgICBUSEVOX2V4cGVjdFJlc291cmNlKGFmdGVyLCBfb2xkTW9kZWwsIE9wZXJhdGlvblR5cGUuUkVNT1ZFLCBbe3ZhbHVlOiAnMTIzNDU2Nzg5J31dKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIEdJVkVOKHJlc291cmNlOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGlkID0gcmVzb3VyY2UucmVwbGFjZSgvOjovZywgJycpO1xuICAgICAgY29uc3QgYmVmb3JlID0gY29weShCRUZPUkUpO1xuICAgICAgYmVmb3JlLlJlc291cmNlc1tpZF0gPSB7XG4gICAgICAgIFR5cGU6IHJlc291cmNlLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgR3JvdXBJZDogJzEyMzQ1Njc4OScsXG4gICAgICAgICAgSXBQcm90b2NvbDogJ3RjcCcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgX29sZE1vZGVsID0gbmV3IENGUGFyc2VyKCdyb290JywgYmVmb3JlKS5wYXJzZSgpO1xuXG4gICAgICByZXR1cm4geyBhZnRlcjogQkVGT1JFLCBfb2xkTW9kZWwgfTtcbiAgICB9XG4gIH0pO1xufSk7Il19 |
@@ -11,4 +11,4 @@ "use strict"; | ||
const newModel = new engine_1.CFParser('root', after).parse(); | ||
const { graph, rulesOutput: result } = utils_1.processRules(before, newModel, DEFAULT_RULES); | ||
const firstVertex = utils_1.firstKey(result)._id; | ||
const { graph, rulesOutput: result } = (0, utils_1.processRules)(before, newModel, DEFAULT_RULES); | ||
const firstVertex = (0, utils_1.firstKey)(result)._id; | ||
return { graph, firstVertex }; | ||
@@ -31,3 +31,3 @@ } | ||
const newModel = new engine_1.CFParser('root', after).parse(); | ||
const { rulesOutput: result } = utils_1.processRules(before, newModel, DEFAULT_RULES); | ||
const { rulesOutput: result } = (0, utils_1.processRules)(before, newModel, DEFAULT_RULES); | ||
// THEN | ||
@@ -49,2 +49,2 @@ expect(result.size).toBe(0); | ||
exports.THEN_expectProperty = THEN_expectProperty; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxpYW5jZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tcGxpYW5jZS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUEyQztBQUczQyxtQ0FBc0Q7QUFDdEQsb0NBQWtEO0FBRWxELE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxnQkFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsbUJBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBUXBILFNBQWdCLE9BQU8sQ0FBQyxLQUFVLEVBQUUsTUFBa0I7SUFDcEQsT0FBTztJQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckQsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsb0JBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sV0FBVyxHQUFHLGdCQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDaEMsQ0FBQztBQU5ELDBCQU1DO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsS0FBVSxFQUFFLE1BQWtCLEVBQUUsSUFBbUIsRUFBRSxVQUFzQjtJQUM3RyxPQUFPO0lBQ1AsTUFBTSxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV2RCxPQUFPO0lBQ1AsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzRSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFWRCxrREFVQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEtBQVUsRUFBRSxNQUFrQjtJQUNqRSxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyRCxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLG9CQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUU5RSxPQUFPO0lBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQVBELG9EQU9DO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsS0FBVSxFQUFFLE1BQWtCLEVBQUUsSUFBbUIsRUFBRSxVQUFzQjtJQUM3RyxNQUFNLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXZELE9BQU87SUFDUCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUM1RixzRUFBc0U7SUFDdEUsNkRBQTZEO0lBQzdELE1BQU0sUUFBUSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFBLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzdGLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQVhELGtEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0ZQYXJzZXIgfSBmcm9tICdAYXdzLWMyYS9lbmdpbmUnO1xuaW1wb3J0IHsgSW5mcmFNb2RlbCwgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IElhbUNoYW5nZXMsIFNlY3VyaXR5R3JvdXAgfSBmcm9tICcuLi8uLi9saWInO1xuaW1wb3J0IHsgcHJvY2Vzc1J1bGVzLCBmaXJzdEtleSB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgREVGQVVMVF9SVUxFUyA9IFsuLi5JYW1DaGFuZ2VzLkJyb2FkZW5pbmdQZXJtaXNzaW9ucygpLnJ1bGVzLCAuLi5TZWN1cml0eUdyb3VwLkJyb2FkZW5pbmdQZXJtaXNzaW9ucygpLnJ1bGVzXTtcbnR5cGUgcHJvcGVydHkgPSB7IHZhbHVlOiBzdHJpbmcgfTtcblxuaW50ZXJmYWNlIFByb2Nlc3NPdXRwdXQge1xuICBncmFwaDogZm4uR3JhcGg8YW55LCB7X2xhYmVsOiBzdHJpbmcsIF9pbjogc3RyaW5nLCBfb3V0OiBzdHJpbmd9PjtcbiAgZmlyc3RWZXJ0ZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3MoYWZ0ZXI6IGFueSwgYmVmb3JlOiBJbmZyYU1vZGVsKTogUHJvY2Vzc091dHB1dCB7XG4gIC8vIFdIRU5cbiAgY29uc3QgbmV3TW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBhZnRlcikucGFyc2UoKTtcbiAgY29uc3QgeyBncmFwaCwgcnVsZXNPdXRwdXQ6IHJlc3VsdCB9ID0gcHJvY2Vzc1J1bGVzKGJlZm9yZSwgbmV3TW9kZWwsIERFRkFVTFRfUlVMRVMpO1xuICBjb25zdCBmaXJzdFZlcnRleCA9IGZpcnN0S2V5KHJlc3VsdCkuX2lkO1xuICByZXR1cm4geyBncmFwaCwgZmlyc3RWZXJ0ZXggfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXI6IGFueSwgYmVmb3JlOiBJbmZyYU1vZGVsLCB0eXBlOiBPcGVyYXRpb25UeXBlLCBwcm9wZXJ0aWVzOiBwcm9wZXJ0eVtdKTogdm9pZCB7XG4gIC8vIFdIRU5cbiAgY29uc3Qge2dyYXBoOiBnLCBmaXJzdFZlcnRleH0gPSBwcm9jZXNzKGFmdGVyLCBiZWZvcmUpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGcudihmaXJzdFZlcnRleCkucnVuKCkpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgZXhwZWN0KGcudihmaXJzdFZlcnRleCkucnVuKClbMF0pLnRvTWF0Y2hPYmplY3QoeyB0eXBlIH0pO1xuICBjb25zdCBjb21wb25lbnQgPSBnLnYoZmlyc3RWZXJ0ZXgpLm91dCgnYXBwbGllc1RvJykuZmlsdGVyKHtlbnRpdHlUeXBlOiAnY29tcG9uZW50J30pO1xuICBjb25zdCB2ZXJ0aWNlcyA9IGNvbXBvbmVudC5vdXRBbnkoKS5maWx0ZXIoe2VudGl0eVR5cGU6ICdwcm9wZXJ0eSd9KS5ydW4oKTtcbiAgcHJvcGVydGllcy5mb3JFYWNoKHByb3BlcnR5ID0+IGV4cGVjdCh2ZXJ0aWNlcykudG9Db250YWluT2JqZWN0KHByb3BlcnR5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUSEVOX2V4cGVjdE5vUmVzdWx0cyhhZnRlcjogYW55LCBiZWZvcmU6IEluZnJhTW9kZWwpOiB2b2lkIHtcbiAgLy8gV0hFTlxuICBjb25zdCBuZXdNb2RlbCA9IG5ldyBDRlBhcnNlcigncm9vdCcsIGFmdGVyKS5wYXJzZSgpO1xuICBjb25zdCB7IHJ1bGVzT3V0cHV0OiByZXN1bHQgfSA9IHByb2Nlc3NSdWxlcyhiZWZvcmUsIG5ld01vZGVsLCBERUZBVUxUX1JVTEVTKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9CZSgwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXI6IGFueSwgYmVmb3JlOiBJbmZyYU1vZGVsLCB0eXBlOiBPcGVyYXRpb25UeXBlLCBwcm9wZXJ0aWVzOiBwcm9wZXJ0eVtdKTogdm9pZCB7XG4gIGNvbnN0IHtncmFwaDogZywgZmlyc3RWZXJ0ZXh9ID0gcHJvY2VzcyhhZnRlciwgYmVmb3JlKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChnLnYoZmlyc3RWZXJ0ZXgpLnJ1bigpKS50b0hhdmVMZW5ndGgoMSk7XG4gIGV4cGVjdChnLnYoZmlyc3RWZXJ0ZXgpLnJ1bigpWzBdKS50b01hdGNoT2JqZWN0KHsgcHJvcGVydHlPcGVyYXRpb25UeXBlOiB0eXBlIH0pO1xuICBjb25zdCBwcm9wZXJ0eVZlcnRpY2VzID0gZy52KGZpcnN0VmVydGV4KS5vdXQoJ2FwcGxpZXNUbycpLmZpbHRlcih7ZW50aXR5VHlwZTogJ3Byb3BlcnR5J30pO1xuICAvLyBDaGVja2luZyBmb3IgdHdvIHByb3BlcnRpZXMgaW5kaWNhdGVzIGFuIHVwZGF0ZSBiZXR3ZWVuIHR3byByZWNvcmRzXG4gIC8vIFRoZXJlZm9yZSB3ZSB0YWtlIHRoZSBvdXQgZ29pbmcgZWRnZXMgb2YgdGhvc2UgdHdvIHJlY29yZHNcbiAgY29uc3QgdmVydGljZXMgPSAocHJvcGVydGllcy5sZW5ndGggPiAxID8gcHJvcGVydHlWZXJ0aWNlcy5vdXRBbnkoKTogcHJvcGVydHlWZXJ0aWNlcykucnVuKCk7XG4gIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiBleHBlY3QodmVydGljZXMpLnRvQ29udGFpbk9iamVjdChwcm9wZXJ0eSkpO1xufSJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxpYW5jZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tcGxpYW5jZS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUEyQztBQUczQyxtQ0FBc0Q7QUFDdEQsb0NBQWtEO0FBRWxELE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxnQkFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsbUJBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBUXBILFNBQWdCLE9BQU8sQ0FBQyxLQUFVLEVBQUUsTUFBa0I7SUFDcEQsT0FBTztJQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckQsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSxvQkFBWSxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckYsTUFBTSxXQUFXLEdBQUcsSUFBQSxnQkFBUSxFQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ2hDLENBQUM7QUFORCwwQkFNQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLEtBQVUsRUFBRSxNQUFrQixFQUFFLElBQW1CLEVBQUUsVUFBc0I7SUFDN0csT0FBTztJQUNQLE1BQU0sRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdkQsT0FBTztJQUNQLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztJQUN0RixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBVkQsa0RBVUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFVLEVBQUUsTUFBa0I7SUFDakUsT0FBTztJQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckQsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFBLG9CQUFZLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUU5RSxPQUFPO0lBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQVBELG9EQU9DO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsS0FBVSxFQUFFLE1BQWtCLEVBQUUsSUFBbUIsRUFBRSxVQUFzQjtJQUM3RyxNQUFNLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXZELE9BQU87SUFDUCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUM1RixzRUFBc0U7SUFDdEUsNkRBQTZEO0lBQzdELE1BQU0sUUFBUSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFBLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzdGLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQVhELGtEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0ZQYXJzZXIgfSBmcm9tICdAYXdzLWMyYS9lbmdpbmUnO1xuaW1wb3J0IHsgSW5mcmFNb2RlbCwgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IElhbUNoYW5nZXMsIFNlY3VyaXR5R3JvdXAgfSBmcm9tICcuLi8uLi9saWInO1xuaW1wb3J0IHsgcHJvY2Vzc1J1bGVzLCBmaXJzdEtleSB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgREVGQVVMVF9SVUxFUyA9IFsuLi5JYW1DaGFuZ2VzLkJyb2FkZW5pbmdQZXJtaXNzaW9ucygpLnJ1bGVzLCAuLi5TZWN1cml0eUdyb3VwLkJyb2FkZW5pbmdQZXJtaXNzaW9ucygpLnJ1bGVzXTtcbnR5cGUgcHJvcGVydHkgPSB7IHZhbHVlOiBzdHJpbmcgfTtcblxuaW50ZXJmYWNlIFByb2Nlc3NPdXRwdXQge1xuICBncmFwaDogZm4uR3JhcGg8YW55LCB7X2xhYmVsOiBzdHJpbmcsIF9pbjogc3RyaW5nLCBfb3V0OiBzdHJpbmd9PjtcbiAgZmlyc3RWZXJ0ZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3MoYWZ0ZXI6IGFueSwgYmVmb3JlOiBJbmZyYU1vZGVsKTogUHJvY2Vzc091dHB1dCB7XG4gIC8vIFdIRU5cbiAgY29uc3QgbmV3TW9kZWwgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBhZnRlcikucGFyc2UoKTtcbiAgY29uc3QgeyBncmFwaCwgcnVsZXNPdXRwdXQ6IHJlc3VsdCB9ID0gcHJvY2Vzc1J1bGVzKGJlZm9yZSwgbmV3TW9kZWwsIERFRkFVTFRfUlVMRVMpO1xuICBjb25zdCBmaXJzdFZlcnRleCA9IGZpcnN0S2V5KHJlc3VsdCkuX2lkO1xuICByZXR1cm4geyBncmFwaCwgZmlyc3RWZXJ0ZXggfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRIRU5fZXhwZWN0UmVzb3VyY2UoYWZ0ZXI6IGFueSwgYmVmb3JlOiBJbmZyYU1vZGVsLCB0eXBlOiBPcGVyYXRpb25UeXBlLCBwcm9wZXJ0aWVzOiBwcm9wZXJ0eVtdKTogdm9pZCB7XG4gIC8vIFdIRU5cbiAgY29uc3Qge2dyYXBoOiBnLCBmaXJzdFZlcnRleH0gPSBwcm9jZXNzKGFmdGVyLCBiZWZvcmUpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGcudihmaXJzdFZlcnRleCkucnVuKCkpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgZXhwZWN0KGcudihmaXJzdFZlcnRleCkucnVuKClbMF0pLnRvTWF0Y2hPYmplY3QoeyB0eXBlIH0pO1xuICBjb25zdCBjb21wb25lbnQgPSBnLnYoZmlyc3RWZXJ0ZXgpLm91dCgnYXBwbGllc1RvJykuZmlsdGVyKHtlbnRpdHlUeXBlOiAnY29tcG9uZW50J30pO1xuICBjb25zdCB2ZXJ0aWNlcyA9IGNvbXBvbmVudC5vdXRBbnkoKS5maWx0ZXIoe2VudGl0eVR5cGU6ICdwcm9wZXJ0eSd9KS5ydW4oKTtcbiAgcHJvcGVydGllcy5mb3JFYWNoKHByb3BlcnR5ID0+IGV4cGVjdCh2ZXJ0aWNlcykudG9Db250YWluT2JqZWN0KHByb3BlcnR5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUSEVOX2V4cGVjdE5vUmVzdWx0cyhhZnRlcjogYW55LCBiZWZvcmU6IEluZnJhTW9kZWwpOiB2b2lkIHtcbiAgLy8gV0hFTlxuICBjb25zdCBuZXdNb2RlbCA9IG5ldyBDRlBhcnNlcigncm9vdCcsIGFmdGVyKS5wYXJzZSgpO1xuICBjb25zdCB7IHJ1bGVzT3V0cHV0OiByZXN1bHQgfSA9IHByb2Nlc3NSdWxlcyhiZWZvcmUsIG5ld01vZGVsLCBERUZBVUxUX1JVTEVTKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9CZSgwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRIRU5fZXhwZWN0UHJvcGVydHkoYWZ0ZXI6IGFueSwgYmVmb3JlOiBJbmZyYU1vZGVsLCB0eXBlOiBPcGVyYXRpb25UeXBlLCBwcm9wZXJ0aWVzOiBwcm9wZXJ0eVtdKTogdm9pZCB7XG4gIGNvbnN0IHtncmFwaDogZywgZmlyc3RWZXJ0ZXh9ID0gcHJvY2VzcyhhZnRlciwgYmVmb3JlKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChnLnYoZmlyc3RWZXJ0ZXgpLnJ1bigpKS50b0hhdmVMZW5ndGgoMSk7XG4gIGV4cGVjdChnLnYoZmlyc3RWZXJ0ZXgpLnJ1bigpWzBdKS50b01hdGNoT2JqZWN0KHsgcHJvcGVydHlPcGVyYXRpb25UeXBlOiB0eXBlIH0pO1xuICBjb25zdCBwcm9wZXJ0eVZlcnRpY2VzID0gZy52KGZpcnN0VmVydGV4KS5vdXQoJ2FwcGxpZXNUbycpLmZpbHRlcih7ZW50aXR5VHlwZTogJ3Byb3BlcnR5J30pO1xuICAvLyBDaGVja2luZyBmb3IgdHdvIHByb3BlcnRpZXMgaW5kaWNhdGVzIGFuIHVwZGF0ZSBiZXR3ZWVuIHR3byByZWNvcmRzXG4gIC8vIFRoZXJlZm9yZSB3ZSB0YWtlIHRoZSBvdXQgZ29pbmcgZWRnZXMgb2YgdGhvc2UgdHdvIHJlY29yZHNcbiAgY29uc3QgdmVydGljZXMgPSAocHJvcGVydGllcy5sZW5ndGggPiAxID8gcHJvcGVydHlWZXJ0aWNlcy5vdXRBbnkoKTogcHJvcGVydHlWZXJ0aWNlcykucnVuKCk7XG4gIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiBleHBlY3QodmVydGljZXMpLnRvQ29udGFpbk9iamVjdChwcm9wZXJ0eSkpO1xufSJdfQ== |
@@ -9,3 +9,3 @@ "use strict"; | ||
const diff = new engine_1.DiffCreator(new models_1.Transition({ v1: oldModel, v2: newModel })).create(); | ||
const _rules = engine_1.parseRules(rules); | ||
const _rules = (0, engine_1.parseRules)(rules); | ||
const graph = diff.generateOutgoingGraph(); | ||
@@ -19,3 +19,3 @@ return { | ||
function cfnWithPolicyDocument(source, type, policy) { | ||
const target = object_1.copy(source); | ||
const target = (0, object_1.copy)(source); | ||
const id = type.replace(/::/g, '-'); | ||
@@ -52,2 +52,2 @@ const policyDocument = { | ||
exports.firstKey = firstKey; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFxRjtBQUNyRiw0Q0FBeUQ7QUFHekQscURBQWdEO0FBT2hELFNBQWdCLFlBQVksQ0FBQyxRQUFvQixFQUFFLFFBQW9CLEVBQUUsS0FBaUI7SUFDeEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxvQkFBVyxDQUFDLElBQUksbUJBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBYyxtQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzNDLE9BQU87UUFDTCxLQUFLO1FBQ0wsV0FBVyxFQUFFLElBQUksc0JBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0tBQzNELENBQUM7QUFDSixDQUFDO0FBUkQsb0NBUUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFXLEVBQUUsSUFBWSxFQUFFLE1BQWU7SUFDOUUsTUFBTSxNQUFNLEdBQUcsYUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sY0FBYyxHQUFHO1FBQ3JCLGNBQWMsRUFBRTtZQUNkLFNBQVMsRUFBRSxDQUFFLHdDQUFnQyxDQUFFO1NBQ2hEO0tBQ0YsQ0FBQztJQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUc7UUFDckIsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUU7WUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztTQUM1RDtLQUNGLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBZkQsc0RBZUM7QUFFWSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxPQUFPO0lBQ2YsTUFBTSxFQUFFLFdBQVc7SUFDbkIsUUFBUSxFQUFFLEdBQUc7SUFDYixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7Q0FDN0MsQ0FBQztBQUVXLFFBQUEsZ0NBQWdDLEdBQUc7SUFDOUMsTUFBTSxFQUFFLE1BQU07SUFDZCxNQUFNLEVBQUUsV0FBVztJQUNuQixRQUFRLEVBQUUsR0FBRztJQUNiLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtDQUM3QyxDQUFDO0FBR0ssTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFrQixFQUFFLE1BQThCLEVBQU8sRUFBRTtJQUNsRixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDLENBQUM7QUFGVyxRQUFBLFFBQVEsWUFFbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWZmQ3JlYXRvciwgUnVsZVByb2Nlc3NvciwgcGFyc2VSdWxlcywgUnVsZU91dHB1dCB9IGZyb20gJ0Bhd3MtYzJhL2VuZ2luZSc7XG5pbXBvcnQgeyBJbmZyYU1vZGVsLCBUcmFuc2l0aW9uIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IENVc2VyUnVsZXMsIFVzZXJSdWxlcyB9IGZyb20gJ0Bhd3MtYzJhL3J1bGVzJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBjb3B5IH0gZnJvbSAnLi4vLi4vbGliL3ByaXZhdGUvb2JqZWN0JztcblxuaW50ZXJmYWNlIFByb2Nlc3NSdWxlc091dHB1dCB7XG4gIGdyYXBoOiBHcmFwaDxhbnksIHtfbGFiZWw6IHN0cmluZywgX2luOiBzdHJpbmcsIF9vdXQ6IHN0cmluZ30+O1xuICBydWxlc091dHB1dDogUnVsZU91dHB1dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSdWxlcyhvbGRNb2RlbDogSW5mcmFNb2RlbCwgbmV3TW9kZWw6IEluZnJhTW9kZWwsIHJ1bGVzOiBDVXNlclJ1bGVzKTogUHJvY2Vzc1J1bGVzT3V0cHV0IHtcbiAgY29uc3QgZGlmZiA9IG5ldyBEaWZmQ3JlYXRvcihuZXcgVHJhbnNpdGlvbih7IHYxOiBvbGRNb2RlbCwgdjI6IG5ld01vZGVsIH0pKS5jcmVhdGUoKTtcbiAgY29uc3QgX3J1bGVzOiBVc2VyUnVsZXMgPSBwYXJzZVJ1bGVzKHJ1bGVzKTtcbiAgY29uc3QgZ3JhcGggPSBkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpO1xuICByZXR1cm4ge1xuICAgIGdyYXBoLFxuICAgIHJ1bGVzT3V0cHV0OiBuZXcgUnVsZVByb2Nlc3NvcihncmFwaCkucHJvY2Vzc1J1bGVzKF9ydWxlcyksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjZm5XaXRoUG9saWN5RG9jdW1lbnQoc291cmNlOiBhbnksIHR5cGU6IHN0cmluZywgcG9saWN5Pzogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgdGFyZ2V0ID0gY29weShzb3VyY2UpO1xuICBjb25zdCBpZCA9IHR5cGUucmVwbGFjZSgvOjovZywgJy0nKTtcbiAgY29uc3QgcG9saWN5RG9jdW1lbnQgPSB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogWyBhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCBdLFxuICAgIH0sXG4gIH07XG4gIHRhcmdldC5SZXNvdXJjZXNbaWRdID0ge1xuICAgIFR5cGU6IHR5cGUsXG4gICAgUHJvcGVydGllczoge1xuICAgICAgLi4uKHBvbGljeSA/IHsgW3BvbGljeV06IHBvbGljeURvY3VtZW50IH0gOiBwb2xpY3lEb2N1bWVudCksXG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZXhwb3J0IGNvbnN0IGFyYml0cmFyeVBvbGljeVN0YXRlbWVudCA9IHtcbiAgRWZmZWN0OiAnQWxsb3cnLFxuICBBY3Rpb246ICd0ZXN0OlRlc3QnLFxuICBSZXNvdXJjZTogJyonLFxuICBQcmluY2lwYWw6IHsgU2VydmljZTogJ3Rlc3QuYW1hem9uYXdzLmNvbScgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBhcmJpdHJhcnlOZWdhdGl2ZVBvbGljeVN0YXRlbWVudCA9IHtcbiAgRWZmZWN0OiAnRGVueScsXG4gIEFjdGlvbjogJ3Rlc3Q6VGVzdCcsXG4gIFJlc291cmNlOiAnKicsXG4gIFByaW5jaXBhbDogeyBTZXJ2aWNlOiAndGVzdC5hbWF6b25hd3MuY29tJyB9LFxufTtcblxuXG5leHBvcnQgY29uc3QgZmlyc3RLZXkgPSAob3V0cHV0OiBSdWxlT3V0cHV0LCBmaW5kQ2I/OiAob3V0OiBhbnkpID0+IGJvb2xlYW4pOiBhbnkgPT4ge1xuICByZXR1cm4gZmluZENiID8gWy4uLm91dHB1dF1bMF1bMF0uX291dC5maW5kKGZpbmRDYikgOiBbLi4ub3V0cHV0XVswXVswXTtcbn07Il19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFxRjtBQUNyRiw0Q0FBeUQ7QUFHekQscURBQWdEO0FBT2hELFNBQWdCLFlBQVksQ0FBQyxRQUFvQixFQUFFLFFBQW9CLEVBQUUsS0FBaUI7SUFDeEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxvQkFBVyxDQUFDLElBQUksbUJBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBYyxJQUFBLG1CQUFVLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDM0MsT0FBTztRQUNMLEtBQUs7UUFDTCxXQUFXLEVBQUUsSUFBSSxzQkFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7S0FDM0QsQ0FBQztBQUNKLENBQUM7QUFSRCxvQ0FRQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLE1BQVcsRUFBRSxJQUFZLEVBQUUsTUFBZTtJQUM5RSxNQUFNLE1BQU0sR0FBRyxJQUFBLGFBQUksRUFBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwQyxNQUFNLGNBQWMsR0FBRztRQUNyQixjQUFjLEVBQUU7WUFDZCxTQUFTLEVBQUUsQ0FBRSx3Q0FBZ0MsQ0FBRTtTQUNoRDtLQUNGLENBQUM7SUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHO1FBQ3JCLElBQUksRUFBRSxJQUFJO1FBQ1YsVUFBVSxFQUFFO1lBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7U0FDNUQ7S0FDRixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQWZELHNEQWVDO0FBRVksUUFBQSx3QkFBd0IsR0FBRztJQUN0QyxNQUFNLEVBQUUsT0FBTztJQUNmLE1BQU0sRUFBRSxXQUFXO0lBQ25CLFFBQVEsRUFBRSxHQUFHO0lBQ2IsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFO0NBQzdDLENBQUM7QUFFVyxRQUFBLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsTUFBTSxFQUFFLFdBQVc7SUFDbkIsUUFBUSxFQUFFLEdBQUc7SUFDYixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7Q0FDN0MsQ0FBQztBQUdLLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBa0IsRUFBRSxNQUE4QixFQUFPLEVBQUU7SUFDbEYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxRQUFRLFlBRW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlmZkNyZWF0b3IsIFJ1bGVQcm9jZXNzb3IsIHBhcnNlUnVsZXMsIFJ1bGVPdXRwdXQgfSBmcm9tICdAYXdzLWMyYS9lbmdpbmUnO1xuaW1wb3J0IHsgSW5mcmFNb2RlbCwgVHJhbnNpdGlvbiB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBDVXNlclJ1bGVzLCBVc2VyUnVsZXMgfSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gJ2ZpZmluZXQnO1xuaW1wb3J0IHsgY29weSB9IGZyb20gJy4uLy4uL2xpYi9wcml2YXRlL29iamVjdCc7XG5cbmludGVyZmFjZSBQcm9jZXNzUnVsZXNPdXRwdXQge1xuICBncmFwaDogR3JhcGg8YW55LCB7X2xhYmVsOiBzdHJpbmcsIF9pbjogc3RyaW5nLCBfb3V0OiBzdHJpbmd9PjtcbiAgcnVsZXNPdXRwdXQ6IFJ1bGVPdXRwdXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzUnVsZXMob2xkTW9kZWw6IEluZnJhTW9kZWwsIG5ld01vZGVsOiBJbmZyYU1vZGVsLCBydWxlczogQ1VzZXJSdWxlcyk6IFByb2Nlc3NSdWxlc091dHB1dCB7XG4gIGNvbnN0IGRpZmYgPSBuZXcgRGlmZkNyZWF0b3IobmV3IFRyYW5zaXRpb24oeyB2MTogb2xkTW9kZWwsIHYyOiBuZXdNb2RlbCB9KSkuY3JlYXRlKCk7XG4gIGNvbnN0IF9ydWxlczogVXNlclJ1bGVzID0gcGFyc2VSdWxlcyhydWxlcyk7XG4gIGNvbnN0IGdyYXBoID0gZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKTtcbiAgcmV0dXJuIHtcbiAgICBncmFwaCxcbiAgICBydWxlc091dHB1dDogbmV3IFJ1bGVQcm9jZXNzb3IoZ3JhcGgpLnByb2Nlc3NSdWxlcyhfcnVsZXMpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2ZuV2l0aFBvbGljeURvY3VtZW50KHNvdXJjZTogYW55LCB0eXBlOiBzdHJpbmcsIHBvbGljeT86IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHRhcmdldCA9IGNvcHkoc291cmNlKTtcbiAgY29uc3QgaWQgPSB0eXBlLnJlcGxhY2UoLzo6L2csICctJyk7XG4gIGNvbnN0IHBvbGljeURvY3VtZW50ID0ge1xuICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFsgYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQgXSxcbiAgICB9LFxuICB9O1xuICB0YXJnZXQuUmVzb3VyY2VzW2lkXSA9IHtcbiAgICBUeXBlOiB0eXBlLFxuICAgIFByb3BlcnRpZXM6IHtcbiAgICAgIC4uLihwb2xpY3kgPyB7IFtwb2xpY3ldOiBwb2xpY3lEb2N1bWVudCB9IDogcG9saWN5RG9jdW1lbnQpLFxuICAgIH0sXG4gIH07XG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmV4cG9ydCBjb25zdCBhcmJpdHJhcnlQb2xpY3lTdGF0ZW1lbnQgPSB7XG4gIEVmZmVjdDogJ0FsbG93JyxcbiAgQWN0aW9uOiAndGVzdDpUZXN0JyxcbiAgUmVzb3VyY2U6ICcqJyxcbiAgUHJpbmNpcGFsOiB7IFNlcnZpY2U6ICd0ZXN0LmFtYXpvbmF3cy5jb20nIH0sXG59O1xuXG5leHBvcnQgY29uc3QgYXJiaXRyYXJ5TmVnYXRpdmVQb2xpY3lTdGF0ZW1lbnQgPSB7XG4gIEVmZmVjdDogJ0RlbnknLFxuICBBY3Rpb246ICd0ZXN0OlRlc3QnLFxuICBSZXNvdXJjZTogJyonLFxuICBQcmluY2lwYWw6IHsgU2VydmljZTogJ3Rlc3QuYW1hem9uYXdzLmNvbScgfSxcbn07XG5cblxuZXhwb3J0IGNvbnN0IGZpcnN0S2V5ID0gKG91dHB1dDogUnVsZU91dHB1dCwgZmluZENiPzogKG91dDogYW55KSA9PiBib29sZWFuKTogYW55ID0+IHtcbiAgcmV0dXJuIGZpbmRDYiA/IFsuLi5vdXRwdXRdWzBdWzBdLl9vdXQuZmluZChmaW5kQ2IpIDogWy4uLm91dHB1dF1bMF1bMF07XG59OyJdfQ== |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
270561
3
+ Added@aws-c2a/engine@0.6.1(transitive)
+ Added@aws-c2a/models@0.6.1(transitive)
+ Added@aws-c2a/rules@0.6.1(transitive)
+ Added@aws-cdk/cfnspec@1.115.0(transitive)
- Removed@aws-c2a/engine@0.5.0(transitive)
- Removed@aws-c2a/models@0.5.0(transitive)
- Removed@aws-c2a/rules@0.5.0(transitive)
- Removed@aws-cdk/cfnspec@1.204.0(transitive)
- Removedat-least-node@1.0.0(transitive)
- Removedfs-extra@9.1.0(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedjsonfile@6.1.0(transitive)
- Removeduniversalify@2.0.1(transitive)
Updated@aws-c2a/engine@^0.6.0
Updated@aws-c2a/models@^0.6.0
Updated@aws-c2a/rules@^0.6.0