projen
Version:
CDK for software projects
106 lines • 13.9 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReleaseTrigger = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
/**
* Used to manage release strategies. This includes release
* and release artifact automation
*/
class ReleaseTrigger {
/**
* Creates a manual release trigger.
*
* Use this option if you want totally manual releases.
*
* This will give you a release task that, in addition to the normal
* release activities will trigger a `publish:git` task. This task will
* handle project-level changelog management, release tagging, and pushing
* these artifacts to origin.
*
* The command used for pushing can be customised by specifying
* `gitPushCommand`. Set to an empty string to disable pushing entirely.
*
* Simply run `yarn release` to trigger a manual release.
*
* @param options release options
*/
static manual(options = {}) {
let changelogPath;
if (options.changelog ?? true) {
changelogPath = options.changelogPath ?? "CHANGELOG.md";
}
return new ReleaseTrigger({
changelogPath: changelogPath,
gitPushCommand: options.gitPushCommand,
});
}
/**
* Creates a scheduled release trigger.
*
* Automated releases will occur based on the provided cron schedule.
*
* @param options release options.
*/
static scheduled(options) {
return new ReleaseTrigger({
schedule: options.schedule,
});
}
/**
* The release can only be triggered using the GitHub UI.
*/
static workflowDispatch() {
// This works because every workflow is always automatically `workflowDispatch`able
//
// The only thing we need to ensure is that no schedule or push trigger is
// added, and that we don't count as "manual" because that leads to the
// creation of a working copy task we don't need.
return new ReleaseTrigger({
workflowDispatchOnly: true,
});
}
/**
* Creates a continuous release trigger.
*
* Automated releases will occur on every commit.
*/
static continuous(options = {}) {
return new ReleaseTrigger({
continuous: true,
paths: options.paths,
});
}
/**
* Creates a tag-based release trigger.
*
* Automated releases will occur on every new tag matching the provided patterns.
*/
static tagged(options = {}) {
return new ReleaseTrigger({
tags: options.tags,
});
}
constructor(options = {}) {
this.isContinuous = options.continuous ?? false;
this.paths = options.paths;
this.schedule = options.schedule;
this.changelogPath = options.changelogPath;
this.gitPushCommand = options.gitPushCommand;
this.workflowDispatchOnly = options.workflowDispatchOnly;
this.tags = options.tags;
}
/**
* Whether or not this is a release trigger with a manual task run in a working copy.
*
* If the `ReleaseTrigger` is a GitHub-only manual task, this will return `false`.
*/
get isManual() {
return (!(this.isContinuous || this.schedule || this.tags) &&
!this.workflowDispatchOnly);
}
}
exports.ReleaseTrigger = ReleaseTrigger;
_a = JSII_RTTI_SYMBOL_1;
ReleaseTrigger[_a] = { fqn: "projen.release.ReleaseTrigger", version: "0.99.17" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlbGVhc2UvcmVsZWFzZS10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBaUdBOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQUN6Qjs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBZ0MsRUFBRTtRQUNyRCxJQUFJLGFBQWEsQ0FBQztRQUVsQixJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDOUIsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksY0FBYyxDQUFDO1FBQzFELENBQUM7UUFFRCxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLGFBQWEsRUFBRSxhQUFhO1lBQzVCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFnQztRQUN0RCxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCO1FBQzVCLG1GQUFtRjtRQUNuRixFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLHVFQUF1RTtRQUN2RSxpREFBaUQ7UUFDakQsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixvQkFBb0IsRUFBRSxJQUFJO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFvQyxFQUFFO1FBQzdELE9BQU8sSUFBSSxjQUFjLENBQUM7WUFDeEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUE2QixFQUFFO1FBQ2xELE9BQU8sSUFBSSxjQUFjLENBQUM7WUFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUF3Q0QsWUFBb0IsVUFBaUMsRUFBRTtRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2xELENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUMzQixDQUFDO0lBQ0osQ0FBQzs7QUEzSUgsd0NBNElDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRSZWxlYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcm9uIHNjaGVkdWxlIGZvciByZWxlYXNlcy5cbiAgICpcbiAgICogT25seSBkZWZpbmVkIGlmIHRoaXMgaXMgYSBzY2hlZHVsZWQgcmVsZWFzZS5cbiAgICpcbiAgICogQGV4YW1wbGUgJzAgMTcgKiAqIConIC0gZXZlcnkgZGF5IGF0IDUgcG1cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFudWFsUmVsZWFzZU9wdGlvbnMge1xuICAvKipcbiAgICogTWFpbnRhaW4gYSBwcm9qZWN0LWxldmVsIGNoYW5nZWxvZy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlbG9nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvamVjdC1sZXZlbCBjaGFuZ2Vsb2cgZmlsZSBwYXRoLlxuICAgKlxuICAgKiBJZ25vcmVkIGlmIGBjaGFuZ2Vsb2dgIGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnQ0hBTkdFTE9HLm1kJ1xuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlbG9nUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGUgZ2l0LXB1c2ggY29tbWFuZC5cbiAgICpcbiAgICogU2V0IHRvIGFuIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlIHB1c2hpbmcuXG4gICAqL1xuICByZWFkb25seSBnaXRQdXNoQ29tbWFuZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzUmVsZWFzZU9wdGlvbnMge1xuICAvKipcbiAgICogUGF0aHMgZm9yIHdoaWNoIHB1c2hlcyBzaG91bGQgdHJpZ2dlciBhIHJlbGVhc2VcbiAgICovXG4gIHJlYWRvbmx5IHBhdGhzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnUmVsZWFzZU9wdGlvbnMge1xuICAvKipcbiAgICogVGFnIHBhdHRlcm5zIGZvciB3aGljaCBwdXNoZXMgc2hvdWxkIHRyaWdnZXIgYSByZWxlYXNlXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBSZWxlYXNlVHJpZ2dlck9wdGlvbnMge1xuICAvKipcbiAgICogUHJvamVjdC1sZXZlbCBjaGFuZ2Vsb2cgZmlsZSBwYXRoLlxuICAgKlxuICAgKiBJZ25vcmVkIGlmIGBjaGFuZ2Vsb2dgIGlzIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2dQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb250aW51b3VzIHJlbGVhc2VzLCB3aGljaCB3aWxsIHJlbGVhc2UgZXZlcnkgY29tbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGludW91cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhdGhzIGZvciB3aGljaCBwdXNoZXMgKGNvbnRpbnVvdXMgcmVsZWFzZSkgc2hvdWxkIHRyaWdnZXIgYSByZWxlYXNlXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDcm9uIHNjaGVkdWxlIGZvciByZWxlYXNlLlxuICAgKlxuICAgKiBPbmx5IGRlZmluZWQgaWYgdGhpcyBpcyBhIHNjaGVkdWxlZCByZWxlYXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnMCAxNyAqICogKicgLSBldmVyeSBkYXkgYXQgNSBwbVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIGdpdC1wdXNoIGNvbW1hbmQuXG4gICAqXG4gICAqIFNldCB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSBwdXNoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0UHVzaENvbW1hbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9ubHkgYSB3b3JrZmxvd0Rpc3BhdGNoIHRyaWdnZXJcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93RGlzcGF0Y2hPbmx5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGFnIHBhdHRlcm5zIGZvciB3aGljaCBwdXNoZXMgc2hvdWxkIHRyaWdnZXIgYSByZWxlYXNlXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogVXNlZCB0byBtYW5hZ2UgcmVsZWFzZSBzdHJhdGVnaWVzLiBUaGlzIGluY2x1ZGVzIHJlbGVhc2VcbiAqIGFuZCByZWxlYXNlIGFydGlmYWN0IGF1dG9tYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2VUcmlnZ2VyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBtYW51YWwgcmVsZWFzZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBVc2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG90YWxseSBtYW51YWwgcmVsZWFzZXMuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBnaXZlIHlvdSBhIHJlbGVhc2UgdGFzayB0aGF0LCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsXG4gICAqIHJlbGVhc2UgYWN0aXZpdGllcyB3aWxsIHRyaWdnZXIgYSBgcHVibGlzaDpnaXRgIHRhc2suIFRoaXMgdGFzayB3aWxsXG4gICAqIGhhbmRsZSBwcm9qZWN0LWxldmVsIGNoYW5nZWxvZyBtYW5hZ2VtZW50LCByZWxlYXNlIHRhZ2dpbmcsIGFuZCBwdXNoaW5nXG4gICAqIHRoZXNlIGFydGlmYWN0cyB0byBvcmlnaW4uXG4gICAqXG4gICAqIFRoZSBjb21tYW5kIHVzZWQgZm9yIHB1c2hpbmcgY2FuIGJlIGN1c3RvbWlzZWQgYnkgc3BlY2lmeWluZ1xuICAgKiBgZ2l0UHVzaENvbW1hbmRgLiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgcHVzaGluZyBlbnRpcmVseS5cbiAgICpcbiAgICogU2ltcGx5IHJ1biBgeWFybiByZWxlYXNlYCB0byB0cmlnZ2VyIGEgbWFudWFsIHJlbGVhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIHJlbGVhc2Ugb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYW51YWwob3B0aW9uczogTWFudWFsUmVsZWFzZU9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjaGFuZ2Vsb2dQYXRoO1xuXG4gICAgaWYgKG9wdGlvbnMuY2hhbmdlbG9nID8/IHRydWUpIHtcbiAgICAgIGNoYW5nZWxvZ1BhdGggPSBvcHRpb25zLmNoYW5nZWxvZ1BhdGggPz8gXCJDSEFOR0VMT0cubWRcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlbGVhc2VUcmlnZ2VyKHtcbiAgICAgIGNoYW5nZWxvZ1BhdGg6IGNoYW5nZWxvZ1BhdGgsXG4gICAgICBnaXRQdXNoQ29tbWFuZDogb3B0aW9ucy5naXRQdXNoQ29tbWFuZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc2NoZWR1bGVkIHJlbGVhc2UgdHJpZ2dlci5cbiAgICpcbiAgICogQXV0b21hdGVkIHJlbGVhc2VzIHdpbGwgb2NjdXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNyb24gc2NoZWR1bGUuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIHJlbGVhc2Ugb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2NoZWR1bGVkKG9wdGlvbnM6IFNjaGVkdWxlZFJlbGVhc2VPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBSZWxlYXNlVHJpZ2dlcih7XG4gICAgICBzY2hlZHVsZTogb3B0aW9ucy5zY2hlZHVsZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVsZWFzZSBjYW4gb25seSBiZSB0cmlnZ2VyZWQgdXNpbmcgdGhlIEdpdEh1YiBVSS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd29ya2Zsb3dEaXNwYXRjaCgpIHtcbiAgICAvLyBUaGlzIHdvcmtzIGJlY2F1c2UgZXZlcnkgd29ya2Zsb3cgaXMgYWx3YXlzIGF1dG9tYXRpY2FsbHkgYHdvcmtmbG93RGlzcGF0Y2hgYWJsZVxuICAgIC8vXG4gICAgLy8gVGhlIG9ubHkgdGhpbmcgd2UgbmVlZCB0byBlbnN1cmUgaXMgdGhhdCBubyBzY2hlZHVsZSBvciBwdXNoIHRyaWdnZXIgaXNcbiAgICAvLyBhZGRlZCwgYW5kIHRoYXQgd2UgZG9uJ3QgY291bnQgYXMgXCJtYW51YWxcIiBiZWNhdXNlIHRoYXQgbGVhZHMgdG8gdGhlXG4gICAgLy8gY3JlYXRpb24gb2YgYSB3b3JraW5nIGNvcHkgdGFzayB3ZSBkb24ndCBuZWVkLlxuICAgIHJldHVybiBuZXcgUmVsZWFzZVRyaWdnZXIoe1xuICAgICAgd29ya2Zsb3dEaXNwYXRjaE9ubHk6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvbnRpbnVvdXMgcmVsZWFzZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBBdXRvbWF0ZWQgcmVsZWFzZXMgd2lsbCBvY2N1ciBvbiBldmVyeSBjb21taXQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbnRpbnVvdXMob3B0aW9uczogQ29udGludW91c1JlbGVhc2VPcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gbmV3IFJlbGVhc2VUcmlnZ2VyKHtcbiAgICAgIGNvbnRpbnVvdXM6IHRydWUsXG4gICAgICBwYXRoczogb3B0aW9ucy5wYXRocyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdGFnLWJhc2VkIHJlbGVhc2UgdHJpZ2dlci5cbiAgICpcbiAgICogQXV0b21hdGVkIHJlbGVhc2VzIHdpbGwgb2NjdXIgb24gZXZlcnkgbmV3IHRhZyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcGF0dGVybnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRhZ2dlZChvcHRpb25zOiBUYWdSZWxlYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBSZWxlYXNlVHJpZ2dlcih7XG4gICAgICB0YWdzOiBvcHRpb25zLnRhZ3MsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvamVjdC1sZXZlbCBjaGFuZ2Vsb2cgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWxvZ1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyb24gc2NoZWR1bGUgZm9yIHJlbGVhc2VzLlxuICAgKlxuICAgKiBPbmx5IGRlZmluZWQgaWYgdGhpcyBpcyBhIHNjaGVkdWxlZCByZWxlYXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnMCAxNyAqICogKicgLSBldmVyeSBkYXkgYXQgNSBwbVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGlzIGEgY29udGludW91cyByZWxlYXNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlzQ29udGludW91czogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGF0aHMgZm9yIHdoaWNoIHB1c2hlcyB3aWxsIHRyaWdnZXIgYSByZWxlYXNlIHdoZW4gYGlzQ29udGludW91c2AgaXMgYHRydWVgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGFnIHBhdHRlcm5zIGZvciB3aGljaCBwdXNoZXMgd2lsbCB0cmlnZ2VyIGEgcmVsZWFzZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgZ2l0LXB1c2ggY29tbWFuZCB1c2VkIHdoZW4gcmVsZWFzaW5nIG1hbnVhbGx5LlxuICAgKlxuICAgKiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgcHVzaGluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnaXRQdXNoQ29tbWFuZD86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93RGlzcGF0Y2hPbmx5PzogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFJlbGVhc2VUcmlnZ2VyT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5pc0NvbnRpbnVvdXMgPSBvcHRpb25zLmNvbnRpbnVvdXMgPz8gZmFsc2U7XG4gICAgdGhpcy5wYXRocyA9IG9wdGlvbnMucGF0aHM7XG4gICAgdGhpcy5zY2hlZHVsZSA9IG9wdGlvbnMuc2NoZWR1bGU7XG4gICAgdGhpcy5jaGFuZ2Vsb2dQYXRoID0gb3B0aW9ucy5jaGFuZ2Vsb2dQYXRoO1xuICAgIHRoaXMuZ2l0UHVzaENvbW1hbmQgPSBvcHRpb25zLmdpdFB1c2hDb21tYW5kO1xuICAgIHRoaXMud29ya2Zsb3dEaXNwYXRjaE9ubHkgPSBvcHRpb25zLndvcmtmbG93RGlzcGF0Y2hPbmx5O1xuICAgIHRoaXMudGFncyA9IG9wdGlvbnMudGFncztcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGlzIGEgcmVsZWFzZSB0cmlnZ2VyIHdpdGggYSBtYW51YWwgdGFzayBydW4gaW4gYSB3b3JraW5nIGNvcHkuXG4gICAqXG4gICAqIElmIHRoZSBgUmVsZWFzZVRyaWdnZXJgIGlzIGEgR2l0SHViLW9ubHkgbWFudWFsIHRhc2ssIHRoaXMgd2lsbCByZXR1cm4gYGZhbHNlYC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNNYW51YWwoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICEodGhpcy5pc0NvbnRpbnVvdXMgfHwgdGhpcy5zY2hlZHVsZSB8fCB0aGlzLnRhZ3MpICYmXG4gICAgICAhdGhpcy53b3JrZmxvd0Rpc3BhdGNoT25seVxuICAgICk7XG4gIH1cbn1cbiJdfQ==