cdk-amazon-chime-resources
Version:

145 lines • 20.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.handler = void 0;
const appInstance_1 = require("./appInstance");
const channelFlow_1 = require("./channelFlow");
const dataRetention_1 = require("./dataRetention");
const instanceAdmin_1 = require("./instanceAdmin");
const instanceBot_1 = require("./instanceBot");
const instanceUser_1 = require("./instanceUser");
const streamingConfig_1 = require("./streamingConfig");
const response = {};
let resourcePropertiesUid;
let requestProperties;
const handler = async (event, context) => {
console.info('event: ', JSON.stringify(event));
const resourceType = event.ResourceProperties.resourceType;
const requestType = event.RequestType;
resourcePropertiesUid = event.ResourceProperties.uid;
requestProperties = event.ResourceProperties.properties;
response.StackId = event.StackId;
response.RequestId = event.RequestId;
response.LogicalResourceId = event.LogicalResourceId;
response.PhysicalResourceId = context.logGroupName;
switch (resourceType) {
case 'AppInstance':
switch (requestType) {
case 'Create':
response.Data = await (0, appInstance_1.CreateAppInstance)(resourcePropertiesUid, requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'CreateAppInstance successful';
break;
case 'Update':
response.Status = 'SUCCESS';
break;
case 'Delete':
await (0, appInstance_1.DeleteAppInstance)(resourcePropertiesUid);
response.Status = 'SUCCESS';
response.Reason = 'DeleteAppInstance successful';
break;
}
break;
case 'ChannelFlow':
switch (requestType) {
case 'Create':
response.Data = await (0, channelFlow_1.CreateChannelFlow)(resourcePropertiesUid, requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'CreateChannelFlow successful';
break;
case 'Update':
response.Data = await (0, channelFlow_1.UpdateChannelFlow)(resourcePropertiesUid, requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'UpdateChannelFlow successful';
break;
case 'Delete':
await (0, channelFlow_1.DeleteChannelFlow)(resourcePropertiesUid);
response.Status = 'SUCCESS';
response.Reason = 'DeleteChannelFlow successful';
break;
}
break;
case 'DataRetention':
switch (requestType) {
case 'Create':
response.Data = await (0, dataRetention_1.PutDataRetention)(requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'PutDataRetention successful';
break;
case 'Update':
response.Data = await (0, dataRetention_1.PutDataRetention)(requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'PutDataRetention successful';
break;
}
break;
case 'AppInstanceAdmin':
switch (requestType) {
case 'Create':
response.Data = await (0, instanceAdmin_1.CreateAppInstanceAdmin)(resourcePropertiesUid, requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'CreateAppInstanceAdmin successful';
break;
case 'Update':
response.Status = 'SUCCESS';
break;
case 'Delete':
await (0, instanceAdmin_1.DeleteAppInstanceAdmin)(resourcePropertiesUid);
response.Status = 'SUCCESS';
response.Reason = 'DeleteAppInstanceAdmin successful';
break;
}
break;
case 'AppInstanceUser':
switch (requestType) {
case 'Create':
response.Data = await (0, instanceUser_1.CreateAppInstanceUser)(resourcePropertiesUid, requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'CreateAppInstanceUser successful';
break;
case 'Update':
response.Status = 'SUCCESS';
break;
case 'Delete':
await (0, instanceUser_1.DeleteAppInstanceUser)(resourcePropertiesUid);
response.Status = 'SUCCESS';
response.Reason = 'DeleteAppInstanceUser successful';
break;
}
break;
case 'AppInstanceBot':
switch (requestType) {
case 'Create':
response.Data = await (0, instanceBot_1.CreateAppInstanceBot)(resourcePropertiesUid, requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'CreateAppInstanceBot successful';
break;
case 'Update':
response.Status = 'SUCCESS';
break;
case 'Delete':
await (0, instanceBot_1.DeleteAppInstanceBot)(resourcePropertiesUid);
response.Status = 'SUCCESS';
response.Reason = 'DeleteAppInstanceUser successful';
break;
}
break;
case 'StreamingConfig':
switch (requestType) {
case 'Create':
response.Data = await (0, streamingConfig_1.PutStreamingConfiguration)(requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'PutStreamingConfiguration successful';
break;
case 'Update':
response.Data = await (0, streamingConfig_1.PutStreamingConfiguration)(requestProperties);
response.Status = 'SUCCESS';
response.Reason = 'PutStreamingConfiguration successful';
break;
}
break;
}
console.log(`Response: ${JSON.stringify(response)}`);
return response;
};
exports.handler = handler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL21lc3NhZ2luZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSwrQ0FBcUU7QUFDckUsK0NBSXVCO0FBQ3ZCLG1EQUFtRDtBQUNuRCxtREFHeUI7QUFDekIsK0NBQTJFO0FBQzNFLGlEQUE4RTtBQUM5RSx1REFBOEQ7QUFFOUQsTUFBTSxRQUFRLEdBQThCLEVBQUUsQ0FBQztBQUMvQyxJQUFJLHFCQUE2QixDQUFDO0FBQ2xDLElBQUksaUJBQXFCLENBQUM7QUFFbkIsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUMxQixLQUE2QixFQUM3QixPQUFnQixFQUNvQixFQUFFO0lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQzNELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDdEMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztJQUNyRCxpQkFBaUIsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBRXhELFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDckMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUNyRCxRQUFRLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUVuRCxRQUFRLFlBQVksRUFBRSxDQUFDO1FBQ3JCLEtBQUssYUFBYTtZQUNoQixRQUFRLFdBQVcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLFFB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LENBQUMsTUFBTSxHQUFHLGtDQUFrQyxDQUFDO29CQUNyRCxNQUFNO1lBQ1YsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLGlCQUFpQjtZQUNwQixRQUFRLFdBQVcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLFFBQVE7b0JBQ1gsUUFBUSxDQUFDLElBQUksR0FBRyxNQUFNLElBQUEsMkNBQXlCLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDbkUsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7b0JBQzVCLFFBQVEsQ0FBQyxNQUFNLEdBQUcsc0NBQXNDLENBQUM7b0JBQ3pELE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxJQUFBLDJDQUF5QixFQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ25FLFFBQVEsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO29CQUM1QixRQUFRLENBQUMsTUFBTSxHQUFHLHNDQUFzQyxDQUFDO29CQUN6RCxNQUFNO1lBQ1YsQ0FBQztZQUNELE1BQU07SUFDVixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQTdKVyxRQUFBLE9BQU8sV0E2SmxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2RrQ3VzdG9tUmVzb3VyY2VFdmVudCxcbiAgQ2RrQ3VzdG9tUmVzb3VyY2VSZXNwb25zZSxcbiAgQ29udGV4dCxcbn0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDcmVhdGVBcHBJbnN0YW5jZSwgRGVsZXRlQXBwSW5zdGFuY2UgfSBmcm9tICcuL2FwcEluc3RhbmNlJztcbmltcG9ydCB7XG4gIENyZWF0ZUNoYW5uZWxGbG93LFxuICBEZWxldGVDaGFubmVsRmxvdyxcbiAgVXBkYXRlQ2hhbm5lbEZsb3csXG59IGZyb20gJy4vY2hhbm5lbEZsb3cnO1xuaW1wb3J0IHsgUHV0RGF0YVJldGVudGlvbiB9IGZyb20gJy4vZGF0YVJldGVudGlvbic7XG5pbXBvcnQge1xuICBDcmVhdGVBcHBJbnN0YW5jZUFkbWluLFxuICBEZWxldGVBcHBJbnN0YW5jZUFkbWluLFxufSBmcm9tICcuL2luc3RhbmNlQWRtaW4nO1xuaW1wb3J0IHsgQ3JlYXRlQXBwSW5zdGFuY2VCb3QsIERlbGV0ZUFwcEluc3RhbmNlQm90IH0gZnJvbSAnLi9pbnN0YW5jZUJvdCc7XG5pbXBvcnQgeyBDcmVhdGVBcHBJbnN0YW5jZVVzZXIsIERlbGV0ZUFwcEluc3RhbmNlVXNlciB9IGZyb20gJy4vaW5zdGFuY2VVc2VyJztcbmltcG9ydCB7IFB1dFN0cmVhbWluZ0NvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3N0cmVhbWluZ0NvbmZpZyc7XG5cbmNvbnN0IHJlc3BvbnNlOiBDZGtDdXN0b21SZXNvdXJjZVJlc3BvbnNlID0ge307XG5sZXQgcmVzb3VyY2VQcm9wZXJ0aWVzVWlkOiBzdHJpbmc7XG5sZXQgcmVxdWVzdFByb3BlcnRpZXM6IHt9O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChcbiAgZXZlbnQ6IENka0N1c3RvbVJlc291cmNlRXZlbnQsXG4gIGNvbnRleHQ6IENvbnRleHQsXG4pOiBQcm9taXNlPENka0N1c3RvbVJlc291cmNlUmVzcG9uc2U+ID0+IHtcbiAgY29uc29sZS5pbmZvKCdldmVudDogJywgSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcbiAgY29uc3QgcmVzb3VyY2VUeXBlID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLnJlc291cmNlVHlwZTtcbiAgY29uc3QgcmVxdWVzdFR5cGUgPSBldmVudC5SZXF1ZXN0VHlwZTtcbiAgcmVzb3VyY2VQcm9wZXJ0aWVzVWlkID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLnVpZDtcbiAgcmVxdWVzdFByb3BlcnRpZXMgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMucHJvcGVydGllcztcblxuICByZXNwb25zZS5TdGFja0lkID0gZXZlbnQuU3RhY2tJZDtcbiAgcmVzcG9uc2UuUmVxdWVzdElkID0gZXZlbnQuUmVxdWVzdElkO1xuICByZXNwb25zZS5Mb2dpY2FsUmVzb3VyY2VJZCA9IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkO1xuICByZXNwb25zZS5QaHlzaWNhbFJlc291cmNlSWQgPSBjb250ZXh0LmxvZ0dyb3VwTmFtZTtcblxuICBzd2l0Y2ggKHJlc291cmNlVHlwZSkge1xuICAgIGNhc2UgJ0FwcEluc3RhbmNlJzpcbiAgICAgIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICAgICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgICAgICByZXNwb25zZS5EYXRhID0gYXdhaXQgQ3JlYXRlQXBwSW5zdGFuY2UoXG4gICAgICAgICAgICByZXNvdXJjZVByb3BlcnRpZXNVaWQsXG4gICAgICAgICAgICByZXF1ZXN0UHJvcGVydGllcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cyA9ICdTVUNDRVNTJztcbiAgICAgICAgICByZXNwb25zZS5SZWFzb24gPSAnQ3JlYXRlQXBwSW5zdGFuY2Ugc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1VwZGF0ZSc6XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICAgIGF3YWl0IERlbGV0ZUFwcEluc3RhbmNlKHJlc291cmNlUHJvcGVydGllc1VpZCk7XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIHJlc3BvbnNlLlJlYXNvbiA9ICdEZWxldGVBcHBJbnN0YW5jZSBzdWNjZXNzZnVsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnQ2hhbm5lbEZsb3cnOlxuICAgICAgc3dpdGNoIChyZXF1ZXN0VHlwZSkge1xuICAgICAgICBjYXNlICdDcmVhdGUnOlxuICAgICAgICAgIHJlc3BvbnNlLkRhdGEgPSBhd2FpdCBDcmVhdGVDaGFubmVsRmxvdyhcbiAgICAgICAgICAgIHJlc291cmNlUHJvcGVydGllc1VpZCxcbiAgICAgICAgICAgIHJlcXVlc3RQcm9wZXJ0aWVzLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIHJlc3BvbnNlLlJlYXNvbiA9ICdDcmVhdGVDaGFubmVsRmxvdyBzdWNjZXNzZnVsJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnVXBkYXRlJzpcbiAgICAgICAgICByZXNwb25zZS5EYXRhID0gYXdhaXQgVXBkYXRlQ2hhbm5lbEZsb3coXG4gICAgICAgICAgICByZXNvdXJjZVByb3BlcnRpZXNVaWQsXG4gICAgICAgICAgICByZXF1ZXN0UHJvcGVydGllcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cyA9ICdTVUNDRVNTJztcbiAgICAgICAgICByZXNwb25zZS5SZWFzb24gPSAnVXBkYXRlQ2hhbm5lbEZsb3cgc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgICAgYXdhaXQgRGVsZXRlQ2hhbm5lbEZsb3cocmVzb3VyY2VQcm9wZXJ0aWVzVWlkKTtcbiAgICAgICAgICByZXNwb25zZS5TdGF0dXMgPSAnU1VDQ0VTUyc7XG4gICAgICAgICAgcmVzcG9uc2UuUmVhc29uID0gJ0RlbGV0ZUNoYW5uZWxGbG93IHN1Y2Nlc3NmdWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdEYXRhUmV0ZW50aW9uJzpcbiAgICAgIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICAgICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgICAgICByZXNwb25zZS5EYXRhID0gYXdhaXQgUHV0RGF0YVJldGVudGlvbihyZXF1ZXN0UHJvcGVydGllcyk7XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIHJlc3BvbnNlLlJlYXNvbiA9ICdQdXREYXRhUmV0ZW50aW9uIHN1Y2Nlc3NmdWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgICAgIHJlc3BvbnNlLkRhdGEgPSBhd2FpdCBQdXREYXRhUmV0ZW50aW9uKHJlcXVlc3RQcm9wZXJ0aWVzKTtcbiAgICAgICAgICByZXNwb25zZS5TdGF0dXMgPSAnU1VDQ0VTUyc7XG4gICAgICAgICAgcmVzcG9uc2UuUmVhc29uID0gJ1B1dERhdGFSZXRlbnRpb24gc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ0FwcEluc3RhbmNlQWRtaW4nOlxuICAgICAgc3dpdGNoIChyZXF1ZXN0VHlwZSkge1xuICAgICAgICBjYXNlICdDcmVhdGUnOlxuICAgICAgICAgIHJlc3BvbnNlLkRhdGEgPSBhd2FpdCBDcmVhdGVBcHBJbnN0YW5jZUFkbWluKFxuICAgICAgICAgICAgcmVzb3VyY2VQcm9wZXJ0aWVzVWlkLFxuICAgICAgICAgICAgcmVxdWVzdFByb3BlcnRpZXMsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXNwb25zZS5TdGF0dXMgPSAnU1VDQ0VTUyc7XG4gICAgICAgICAgcmVzcG9uc2UuUmVhc29uID0gJ0NyZWF0ZUFwcEluc3RhbmNlQWRtaW4gc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1VwZGF0ZSc6XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICAgIGF3YWl0IERlbGV0ZUFwcEluc3RhbmNlQWRtaW4ocmVzb3VyY2VQcm9wZXJ0aWVzVWlkKTtcbiAgICAgICAgICByZXNwb25zZS5TdGF0dXMgPSAnU1VDQ0VTUyc7XG4gICAgICAgICAgcmVzcG9uc2UuUmVhc29uID0gJ0RlbGV0ZUFwcEluc3RhbmNlQWRtaW4gc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ0FwcEluc3RhbmNlVXNlcic6XG4gICAgICBzd2l0Y2ggKHJlcXVlc3RUeXBlKSB7XG4gICAgICAgIGNhc2UgJ0NyZWF0ZSc6XG4gICAgICAgICAgcmVzcG9uc2UuRGF0YSA9IGF3YWl0IENyZWF0ZUFwcEluc3RhbmNlVXNlcihcbiAgICAgICAgICAgIHJlc291cmNlUHJvcGVydGllc1VpZCxcbiAgICAgICAgICAgIHJlcXVlc3RQcm9wZXJ0aWVzLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIHJlc3BvbnNlLlJlYXNvbiA9ICdDcmVhdGVBcHBJbnN0YW5jZVVzZXIgc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1VwZGF0ZSc6XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICAgIGF3YWl0IERlbGV0ZUFwcEluc3RhbmNlVXNlcihyZXNvdXJjZVByb3BlcnRpZXNVaWQpO1xuICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cyA9ICdTVUNDRVNTJztcbiAgICAgICAgICByZXNwb25zZS5SZWFzb24gPSAnRGVsZXRlQXBwSW5zdGFuY2VVc2VyIHN1Y2Nlc3NmdWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdBcHBJbnN0YW5jZUJvdCc6XG4gICAgICBzd2l0Y2ggKHJlcXVlc3RUeXBlKSB7XG4gICAgICAgIGNhc2UgJ0NyZWF0ZSc6XG4gICAgICAgICAgcmVzcG9uc2UuRGF0YSA9IGF3YWl0IENyZWF0ZUFwcEluc3RhbmNlQm90KFxuICAgICAgICAgICAgcmVzb3VyY2VQcm9wZXJ0aWVzVWlkLFxuICAgICAgICAgICAgcmVxdWVzdFByb3BlcnRpZXMsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXNwb25zZS5TdGF0dXMgPSAnU1VDQ0VTUyc7XG4gICAgICAgICAgcmVzcG9uc2UuUmVhc29uID0gJ0NyZWF0ZUFwcEluc3RhbmNlQm90IHN1Y2Nlc3NmdWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cyA9ICdTVUNDRVNTJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgICBhd2FpdCBEZWxldGVBcHBJbnN0YW5jZUJvdChyZXNvdXJjZVByb3BlcnRpZXNVaWQpO1xuICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cyA9ICdTVUNDRVNTJztcbiAgICAgICAgICByZXNwb25zZS5SZWFzb24gPSAnRGVsZXRlQXBwSW5zdGFuY2VVc2VyIHN1Y2Nlc3NmdWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnU3RyZWFtaW5nQ29uZmlnJzpcbiAgICAgIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICAgICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgICAgICByZXNwb25zZS5EYXRhID0gYXdhaXQgUHV0U3RyZWFtaW5nQ29uZmlndXJhdGlvbihyZXF1ZXN0UHJvcGVydGllcyk7XG4gICAgICAgICAgcmVzcG9uc2UuU3RhdHVzID0gJ1NVQ0NFU1MnO1xuICAgICAgICAgIHJlc3BvbnNlLlJlYXNvbiA9ICdQdXRTdHJlYW1pbmdDb25maWd1cmF0aW9uIHN1Y2Nlc3NmdWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgICAgIHJlc3BvbnNlLkRhdGEgPSBhd2FpdCBQdXRTdHJlYW1pbmdDb25maWd1cmF0aW9uKHJlcXVlc3RQcm9wZXJ0aWVzKTtcbiAgICAgICAgICByZXNwb25zZS5TdGF0dXMgPSAnU1VDQ0VTUyc7XG4gICAgICAgICAgcmVzcG9uc2UuUmVhc29uID0gJ1B1dFN0cmVhbWluZ0NvbmZpZ3VyYXRpb24gc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICBjb25zb2xlLmxvZyhgUmVzcG9uc2U6ICR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpfWApO1xuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuIl19