UNPKG

@aws-cdk/aws-amplify-alpha

Version:

The CDK Construct Library for AWS::Amplify

217 lines 22.9 kB
"use strict"; var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) { var useValue = arguments.length > 2; for (var i = 0; i < initializers.length; i++) { value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); } return useValue ? value : void 0; }; var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var _, done = false; for (var i = decorators.length - 1; i >= 0; i--) { var context = {}; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p]; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); if (kind === "accessor") { if (result === void 0) continue; if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.init)) initializers.unshift(_); } else if (_ = accept(result)) { if (kind === "field") initializers.unshift(_); else descriptor[key] = _; } } if (target) Object.defineProperty(target, contextIn.name, descriptor); done = true; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Domain = void 0; const jsiiDeprecationWarnings = require("../.warnings.jsii.js"); const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_amplify_1 = require("aws-cdk-lib/aws-amplify"); const core_1 = require("aws-cdk-lib/core"); const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal"); const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource"); const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable"); /** * An Amplify Console domain */ let Domain = (() => { let _classDecorators = [prop_injectable_1.propertyInjectable]; let _classDescriptor; let _classExtraInitializers = []; let _classThis; let _classSuper = core_1.Resource; let _instanceExtraInitializers = []; let _mapSubDomain_decorators; let _mapRoot_decorators; var Domain = class extends _classSuper { static { _classThis = this; } static { const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0; _mapSubDomain_decorators = [(0, metadata_resource_1.MethodMetadata)()]; _mapRoot_decorators = [(0, metadata_resource_1.MethodMetadata)()]; __esDecorate(this, null, _mapSubDomain_decorators, { kind: "method", name: "mapSubDomain", static: false, private: false, access: { has: obj => "mapSubDomain" in obj, get: obj => obj.mapSubDomain }, metadata: _metadata }, null, _instanceExtraInitializers); __esDecorate(this, null, _mapRoot_decorators, { kind: "method", name: "mapRoot", static: false, private: false, access: { has: obj => "mapRoot" in obj, get: obj => obj.mapRoot }, metadata: _metadata }, null, _instanceExtraInitializers); __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); Domain = _classThis = _classDescriptor.value; if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); } static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-amplify-alpha.Domain", version: "2.257.0-alpha.0" }; /** Uniquely identifies this class. */ static PROPERTY_INJECTION_ID = '@aws-cdk.aws-amplify-alpha.Domain'; /** * The ARN of the domain * * @attribute */ arn = __runInitializers(this, _instanceExtraInitializers); /** * The DNS Record for certificate verification * * @attribute */ certificateRecord; /** * The name of the domain * * @attribute */ domainName; /** * The status of the domain association * * @attribute */ domainStatus; /** * The reason for the current status of the domain * * @attribute */ statusReason; /** * Branch patterns for the automatically created subdomain. * * @attribute */ domainAutoSubDomainCreationPatterns; /** * The IAM service role for the subdomain. * * @attribute */ domainAutoSubDomainIamRole; /** * Specifies whether the automated creation of subdomains for branches is enabled. * * @attribute */ domainEnableAutoSubDomain; subDomains; constructor(scope, id, props) { super(scope, id); try { jsiiDeprecationWarnings._aws_cdk_aws_amplify_alpha_DomainProps(props); } catch (error) { if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { Error.captureStackTrace(error, Domain); } throw error; } // Enhanced CDK Analytics Telemetry (0, metadata_resource_1.addConstructMetadata)(this, props); this.subDomains = props.subDomains || []; const domainName = props.domainName || id; if (!core_1.Token.isUnresolved(domainName) && domainName.length > 255) { throw new core_1.ValidationError((0, helpers_internal_1.lit) `DomainNameTooLong`, `Domain name must be 255 characters or less, got: ${domainName.length} characters.`, this); } if (!core_1.Token.isUnresolved(domainName) && !/^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])(\.)?$/.test(domainName)) { throw new core_1.ValidationError((0, helpers_internal_1.lit) `InvalidDomainName`, `Domain name must be a valid hostname, got: ${domainName}.`, this); } const domain = new aws_amplify_1.CfnDomain(this, 'Resource', { appId: props.app.appId, domainName, subDomainSettings: core_1.Lazy.any({ produce: () => this.renderSubDomainSettings() }, { omitEmptyArray: true }), enableAutoSubDomain: !!props.enableAutoSubdomain, autoSubDomainCreationPatterns: props.autoSubdomainCreationPatterns || ['*', 'pr*'], autoSubDomainIamRole: props.autoSubDomainIamRole?.roleArn, certificateSettings: props.customCertificate ? { certificateType: 'CUSTOM', customCertificateArn: props.customCertificate.certificateArn, } : undefined, }); this.arn = domain.attrArn; this.certificateRecord = domain.attrCertificateRecord; this.domainName = domain.attrDomainName; this.domainStatus = domain.attrDomainStatus; this.statusReason = domain.attrStatusReason; this.domainAutoSubDomainCreationPatterns = domain.attrAutoSubDomainCreationPatterns; this.domainAutoSubDomainIamRole = domain.attrAutoSubDomainIamRole; this.domainEnableAutoSubDomain = domain.attrEnableAutoSubDomain; this.node.addValidation({ validate: () => this.validateDomain() }); } /** * Maps a branch to a sub domain * * @param branch The branch * @param prefix The prefix. Use '' to map to the root of the domain. Defaults to branch name. */ mapSubDomain(branch, prefix) { try { jsiiDeprecationWarnings._aws_cdk_aws_amplify_alpha_IBranch(branch); } catch (error) { if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { Error.captureStackTrace(error, this.mapSubDomain); } throw error; } this.subDomains.push({ branch, prefix }); return this; } /** * Maps a branch to the domain root */ mapRoot(branch) { try { jsiiDeprecationWarnings._aws_cdk_aws_amplify_alpha_IBranch(branch); } catch (error) { if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") { Error.captureStackTrace(error, this.mapRoot); } throw error; } return this.mapSubDomain(branch, ''); } validateDomain() { if (this.subDomains.length === 0) { return ['The domain doesn\'t contain any subdomains']; } return []; } renderSubDomainSettings() { return this.subDomains.map(s => ({ branchName: s.branch.branchName, prefix: s.prefix ?? s.branch.branchName, })); } static { __runInitializers(_classThis, _classExtraInitializers); } }; return Domain = _classThis; })(); exports.Domain = Domain; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUFvRDtBQUlwRCwyQ0FBMEU7QUFDMUUsNEVBQTREO0FBQzVELDhFQUE4RjtBQUM5RiwwRUFBMEU7QUE2RDFFOztHQUVHO0lBRVUsTUFBTTs0QkFEbEIsb0NBQWtCOzs7O3NCQUNTLGVBQVE7Ozs7c0JBQWhCLFNBQVEsV0FBUTs7Ozt3Q0EyR2pDLElBQUEsa0NBQWMsR0FBRTttQ0FTaEIsSUFBQSxrQ0FBYyxHQUFFO1lBUmpCLHVMQUFPLFlBQVksNkRBR2xCO1lBTUQsd0tBQU8sT0FBTyw2REFFYjtZQXZISCw2S0F1SUM7Ozs7O1FBdElDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcsbUNBQW1DLENBQUM7UUFDM0Y7Ozs7V0FJRztRQUNhLEdBQUcsR0FSUixtREFBTSxDQVFXO1FBRTVCOzs7O1dBSUc7UUFDYSxpQkFBaUIsQ0FBUztRQUUxQzs7OztXQUlHO1FBQ2EsVUFBVSxDQUFTO1FBRW5DOzs7O1dBSUc7UUFDYSxZQUFZLENBQVM7UUFFckM7Ozs7V0FJRztRQUNhLFlBQVksQ0FBUztRQUVyQzs7OztXQUlHO1FBQ2EsbUNBQW1DLENBQVc7UUFFOUQ7Ozs7V0FJRztRQUNhLDBCQUEwQixDQUFTO1FBRW5EOzs7O1dBSUc7UUFDYSx5QkFBeUIsQ0FBYztRQUV0QyxVQUFVLENBQWM7UUFFekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQjtZQUMxRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7bURBOURSLE1BQU07Ozs7WUErRGYsbUNBQW1DO1lBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWxDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVB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LENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFTyx1QkFBdUI7WUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQy9CLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTthQUN4QyxDQUFDLENBQUMsQ0FBQztTQUNMOztZQXRJVSx1REFBTTs7Ozs7QUFBTix3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbkRvbWFpbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hbXBsaWZ5JztcbmltcG9ydCB0eXBlICogYXMgYWNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSB7IElSZXNvbHZhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBMYXp5LCBSZXNvdXJjZSwgVG9rZW4sIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUFwcCB9IGZyb20gJy4vYXBwJztcbmltcG9ydCB0eXBlIHsgSUJyYW5jaCB9IGZyb20gJy4vYnJhbmNoJztcblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIGRvbWFpbiB0byBhbiBhcHBsaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRvbWFpblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBjb25zdHJ1Y3QncyBpZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3ViZG9tYWluc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBgYWRkU3ViRG9tYWluKClgIHRvIGFkZCBzdWJkb21haW5zXG4gICAqL1xuICByZWFkb25seSBzdWJEb21haW5zPzogU3ViRG9tYWluW107XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgY3JlYXRlIHN1YmRvbWFpbnMgZm9yIGNvbm5lY3RlZCBicmFuY2hlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXV0b1N1YmRvbWFpbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEJyYW5jaGVzIHdoaWNoIHNob3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBzdWJkb21haW5zXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIHJlcG9zaXRvcnkgYnJhbmNoZXMgWycqJywgJ3ByKiddXG4gICAqL1xuICByZWFkb25seSBhdXRvU3ViZG9tYWluQ3JlYXRpb25QYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBTU0wvVExTIGNlcnRpZmljYXRlIHRvIHVzZSBmb3IgeW91ciBjdXN0b20gZG9tYWluXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQW1wbGlmeSB1c2VzIHRoZSBkZWZhdWx0IGNlcnRpZmljYXRlIHRoYXQgaXQgcHJvdmlzaW9ucyBhbmQgbWFuYWdlcyBmb3IgeW91XG4gICAqL1xuICByZWFkb25seSBjdXN0b21DZXJ0aWZpY2F0ZT86IGFjbS5JQ2VydGlmaWNhdGU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBEb21haW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb21haW5Qcm9wcyBleHRlbmRzIERvbWFpbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFwcGxpY2F0aW9uIHRvIHdoaWNoIHRoZSBkb21haW4gbXVzdCBiZSBjb25uZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGFwcDogSUFwcDtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHdpdGggYWNjZXNzIHRvIFJvdXRlNTMgd2hlbiB1c2luZyBlbmFibGVBdXRvU3ViZG9tYWluXG4gICAqIEBkZWZhdWx0IC0gdGhlIElBTSByb2xlIGZyb20gQXBwLmdyYW50UHJpbmNpcGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvU3ViRG9tYWluSWFtUm9sZT86IGlhbS5JUm9sZTtcbn1cblxuLyoqXG4gKiBBbiBBbXBsaWZ5IENvbnNvbGUgZG9tYWluXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBEb21haW4gZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWFtcGxpZnktYWxwaGEuRG9tYWluJztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGRvbWFpblxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBETlMgUmVjb3JkIGZvciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb25cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNlcnRpZmljYXRlUmVjb3JkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkb21haW5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZG9tYWluIGFzc29jaWF0aW9uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb21haW5TdGF0dXM6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlYXNvbiBmb3IgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBkb21haW5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c1JlYXNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggcGF0dGVybnMgZm9yIHRoZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgc3ViZG9tYWluLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZG9tYWluQXV0b1N1YkRvbWFpbkNyZWF0aW9uUGF0dGVybnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHNlcnZpY2Ugcm9sZSBmb3IgdGhlIHN1YmRvbWFpbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbkF1dG9TdWJEb21haW5JYW1Sb2xlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBhdXRvbWF0ZWQgY3JlYXRpb24gb2Ygc3ViZG9tYWlucyBmb3IgYnJhbmNoZXMgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbkVuYWJsZUF1dG9TdWJEb21haW46IElSZXNvbHZhYmxlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3ViRG9tYWluczogU3ViRG9tYWluW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERvbWFpblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMuc3ViRG9tYWlucyA9IHByb3BzLnN1YkRvbWFpbnMgfHwgW107XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gcHJvcHMuZG9tYWluTmFtZSB8fCBpZDtcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChkb21haW5OYW1lKSAmJiBkb21haW5OYW1lLmxlbmd0aCA+IDI1NSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgRG9tYWluTmFtZVRvb0xvbmdgLCBgRG9tYWluIG5hbWUgbXVzdCBiZSAyNTUgY2hhcmFjdGVycyBvciBsZXNzLCBnb3Q6ICR7ZG9tYWluTmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMuYCwgdGhpcyk7XG4gICAgfVxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGRvbWFpbk5hbWUpICYmICEvXigoKD8hLSlbQS1aYS16MC05LV17MCw2Mn1bQS1aYS16MC05XSlcXC4pKygoPyEtKVtBLVphLXowLTktXXsxLDYyfVtBLVphLXowLTldKShcXC4pPyQvLnRlc3QoZG9tYWluTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEludmFsaWREb21haW5OYW1lYCwgYERvbWFpbiBuYW1lIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZSwgZ290OiAke2RvbWFpbk5hbWV9LmAsIHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpbiA9IG5ldyBDZm5Eb21haW4odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgYXBwSWQ6IHByb3BzLmFwcC5hcHBJZCxcbiAgICAgIGRvbWFpbk5hbWUsXG4gICAgICBzdWJEb21haW5TZXR0aW5nczogTGF6eS5hbnkoeyBwcm9kdWNlOiAoKSA9PiB0aGlzLnJlbmRlclN1YkRvbWFpblNldHRpbmdzKCkgfSwgeyBvbWl0RW1wdHlBcnJheTogdHJ1ZSB9KSxcbiAgICAgIGVuYWJsZUF1dG9TdWJEb21haW46ICEhcHJvcHMuZW5hYmxlQXV0b1N1YmRvbWFpbixcbiAgICAgIGF1dG9TdWJEb21haW5DcmVhdGlvblBhdHRlcm5zOiBwcm9wcy5hdXRvU3ViZG9tYWluQ3JlYXRpb25QYXR0ZXJucyB8fCBbJyonLCAncHIqJ10sXG4gICAgICBhdXRvU3ViRG9tYWluSWFtUm9sZTogcHJvcHMuYXV0b1N1YkRvbWFpbklhbVJvbGU/LnJvbGVBcm4sXG4gICAgICBjZXJ0aWZpY2F0ZVNldHRpbmdzOiBwcm9wcy5jdXN0b21DZXJ0aWZpY2F0ZSA/IHtcbiAgICAgICAgY2VydGlmaWNhdGVUeXBlOiAnQ1VTVE9NJyxcbiAgICAgICAgY3VzdG9tQ2VydGlmaWNhdGVBcm46IHByb3BzLmN1c3RvbUNlcnRpZmljYXRlLmNlcnRpZmljYXRlQXJuLFxuICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuYXJuID0gZG9tYWluLmF0dHJBcm47XG4gICAgdGhpcy5jZXJ0aWZpY2F0ZVJlY29yZCA9IGRvbWFpbi5hdHRyQ2VydGlmaWNhdGVSZWNvcmQ7XG4gICAgdGhpcy5kb21haW5OYW1lID0gZG9tYWluLmF0dHJEb21haW5OYW1lO1xuICAgIHRoaXMuZG9tYWluU3RhdHVzID0gZG9tYWluLmF0dHJEb21haW5TdGF0dXM7XG4gICAgdGhpcy5zdGF0dXNSZWFzb24gPSBkb21haW4uYXR0clN0YXR1c1JlYXNvbjtcbiAgICB0aGlzLmRvbWFpbkF1dG9TdWJEb21haW5DcmVhdGlvblBhdHRlcm5zID0gZG9tYWluLmF0dHJBdXRvU3ViRG9tYWluQ3JlYXRpb25QYXR0ZXJucztcbiAgICB0aGlzLmRvbWFpbkF1dG9TdWJEb21haW5JYW1Sb2xlID0gZG9tYWluLmF0dHJBdXRvU3ViRG9tYWluSWFtUm9sZTtcbiAgICB0aGlzLmRvbWFpbkVuYWJsZUF1dG9TdWJEb21haW4gPSBkb21haW4uYXR0ckVuYWJsZUF1dG9TdWJEb21haW47XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7IHZhbGlkYXRlOiAoKSA9PiB0aGlzLnZhbGlkYXRlRG9tYWluKCkgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwcyBhIGJyYW5jaCB0byBhIHN1YiBkb21haW5cbiAgICpcbiAgICogQHBhcmFtIGJyYW5jaCBUaGUgYnJhbmNoXG4gICAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeC4gVXNlICcnIHRvIG1hcCB0byB0aGUgcm9vdCBvZiB0aGUgZG9tYWluLiBEZWZhdWx0cyB0byBicmFuY2ggbmFtZS5cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBtYXBTdWJEb21haW4oYnJhbmNoOiBJQnJhbmNoLCBwcmVmaXg/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnN1YkRvbWFpbnMucHVzaCh7IGJyYW5jaCwgcHJlZml4IH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYSBicmFuY2ggdG8gdGhlIGRvbWFpbiByb290XG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgbWFwUm9vdChicmFuY2g6IElCcmFuY2gpIHtcbiAgICByZXR1cm4gdGhpcy5tYXBTdWJEb21haW4oYnJhbmNoLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRG9tYWluKCkge1xuICAgIGlmICh0aGlzLnN1YkRvbWFpbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gWydUaGUgZG9tYWluIGRvZXNuXFwndCBjb250YWluIGFueSBzdWJkb21haW5zJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJTdWJEb21haW5TZXR0aW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJEb21haW5zLm1hcChzID0+ICh7XG4gICAgICBicmFuY2hOYW1lOiBzLmJyYW5jaC5icmFuY2hOYW1lLFxuICAgICAgcHJlZml4OiBzLnByZWZpeCA/PyBzLmJyYW5jaC5icmFuY2hOYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIFN1YiBkb21haW4gc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJEb21haW4ge1xuICAvKipcbiAgICogVGhlIGJyYW5jaFxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoOiBJQnJhbmNoO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJlZml4LiBVc2UgJycgdG8gbWFwIHRvIHRoZSByb290IG9mIHRoZSBkb21haW5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgYnJhbmNoIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbn1cbiJdfQ==