UNPKG

projen

Version:

CDK for software projects

114 lines • 13.8 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.CdktnDeps = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const semver = __importStar(require("semver")); const component_1 = require("../component"); const dependencies_1 = require("../dependencies"); /** * Manages dependencies on CDK Terrain (CDKTN). */ class CdktnDeps extends component_1.Component { static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktn.CdktnDeps", version: "0.103.12" }; /** * The dependency requirement for CDKTN (e.g. `^0.24.0`). */ cdktnVersion; /** * The dependency requirement for the CDKTN CLI. */ cdktnCliVersion; /** * The minimum version of CDKTN (e.g. `0.24.0`). */ cdktnMinimumVersion; dependencyType; constructor(project, options) { super(project); if (!options.cdktnVersion) { throw new Error("Required field cdktnVersion is not specified."); } this.dependencyType = options.dependencyType; // used to derive defaults (e.g. the default constructs version); coercion // tolerates partial versions like "0.99" that `semver.parse` rejects. const coercedVer = semver.coerce(options.cdktnVersion); if (!coercedVer) { throw new Error(`"cdktnVersion" cannot be parsed as a semver version: ${options.cdktnVersion}`); } this.cdktnMinimumVersion = coercedVer.format(); // when pinning, use the user-provided version requirement verbatim (e.g. // "0.99" is kept as-is instead of being normalized to "^0.99.0") to // preserve the exact `peerDependencies` value that was written before // caret ranges became the default. this.cdktnVersion = options.cdktnVersionPinning ? options.cdktnVersion : `^${this.cdktnMinimumVersion}`; this.cdktnCliVersion = options.cdktnCliVersion ?? this.cdktnVersion; this.addFrameworkDependency(); this.addConstructsDependency(options.constructsVersion); // Add the CLI as a dev dependency this.project.deps.requestDependency({ name: "cdktn-cli", version: this.cdktnCliVersion, type: dependencies_1.DependencyType.BUILD, }); } /** * Adds a dependency on the CDKTN framework package (e.g. `cdktn`). */ addFrameworkDependency() { this.project.deps.requestDependency({ name: "cdktn", version: this.cdktnVersion, type: this.dependencyType, }); } addConstructsDependency(requestedVersion) { if (requestedVersion && !semver.parse(requestedVersion)) { throw new Error(`"constructsVersion" cannot be parsed as a semver version: ${requestedVersion}`); } const semverCdktnVersion = semver.coerce(this.cdktnMinimumVersion); const defaultConstructsVersion = semverCdktnVersion && semver.lte(semverCdktnVersion, "0.24.0") ? "10.7.2" : "10"; const versionRequirement = `^${requestedVersion ?? defaultConstructsVersion}`; // First remove the version added by projen this.project.deps.removeDependency("constructs", dependencies_1.DependencyType.BUILD); this.project.deps.addDependency(`constructs@${versionRequirement}`, this.dependencyType); } } exports.CdktnDeps = CdktnDeps; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdG4tZGVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGt0bi9jZGt0bi1kZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFDakMsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQW1EakQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUzs7SUFDdEM7O09BRUc7SUFDYSxZQUFZLENBQVM7SUFFckM7O09BRUc7SUFDYSxlQUFlLENBQVM7SUFFeEM7O09BRUc7SUFDYSxtQkFBbUIsQ0FBUztJQUUzQixjQUFjLENBQWlCO0lBRWhELFlBQVksT0FBZ0IsRUFBRSxPQUF5QjtRQUNyRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBRTdDLDBFQUEwRTtRQUMxRSxzRUFBc0U7UUFDdEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0RBQXdELE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FDL0UsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRS9DLHlFQUF5RTtRQUN6RSxvRUFBb0U7UUFDcEUsc0VBQXNFO1FBQ3RFLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUI7WUFDN0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXBFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV4RCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDbEMsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQzdCLElBQUksRUFBRSw2QkFBYyxDQUFDLEtBQUs7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ2xDLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYztTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsZ0JBQW9DO1FBQ2xFLElBQUksZ0JBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RCxnQkFBZ0IsRUFBRSxDQUNoRixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRSxNQUFNLHdCQUF3QixHQUM1QixrQkFBa0IsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztZQUM1RCxDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFWCxNQUFNLGtCQUFrQixHQUFHLElBQ3pCLGdCQUFnQixJQUFJLHdCQUN0QixFQUFFLENBQUM7UUFFSCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLDZCQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUM3QixjQUFjLGtCQUFrQixFQUFFLEVBQ2xDLElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUM7SUFDSixDQUFDOztBQTdGSCw4QkE4RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSBcInNlbXZlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBDZGt0bkRlcHNgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrdG5EZXBzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIENES1ROIHRvIGRlcGVuZCBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJeMC4yNC4wXCJcbiAgICovXG4gIHJlYWRvbmx5IGNka3RuVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIHJhbmdlIG9mIHRoZSBDREtUTiBDTEkgdG8gZGVwZW5kIG9uLlxuICAgKlxuICAgKiBDYW4gYmUgZWl0aGVyIGEgc3BlY2lmaWMgdmVyc2lvbiwgb3IgYW4gTlBNIHZlcnNpb24gcmFuZ2UuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBsYXRlc3QgdmVyc2lvbiB3aWxsIGJlIGluc3RhbGxlZDsgeW91IGNhbiB1c2UgdGhpc1xuICAgKiBvcHRpb24gdG8gcmVzdHJpY3QgaXQgdG8gYSBzcGVjaWZpYyB2ZXJzaW9uIG9yIHZlcnNpb24gcmFuZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3BlY2lmaWMgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdG5DbGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIGBjb25zdHJ1Y3RzYCBsaWJyYXJ5IHRvIGRlcGVuZCBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJeMTAuNy4yXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdHNWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2UgcGlubmVkIHZlcnNpb24gaW5zdGVhZCBvZiBjYXJldCB2ZXJzaW9uIGZvciBDREtUTi5cbiAgICpcbiAgICogWW91IGNhbiB1c2UgdGhpcyB0byBwcmV2ZW50IG1peGVkIHZlcnNpb25zIGZvciB5b3VyIENES1ROIGRlcGVuZGVuY2llcyBhbmQgdG8gcHJldmVudCBhdXRvLXVwZGF0ZXMuXG4gICAqIElmIHlvdSB1c2UgZXhwZXJpbWVudGFsIGZlYXR1cmVzIHRoaXMgd2lsbCBsZXQgeW91IGRlZmluZSB0aGUgbW9tZW50IHlvdSBpbmNsdWRlIGJyZWFraW5nIGNoYW5nZXMuXG4gICAqL1xuICByZWFkb25seSBjZGt0blZlcnNpb25QaW5uaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGt0bkRlcHNPcHRpb25zIGV4dGVuZHMgQ2RrdG5EZXBzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBkZXBlbmRlbmN5IHRvIHVzZSBmb3IgdGhlIHJ1bnRpbWUgYGNka3RuYCBtb2R1bGUuXG4gICAqXG4gICAqIEZvciBsaWJyYXJpZXMsIHVzZSBwZWVyIGRlcGVuZGVuY2llcyBhbmQgZm9yIGFwcHMgdXNlIHJ1bnRpbWUgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeVR5cGU6IERlcGVuZGVuY3lUeXBlO1xufVxuXG4vKipcbiAqIE1hbmFnZXMgZGVwZW5kZW5jaWVzIG9uIENESyBUZXJyYWluIChDREtUTikuXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGt0bkRlcHMgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGRlcGVuZGVuY3kgcmVxdWlyZW1lbnQgZm9yIENES1ROIChlLmcuIGBeMC4yNC4wYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrdG5WZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXBlbmRlbmN5IHJlcXVpcmVtZW50IGZvciB0aGUgQ0RLVE4gQ0xJLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka3RuQ2xpVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIENES1ROIChlLmcuIGAwLjI0LjBgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGt0bk1pbmltdW1WZXJzaW9uOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRlbmN5VHlwZTogRGVwZW5kZW5jeVR5cGU7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogQ2RrdG5EZXBzT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgaWYgKCFvcHRpb25zLmNka3RuVmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVxdWlyZWQgZmllbGQgY2RrdG5WZXJzaW9uIGlzIG5vdCBzcGVjaWZpZWQuXCIpO1xuICAgIH1cblxuICAgIHRoaXMuZGVwZW5kZW5jeVR5cGUgPSBvcHRpb25zLmRlcGVuZGVuY3lUeXBlO1xuXG4gICAgLy8gdXNlZCB0byBkZXJpdmUgZGVmYXVsdHMgKGUuZy4gdGhlIGRlZmF1bHQgY29uc3RydWN0cyB2ZXJzaW9uKTsgY29lcmNpb25cbiAgICAvLyB0b2xlcmF0ZXMgcGFydGlhbCB2ZXJzaW9ucyBsaWtlIFwiMC45OVwiIHRoYXQgYHNlbXZlci5wYXJzZWAgcmVqZWN0cy5cbiAgICBjb25zdCBjb2VyY2VkVmVyID0gc2VtdmVyLmNvZXJjZShvcHRpb25zLmNka3RuVmVyc2lvbik7XG4gICAgaWYgKCFjb2VyY2VkVmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBcImNka3RuVmVyc2lvblwiIGNhbm5vdCBiZSBwYXJzZWQgYXMgYSBzZW12ZXIgdmVyc2lvbjogJHtvcHRpb25zLmNka3RuVmVyc2lvbn1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNka3RuTWluaW11bVZlcnNpb24gPSBjb2VyY2VkVmVyLmZvcm1hdCgpO1xuXG4gICAgLy8gd2hlbiBwaW5uaW5nLCB1c2UgdGhlIHVzZXItcHJvdmlkZWQgdmVyc2lvbiByZXF1aXJlbWVudCB2ZXJiYXRpbSAoZS5nLlxuICAgIC8vIFwiMC45OVwiIGlzIGtlcHQgYXMtaXMgaW5zdGVhZCBvZiBiZWluZyBub3JtYWxpemVkIHRvIFwiXjAuOTkuMFwiKSB0b1xuICAgIC8vIHByZXNlcnZlIHRoZSBleGFjdCBgcGVlckRlcGVuZGVuY2llc2AgdmFsdWUgdGhhdCB3YXMgd3JpdHRlbiBiZWZvcmVcbiAgICAvLyBjYXJldCByYW5nZXMgYmVjYW1lIHRoZSBkZWZhdWx0LlxuICAgIHRoaXMuY2RrdG5WZXJzaW9uID0gb3B0aW9ucy5jZGt0blZlcnNpb25QaW5uaW5nXG4gICAgICA/IG9wdGlvbnMuY2RrdG5WZXJzaW9uXG4gICAgICA6IGBeJHt0aGlzLmNka3RuTWluaW11bVZlcnNpb259YDtcbiAgICB0aGlzLmNka3RuQ2xpVmVyc2lvbiA9IG9wdGlvbnMuY2RrdG5DbGlWZXJzaW9uID8/IHRoaXMuY2RrdG5WZXJzaW9uO1xuXG4gICAgdGhpcy5hZGRGcmFtZXdvcmtEZXBlbmRlbmN5KCk7XG4gICAgdGhpcy5hZGRDb25zdHJ1Y3RzRGVwZW5kZW5jeShvcHRpb25zLmNvbnN0cnVjdHNWZXJzaW9uKTtcblxuICAgIC8vIEFkZCB0aGUgQ0xJIGFzIGEgZGV2IGRlcGVuZGVuY3lcbiAgICB0aGlzLnByb2plY3QuZGVwcy5yZXF1ZXN0RGVwZW5kZW5jeSh7XG4gICAgICBuYW1lOiBcImNka3RuLWNsaVwiLFxuICAgICAgdmVyc2lvbjogdGhpcy5jZGt0bkNsaVZlcnNpb24sXG4gICAgICB0eXBlOiBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZGVwZW5kZW5jeSBvbiB0aGUgQ0RLVE4gZnJhbWV3b3JrIHBhY2thZ2UgKGUuZy4gYGNka3RuYCkuXG4gICAqL1xuICBwcml2YXRlIGFkZEZyYW1ld29ya0RlcGVuZGVuY3koKSB7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVxdWVzdERlcGVuZGVuY3koe1xuICAgICAgbmFtZTogXCJjZGt0blwiLFxuICAgICAgdmVyc2lvbjogdGhpcy5jZGt0blZlcnNpb24sXG4gICAgICB0eXBlOiB0aGlzLmRlcGVuZGVuY3lUeXBlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb25zdHJ1Y3RzRGVwZW5kZW5jeShyZXF1ZXN0ZWRWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAocmVxdWVzdGVkVmVyc2lvbiAmJiAhc2VtdmVyLnBhcnNlKHJlcXVlc3RlZFZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBcImNvbnN0cnVjdHNWZXJzaW9uXCIgY2Fubm90IGJlIHBhcnNlZCBhcyBhIHNlbXZlciB2ZXJzaW9uOiAke3JlcXVlc3RlZFZlcnNpb259YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VtdmVyQ2RrdG5WZXJzaW9uID0gc2VtdmVyLmNvZXJjZSh0aGlzLmNka3RuTWluaW11bVZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRDb25zdHJ1Y3RzVmVyc2lvbiA9XG4gICAgICBzZW12ZXJDZGt0blZlcnNpb24gJiYgc2VtdmVyLmx0ZShzZW12ZXJDZGt0blZlcnNpb24sIFwiMC4yNC4wXCIpXG4gICAgICAgID8gXCIxMC43LjJcIlxuICAgICAgICA6IFwiMTBcIjtcblxuICAgIGNvbnN0IHZlcnNpb25SZXF1aXJlbWVudCA9IGBeJHtcbiAgICAgIHJlcXVlc3RlZFZlcnNpb24gPz8gZGVmYXVsdENvbnN0cnVjdHNWZXJzaW9uXG4gICAgfWA7XG5cbiAgICAvLyBGaXJzdCByZW1vdmUgdGhlIHZlcnNpb24gYWRkZWQgYnkgcHJvamVuXG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVtb3ZlRGVwZW5kZW5jeShcImNvbnN0cnVjdHNcIiwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuXG4gICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShcbiAgICAgIGBjb25zdHJ1Y3RzQCR7dmVyc2lvblJlcXVpcmVtZW50fWAsXG4gICAgICB0aGlzLmRlcGVuZGVuY3lUeXBlLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==