UNPKG

@aws-cdk/aws-certificatemanager

Version:

The CDK Construct Library for AWS::CertificateManager

47 lines 5.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCertificateRegion = exports.isDnsValidatedCertificate = exports.apexDomain = void 0; const core_1 = require("@aws-cdk/core"); const public_suffixes_1 = require("./public-suffixes"); /** * Returns the apex domain (domain.com) from a subdomain (www.sub.domain.com) */ function apexDomain(domainName) { const parts = domainName.split('.').reverse(); let curr = public_suffixes_1.publicSuffixes; const accumulated = []; for (const part of parts) { accumulated.push(part); if (!(part in curr)) { break; } curr = curr[part]; } return accumulated.reverse().join('.'); } exports.apexDomain = apexDomain; function isDnsValidatedCertificate(cert) { return cert.hasOwnProperty('domainName'); } exports.isDnsValidatedCertificate = isDnsValidatedCertificate; function getCertificateRegion(cert) { const { certificateArn, stack } = cert; if (isDnsValidatedCertificate(cert)) { const requestResource = cert.node.findChild('CertificateRequestorResource').node.defaultChild; // @ts-ignore const { _cfnProperties: properties } = requestResource; const { Region: region } = properties; if (region && !core_1.Token.isUnresolved(region)) { return region; } } { const { region } = core_1.Arn.split(certificateArn, core_1.ArnFormat.SLASH_RESOURCE_NAME); if (region && !core_1.Token.isUnresolved(region)) { return region; } } return core_1.Stack.of(stack).region; } exports.getCertificateRegion = getCertificateRegion; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBQTZEO0FBRzdELHVEQUFtRDtBQUVuRDs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxVQUFrQjtJQUMzQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRTlDLElBQUksSUFBSSxHQUFRLGdDQUFjLENBQUM7SUFFL0IsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO0lBQ2pDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQUUsTUFBTTtTQUFFO1FBQy9CLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbkI7SUFDRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQVpELGdDQVlDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsSUFBa0I7SUFDMUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFGRCw4REFFQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLElBQWtCO0lBQ3JELE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXZDLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRTlGLGFBQWE7UUFDYixNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxHQUFHLGVBQWUsQ0FBQztRQUN2RCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUV0QyxJQUFJLE1BQU0sSUFBSSxDQUFDLFlBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUM7U0FDZjtLQUNGO0lBRUQ7UUFDRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTVFLElBQUksTUFBTSxJQUFJLENBQUMsWUFBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QyxPQUFPLE1BQU0sQ0FBQztTQUNmO0tBQ0Y7SUFFRCxPQUFPLFlBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2hDLENBQUM7QUF4QkQsb0RBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJuLCBBcm5Gb3JtYXQsIFN0YWNrLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgSUNlcnRpZmljYXRlIH0gZnJvbSAnLi9jZXJ0aWZpY2F0ZSc7XG5pbXBvcnQgeyBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSB9IGZyb20gJy4vZG5zLXZhbGlkYXRlZC1jZXJ0aWZpY2F0ZSc7XG5pbXBvcnQgeyBwdWJsaWNTdWZmaXhlcyB9IGZyb20gJy4vcHVibGljLXN1ZmZpeGVzJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBhcGV4IGRvbWFpbiAoZG9tYWluLmNvbSkgZnJvbSBhIHN1YmRvbWFpbiAod3d3LnN1Yi5kb21haW4uY29tKVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBleERvbWFpbihkb21haW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0cyA9IGRvbWFpbk5hbWUuc3BsaXQoJy4nKS5yZXZlcnNlKCk7XG5cbiAgbGV0IGN1cnI6IGFueSA9IHB1YmxpY1N1ZmZpeGVzO1xuXG4gIGNvbnN0IGFjY3VtdWxhdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBhY2N1bXVsYXRlZC5wdXNoKHBhcnQpO1xuICAgIGlmICghKHBhcnQgaW4gY3VycikpIHsgYnJlYWs7IH1cbiAgICBjdXJyID0gY3VycltwYXJ0XTtcbiAgfVxuICByZXR1cm4gYWNjdW11bGF0ZWQucmV2ZXJzZSgpLmpvaW4oJy4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUoY2VydDogSUNlcnRpZmljYXRlKTogY2VydCBpcyBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSB7XG4gIHJldHVybiBjZXJ0Lmhhc093blByb3BlcnR5KCdkb21haW5OYW1lJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZVJlZ2lvbihjZXJ0OiBJQ2VydGlmaWNhdGUpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB7IGNlcnRpZmljYXRlQXJuLCBzdGFjayB9ID0gY2VydDtcblxuICBpZiAoaXNEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZShjZXJ0KSkge1xuICAgIGNvbnN0IHJlcXVlc3RSZXNvdXJjZSA9IGNlcnQubm9kZS5maW5kQ2hpbGQoJ0NlcnRpZmljYXRlUmVxdWVzdG9yUmVzb3VyY2UnKS5ub2RlLmRlZmF1bHRDaGlsZDtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IF9jZm5Qcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIH0gPSByZXF1ZXN0UmVzb3VyY2U7XG4gICAgY29uc3QgeyBSZWdpb246IHJlZ2lvbiB9ID0gcHJvcGVydGllcztcblxuICAgIGlmIChyZWdpb24gJiYgIVRva2VuLmlzVW5yZXNvbHZlZChyZWdpb24pKSB7XG4gICAgICByZXR1cm4gcmVnaW9uO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBjb25zdCB7IHJlZ2lvbiB9ID0gQXJuLnNwbGl0KGNlcnRpZmljYXRlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSk7XG5cbiAgICBpZiAocmVnaW9uICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocmVnaW9uKSkge1xuICAgICAgcmV0dXJuIHJlZ2lvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU3RhY2sub2Yoc3RhY2spLnJlZ2lvbjtcbn1cbiJdfQ==