@cdktn/provider-project 0.7.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +419 -0
- package/API.md +4154 -0
- package/CLAUDE.md +172 -0
- package/LICENSE +355 -0
- package/README.md +82 -0
- package/lib/alert-open-prs.d.ts +14 -0
- package/lib/alert-open-prs.js +67 -0
- package/lib/auto-approve.d.ts +11 -0
- package/lib/auto-approve.js +70 -0
- package/lib/auto-close-community-issues.d.ts +15 -0
- package/lib/auto-close-community-issues.js +104 -0
- package/lib/automerge.d.ts +11 -0
- package/lib/automerge.js +67 -0
- package/lib/cdktf-config.d.ts +33 -0
- package/lib/cdktf-config.js +134 -0
- package/lib/copyright-headers.d.ts +4 -0
- package/lib/copyright-headers.js +44 -0
- package/lib/customized-license.d.ts +8 -0
- package/lib/customized-license.js +19 -0
- package/lib/dependabot.d.ts +8 -0
- package/lib/dependabot.js +40 -0
- package/lib/deprecate-packages.d.ts +14 -0
- package/lib/deprecate-packages.js +91 -0
- package/lib/force-release.d.ts +12 -0
- package/lib/force-release.js +112 -0
- package/lib/github-issues.d.ts +15 -0
- package/lib/github-issues.js +33 -0
- package/lib/index.d.ts +53 -0
- package/lib/index.js +447 -0
- package/lib/lock-issues.d.ts +13 -0
- package/lib/lock-issues.js +54 -0
- package/lib/package-info.d.ts +14 -0
- package/lib/package-info.js +7 -0
- package/lib/provider-upgrade.d.ts +17 -0
- package/lib/provider-upgrade.js +145 -0
- package/lib/readme.d.ts +21 -0
- package/lib/readme.js +147 -0
- package/lib/scripts/check-for-upgrades.d.ts +15 -0
- package/lib/scripts/check-for-upgrades.js +186 -0
- package/lib/scripts/should-release.d.ts +13 -0
- package/lib/scripts/should-release.js +96 -0
- package/lib/util/random-cron.d.ts +18 -0
- package/lib/util/random-cron.js +33 -0
- package/mise.toml +2 -0
- package/node_modules/camel-case/LICENSE +21 -0
- package/node_modules/camel-case/README.md +47 -0
- package/node_modules/camel-case/dist/index.d.ts +5 -0
- package/node_modules/camel-case/dist/index.js +23 -0
- package/node_modules/camel-case/dist/index.js.map +1 -0
- package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist/index.spec.js +26 -0
- package/node_modules/camel-case/dist/index.spec.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/camel-case/dist.es2015/index.js +17 -0
- package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/camel-case/package.json +89 -0
- package/node_modules/capital-case/LICENSE +21 -0
- package/node_modules/capital-case/README.md +37 -0
- package/node_modules/capital-case/dist/index.d.ts +4 -0
- package/node_modules/capital-case/dist/index.js +16 -0
- package/node_modules/capital-case/dist/index.js.map +1 -0
- package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist/index.spec.js +24 -0
- package/node_modules/capital-case/dist/index.spec.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/capital-case/dist.es2015/index.js +11 -0
- package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/capital-case/package.json +90 -0
- package/node_modules/change-case/LICENSE +21 -0
- package/node_modules/change-case/README.md +44 -0
- package/node_modules/change-case/dist/index.d.ts +11 -0
- package/node_modules/change-case/dist/index.js +15 -0
- package/node_modules/change-case/dist/index.js.map +1 -0
- package/node_modules/change-case/dist/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist/index.spec.js +9 -0
- package/node_modules/change-case/dist/index.spec.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
- package/node_modules/change-case/dist.es2015/index.js +12 -0
- package/node_modules/change-case/dist.es2015/index.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
- package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/change-case/package.json +101 -0
- package/node_modules/constant-case/LICENSE +21 -0
- package/node_modules/constant-case/README.md +37 -0
- package/node_modules/constant-case/dist/index.d.ts +3 -0
- package/node_modules/constant-case/dist/index.js +12 -0
- package/node_modules/constant-case/dist/index.js.map +1 -0
- package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist/index.spec.js +26 -0
- package/node_modules/constant-case/dist/index.spec.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/constant-case/dist.es2015/index.js +8 -0
- package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/constant-case/package.json +90 -0
- package/node_modules/dot-case/LICENSE +21 -0
- package/node_modules/dot-case/README.md +37 -0
- package/node_modules/dot-case/dist/index.d.ts +3 -0
- package/node_modules/dot-case/dist/index.js +11 -0
- package/node_modules/dot-case/dist/index.js.map +1 -0
- package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist/index.spec.js +26 -0
- package/node_modules/dot-case/dist/index.spec.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/dot-case/dist.es2015/index.js +7 -0
- package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/dot-case/package.json +89 -0
- package/node_modules/fs-extra/LICENSE +15 -0
- package/node_modules/fs-extra/README.md +262 -0
- package/node_modules/fs-extra/lib/copy/copy-sync.js +169 -0
- package/node_modules/fs-extra/lib/copy/copy.js +235 -0
- package/node_modules/fs-extra/lib/copy/index.js +7 -0
- package/node_modules/fs-extra/lib/empty/index.js +39 -0
- package/node_modules/fs-extra/lib/ensure/file.js +69 -0
- package/node_modules/fs-extra/lib/ensure/index.js +23 -0
- package/node_modules/fs-extra/lib/ensure/link.js +64 -0
- package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
- package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
- package/node_modules/fs-extra/lib/ensure/symlink.js +82 -0
- package/node_modules/fs-extra/lib/fs/index.js +128 -0
- package/node_modules/fs-extra/lib/index.js +16 -0
- package/node_modules/fs-extra/lib/json/index.js +16 -0
- package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
- package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
- package/node_modules/fs-extra/lib/json/output-json.js +12 -0
- package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
- package/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
- package/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
- package/node_modules/fs-extra/lib/move/index.js +7 -0
- package/node_modules/fs-extra/lib/move/move-sync.js +54 -0
- package/node_modules/fs-extra/lib/move/move.js +75 -0
- package/node_modules/fs-extra/lib/output-file/index.js +40 -0
- package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
- package/node_modules/fs-extra/lib/remove/index.js +22 -0
- package/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
- package/node_modules/fs-extra/lib/util/stat.js +154 -0
- package/node_modules/fs-extra/lib/util/utimes.js +26 -0
- package/node_modules/fs-extra/package.json +67 -0
- package/node_modules/graceful-fs/LICENSE +15 -0
- package/node_modules/graceful-fs/README.md +143 -0
- package/node_modules/graceful-fs/clone.js +23 -0
- package/node_modules/graceful-fs/graceful-fs.js +448 -0
- package/node_modules/graceful-fs/legacy-streams.js +118 -0
- package/node_modules/graceful-fs/package.json +53 -0
- package/node_modules/graceful-fs/polyfills.js +355 -0
- package/node_modules/header-case/LICENSE +21 -0
- package/node_modules/header-case/README.md +37 -0
- package/node_modules/header-case/dist/index.d.ts +3 -0
- package/node_modules/header-case/dist/index.js +11 -0
- package/node_modules/header-case/dist/index.js.map +1 -0
- package/node_modules/header-case/dist/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist/index.spec.js +24 -0
- package/node_modules/header-case/dist/index.spec.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/header-case/dist.es2015/index.js +7 -0
- package/node_modules/header-case/dist.es2015/index.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/header-case/package.json +89 -0
- package/node_modules/jsonfile/LICENSE +15 -0
- package/node_modules/jsonfile/README.md +230 -0
- package/node_modules/jsonfile/index.js +88 -0
- package/node_modules/jsonfile/package.json +40 -0
- package/node_modules/jsonfile/utils.js +14 -0
- package/node_modules/lower-case/LICENSE +21 -0
- package/node_modules/lower-case/README.md +35 -0
- package/node_modules/lower-case/dist/index.d.ts +8 -0
- package/node_modules/lower-case/dist/index.js +53 -0
- package/node_modules/lower-case/dist/index.js.map +1 -0
- package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist/index.spec.js +36 -0
- package/node_modules/lower-case/dist/index.spec.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/lower-case/dist.es2015/index.js +48 -0
- package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/lower-case/package.json +87 -0
- package/node_modules/no-case/LICENSE +21 -0
- package/node_modules/no-case/README.md +37 -0
- package/node_modules/no-case/dist/index.d.ts +10 -0
- package/node_modules/no-case/dist/index.js +35 -0
- package/node_modules/no-case/dist/index.js.map +1 -0
- package/node_modules/no-case/dist/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist/index.spec.js +59 -0
- package/node_modules/no-case/dist/index.spec.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
- package/node_modules/no-case/dist.es2015/index.js +31 -0
- package/node_modules/no-case/dist.es2015/index.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
- package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/no-case/package.json +85 -0
- package/node_modules/param-case/LICENSE +21 -0
- package/node_modules/param-case/README.md +37 -0
- package/node_modules/param-case/dist/index.d.ts +3 -0
- package/node_modules/param-case/dist/index.js +11 -0
- package/node_modules/param-case/dist/index.js.map +1 -0
- package/node_modules/param-case/dist/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist/index.spec.js +24 -0
- package/node_modules/param-case/dist/index.spec.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/param-case/dist.es2015/index.js +7 -0
- package/node_modules/param-case/dist.es2015/index.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/param-case/package.json +91 -0
- package/node_modules/pascal-case/LICENSE +21 -0
- package/node_modules/pascal-case/README.md +47 -0
- package/node_modules/pascal-case/dist/index.d.ts +5 -0
- package/node_modules/pascal-case/dist/index.js +24 -0
- package/node_modules/pascal-case/dist/index.js.map +1 -0
- package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist/index.spec.js +25 -0
- package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/pascal-case/dist.es2015/index.js +18 -0
- package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/pascal-case/package.json +90 -0
- package/node_modules/path-case/LICENSE +21 -0
- package/node_modules/path-case/README.md +37 -0
- package/node_modules/path-case/dist/index.d.ts +3 -0
- package/node_modules/path-case/dist/index.js +11 -0
- package/node_modules/path-case/dist/index.js.map +1 -0
- package/node_modules/path-case/dist/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist/index.spec.js +24 -0
- package/node_modules/path-case/dist/index.spec.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/path-case/dist.es2015/index.js +7 -0
- package/node_modules/path-case/dist.es2015/index.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/path-case/package.json +88 -0
- package/node_modules/sentence-case/LICENSE +21 -0
- package/node_modules/sentence-case/README.md +37 -0
- package/node_modules/sentence-case/dist/index.d.ts +4 -0
- package/node_modules/sentence-case/dist/index.js +19 -0
- package/node_modules/sentence-case/dist/index.js.map +1 -0
- package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist/index.spec.js +24 -0
- package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/sentence-case/dist.es2015/index.js +14 -0
- package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/sentence-case/package.json +89 -0
- package/node_modules/snake-case/LICENSE +21 -0
- package/node_modules/snake-case/README.md +37 -0
- package/node_modules/snake-case/dist/index.d.ts +3 -0
- package/node_modules/snake-case/dist/index.js +11 -0
- package/node_modules/snake-case/dist/index.js.map +1 -0
- package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist/index.spec.js +25 -0
- package/node_modules/snake-case/dist/index.spec.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/snake-case/dist.es2015/index.js +7 -0
- package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/snake-case/package.json +90 -0
- package/node_modules/tslib/CopyrightNotice.txt +15 -0
- package/node_modules/tslib/LICENSE.txt +12 -0
- package/node_modules/tslib/README.md +164 -0
- package/node_modules/tslib/SECURITY.md +41 -0
- package/node_modules/tslib/modules/index.d.ts +38 -0
- package/node_modules/tslib/modules/index.js +70 -0
- package/node_modules/tslib/modules/package.json +3 -0
- package/node_modules/tslib/package.json +47 -0
- package/node_modules/tslib/tslib.d.ts +460 -0
- package/node_modules/tslib/tslib.es6.html +1 -0
- package/node_modules/tslib/tslib.es6.js +402 -0
- package/node_modules/tslib/tslib.es6.mjs +401 -0
- package/node_modules/tslib/tslib.html +1 -0
- package/node_modules/tslib/tslib.js +484 -0
- package/node_modules/universalify/LICENSE +20 -0
- package/node_modules/universalify/README.md +76 -0
- package/node_modules/universalify/index.js +24 -0
- package/node_modules/universalify/package.json +34 -0
- package/node_modules/upper-case/README.md +34 -0
- package/node_modules/upper-case/dist/index.d.ts +8 -0
- package/node_modules/upper-case/dist/index.js +49 -0
- package/node_modules/upper-case/dist/index.js.map +1 -0
- package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist/index.spec.js +34 -0
- package/node_modules/upper-case/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/upper-case/dist.es2015/index.js +44 -0
- package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case/package.json +86 -0
- package/node_modules/upper-case-first/LICENSE +21 -0
- package/node_modules/upper-case-first/README.md +32 -0
- package/node_modules/upper-case-first/dist/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist/index.js +11 -0
- package/node_modules/upper-case-first/dist/index.js.map +1 -0
- package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist/index.spec.js +20 -0
- package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
- package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/package.json +87 -0
- package/package.json +181 -0
package/lib/index.js
ADDED
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CdktnProviderProject = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
7
|
+
const assert = require("assert");
|
|
8
|
+
const change_case_1 = require("change-case");
|
|
9
|
+
const projen_1 = require("projen");
|
|
10
|
+
const javascript_1 = require("projen/lib/javascript");
|
|
11
|
+
const alert_open_prs_1 = require("./alert-open-prs");
|
|
12
|
+
const auto_approve_1 = require("./auto-approve");
|
|
13
|
+
const auto_close_community_issues_1 = require("./auto-close-community-issues");
|
|
14
|
+
const automerge_1 = require("./automerge");
|
|
15
|
+
const cdktf_config_1 = require("./cdktf-config");
|
|
16
|
+
const copyright_headers_1 = require("./copyright-headers");
|
|
17
|
+
const customized_license_1 = require("./customized-license");
|
|
18
|
+
const dependabot_1 = require("./dependabot");
|
|
19
|
+
const deprecate_packages_1 = require("./deprecate-packages");
|
|
20
|
+
const force_release_1 = require("./force-release");
|
|
21
|
+
const github_issues_1 = require("./github-issues");
|
|
22
|
+
const lock_issues_1 = require("./lock-issues");
|
|
23
|
+
const provider_upgrade_1 = require("./provider-upgrade");
|
|
24
|
+
const check_for_upgrades_1 = require("./scripts/check-for-upgrades");
|
|
25
|
+
const should_release_1 = require("./scripts/should-release");
|
|
26
|
+
const random_cron_1 = require("./util/random-cron");
|
|
27
|
+
// ensure new projects start with 1.0.0 so that every following breaking change leads to an increased major version
|
|
28
|
+
const MIN_MAJOR_VERSION = 1;
|
|
29
|
+
const getMavenName = (providerName) => {
|
|
30
|
+
return ["null", "random"].includes(providerName)
|
|
31
|
+
? `${providerName}_provider`
|
|
32
|
+
: providerName.replace(/-/gi, "_");
|
|
33
|
+
};
|
|
34
|
+
const githubActionPinnedVersions = {
|
|
35
|
+
"actions/checkout": "11bd71901bbe5b1630ceea73d27597364c9af683", // v4.2.2
|
|
36
|
+
"actions/download-artifact": "95815c38cf2ff2164869cbab79da8d1f422bc89e", // v4.2.1
|
|
37
|
+
"actions/github-script": "60a0d83039c74a4aee543508d2ffcb1c3799cdea", // v7.0.1
|
|
38
|
+
"actions/setup-dotnet": "67a3573c9a986a3f9c594539f4ab511d57bb3ce9", // v4.3.1
|
|
39
|
+
"actions/setup-go": "0aaccfd150d50ccaeb58ebd88d36e91967a5f35b", // v5.4.0
|
|
40
|
+
"actions/setup-java": "3a4f6e1af504cf6a31855fa899c6aa5355ba6c12", // v4.7.0
|
|
41
|
+
"actions/setup-node": "cdca7365b2dadb8aad0a33bc7601856ffabcc48e", // v4.3.0
|
|
42
|
+
"actions/setup-python": "42375524e23c412d93fb67b49958b491fce71c38", // v5.4.0
|
|
43
|
+
"actions/stale": "5bef64f19d7facfb25b37b414482c7164d639639", // v9.1.0
|
|
44
|
+
"actions/upload-artifact": "ea165f8d65b6e75b540449e92b4886f43607fa02", // v4.6.2
|
|
45
|
+
"amannn/action-semantic-pull-request": "0723387faaf9b38adef4775cd42cfd5155ed6017", // v5.5.3
|
|
46
|
+
"dessant/lock-threads": "1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771", // v5.0.1
|
|
47
|
+
"hashicorp/setup-copywrite": "32638da2d4e81d56a0764aa1547882fc4d209636", // v1.1.3
|
|
48
|
+
"hashicorp/setup-terraform": "b9cd54a3c349d3f38e8881555d616ced269862dd", // v3.1.2
|
|
49
|
+
"imjohnbo/issue-bot": "572eed14422c4d6ca37e870f97e7da209422f5bd", // v3.4.4
|
|
50
|
+
"peter-evans/create-pull-request": "271a8d0340265f705b14b6d32b9829c1cb33d45e", // v7.0.8
|
|
51
|
+
"slackapi/slack-github-action": "485a9d42d3a73031f12ec201c457e2162c45d02d", // v2.0.0
|
|
52
|
+
};
|
|
53
|
+
class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
54
|
+
constructor(options) {
|
|
55
|
+
const { terraformProvider, workflowContainerImage, cdktfVersion, constructsVersion, minNodeVersion, jsiiVersion, typescriptVersion, isDeprecated, deprecationDate,
|
|
56
|
+
// TODO: Confirm default Author Name
|
|
57
|
+
authorName = "CDK Terrain Maintainers", authorAddress = "https://cdktn.io", namespace = "cdktn", githubNamespace = "cdktn-io", mavenEndpoint = "https://central.sonatype.com", // TODO
|
|
58
|
+
nugetOrg = "Io.Cdktn", // TODO
|
|
59
|
+
mavenOrg = "Io.Cdktn", // TODO
|
|
60
|
+
} = options;
|
|
61
|
+
const [fqproviderName, providerVersion] = terraformProvider.split("@");
|
|
62
|
+
const providerName = fqproviderName.split("/").pop();
|
|
63
|
+
assert(providerName, `${terraformProvider} doesn't seem to be valid`);
|
|
64
|
+
assert(!providerName.endsWith("-go"), "providerName may not end with '-go' as this can conflict with repos for go packages");
|
|
65
|
+
const nugetName = `${nugetOrg}.${(0, change_case_1.pascalCase)(namespace)}.Providers.${(0, change_case_1.pascalCase)(providerName)}`;
|
|
66
|
+
const mavenGroupId = options.mavenGroupId ?? `com.${mavenOrg}`;
|
|
67
|
+
const mavenName = `${mavenGroupId}.${namespace}.providers.${getMavenName(providerName)}`;
|
|
68
|
+
const repository = `${githubNamespace}/${namespace}-provider-${providerName.replace(/-/g, "")}`;
|
|
69
|
+
const repositoryUrl = `github.com/${repository}`;
|
|
70
|
+
const packageInfo = {
|
|
71
|
+
npm: {
|
|
72
|
+
name: `@${namespace}/provider-${providerName}`,
|
|
73
|
+
},
|
|
74
|
+
python: {
|
|
75
|
+
// distName: `${githubNamespace}-${namespace}-provider-${providerName.replace(
|
|
76
|
+
distName: `${namespace}-provider-${providerName.replace(/-/gi, "_")}`,
|
|
77
|
+
// module: `${githubNamespace}_${namespace}_provider_${providerName.replace(
|
|
78
|
+
module: `${namespace}_provider_${providerName.replace(/-/gi, "_")}`,
|
|
79
|
+
},
|
|
80
|
+
publishToNuget: {
|
|
81
|
+
dotNetNamespace: nugetName,
|
|
82
|
+
packageId: nugetName,
|
|
83
|
+
},
|
|
84
|
+
publishToMaven: {
|
|
85
|
+
javaPackage: mavenName,
|
|
86
|
+
mavenGroupId: mavenGroupId,
|
|
87
|
+
mavenArtifactId: `${namespace}-provider-${providerName}`,
|
|
88
|
+
mavenEndpoint,
|
|
89
|
+
},
|
|
90
|
+
publishToGo: {
|
|
91
|
+
moduleName: `${repositoryUrl}-go`,
|
|
92
|
+
gitUserEmail: "github-team-cdk-terrain@cdktn.io",
|
|
93
|
+
gitUserName: "team-cdk-terrain",
|
|
94
|
+
packageName: providerName.replace(/-/g, ""),
|
|
95
|
+
// In order to use the copywrite action, we need to rebuild the full pre-publish steps workflow unfortunately
|
|
96
|
+
// If someone knows a better way to do this mutation with minimal custom code, please do so
|
|
97
|
+
prePublishSteps: [
|
|
98
|
+
{
|
|
99
|
+
name: "Checkout",
|
|
100
|
+
uses: "actions/checkout",
|
|
101
|
+
with: {
|
|
102
|
+
path: ".repo",
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: "Install Dependencies",
|
|
107
|
+
run: "cd .repo && yarn install --check-files --frozen-lockfile",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: "Extract build artifact",
|
|
111
|
+
run: "tar --strip-components=1 -xzvf dist/js/*.tgz -C .repo",
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: "Move build artifact out of the way",
|
|
115
|
+
run: "mv dist dist.old",
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: "Create go artifact",
|
|
119
|
+
run: "cd .repo && npx projen package:go",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "Setup Copywrite tool",
|
|
123
|
+
uses: "hashicorp/setup-copywrite",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: "Copy copywrite hcl file",
|
|
127
|
+
run: "cp .repo/.copywrite.hcl .repo/dist/go/.copywrite.hcl",
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: "Add headers using Copywrite tool",
|
|
131
|
+
run: "cd .repo/dist/go && copywrite headers",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: "Remove copywrite hcl file",
|
|
135
|
+
run: "rm -f .repo/dist/go/.copywrite.hcl",
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "Remove some text from the README that doesn't apply to Go",
|
|
139
|
+
run: [
|
|
140
|
+
"sed -i 's/# CDKTF prebuilt bindings for/# CDKTF Go bindings for/' .repo/dist/go/*/README.md",
|
|
141
|
+
// @see https://stackoverflow.com/a/49511949
|
|
142
|
+
// eslint-disable-next-line prettier/prettier
|
|
143
|
+
// prettier-ignore
|
|
144
|
+
`sed -i -e '/## ${isDeprecated ? "Deprecated" : "Available"} Packages/,/### Go/!b' -e '/### Go/!d;p; s/### Go/## Go Package/' -e 'd' .repo/dist/go/*/README.md`,
|
|
145
|
+
// sed -e is black magic and for whatever reason the string replace doesn't work so let's try it again:
|
|
146
|
+
// eslint-disable-next-line prettier/prettier
|
|
147
|
+
// prettier-ignore
|
|
148
|
+
`sed -i 's/### Go/## ${isDeprecated ? "Deprecated" : "Go"} Package/' .repo/dist/go/*/README.md`,
|
|
149
|
+
// Just straight up delete these full lines and everything in between them:
|
|
150
|
+
"sed -i -e '/API.typescript.md/,/You can also visit a hosted version/!b' -e 'd' .repo/dist/go/*/README.md",
|
|
151
|
+
`sed -i 's|Find auto-generated docs for this provider here:|Find auto-generated docs for this provider [here](https://${repositoryUrl}/blob/main/docs/API.go.md).|' .repo/dist/go/*/README.md`,
|
|
152
|
+
// Just straight up delete these full lines and everything in between them:
|
|
153
|
+
"sed -i -e '/### Provider Version/,/The provider version can be adjusted/!b' -e 'd' .repo/dist/go/*/README.md",
|
|
154
|
+
].join("\n"),
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "Copy the README file to the parent directory",
|
|
158
|
+
run: "cp .repo/dist/go/*/README.md .repo/dist/go/README.md",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "Collect go Artifact",
|
|
162
|
+
run: "mv .repo/dist dist",
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
const workflowRunsOn = options.useCustomGithubRunner
|
|
168
|
+
? ["custom-linux-medium"] // 8 core, 32 GB
|
|
169
|
+
: ["ubuntu-latest"]; // 7 GB
|
|
170
|
+
super({
|
|
171
|
+
...options,
|
|
172
|
+
authorAddress,
|
|
173
|
+
authorName,
|
|
174
|
+
minNodeVersion,
|
|
175
|
+
workflowContainerImage,
|
|
176
|
+
workflowRunsOn,
|
|
177
|
+
licensed: false, // we do supply our own license file with a custom header
|
|
178
|
+
releaseToNpm: true,
|
|
179
|
+
name: packageInfo.npm.name,
|
|
180
|
+
description: `Prebuilt ${providerName} Provider for Terraform CDK (cdktf)`,
|
|
181
|
+
keywords: ["cdktf", "terraform", "cdk", "provider", providerName],
|
|
182
|
+
sampleCode: false,
|
|
183
|
+
jest: false,
|
|
184
|
+
authorOrganization: true,
|
|
185
|
+
defaultReleaseBranch: "main",
|
|
186
|
+
repository: `https://github.com/${repository}.git`,
|
|
187
|
+
mergify: false,
|
|
188
|
+
eslint: false,
|
|
189
|
+
depsUpgrade: !isDeprecated,
|
|
190
|
+
depsUpgradeOptions: {
|
|
191
|
+
workflowOptions: {
|
|
192
|
+
labels: ["automerge", "auto-approve", "dependencies"],
|
|
193
|
+
schedule: javascript_1.UpgradeDependenciesSchedule.WEEKLY,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
python: packageInfo.python,
|
|
197
|
+
// TODO: Re-enable if requested and when available
|
|
198
|
+
// publishToNuget: packageInfo.publishToNuget,
|
|
199
|
+
// publishToMaven: packageInfo.publishToMaven,
|
|
200
|
+
publishToGo: packageInfo.publishToGo,
|
|
201
|
+
releaseFailureIssue: true,
|
|
202
|
+
peerDependencyOptions: {
|
|
203
|
+
pinnedDevDependency: false,
|
|
204
|
+
},
|
|
205
|
+
workflowGitIdentity: {
|
|
206
|
+
name: "team-cdk-terrain",
|
|
207
|
+
email: "github-team-cdk-terrain@cdktn.io",
|
|
208
|
+
},
|
|
209
|
+
minMajorVersion: MIN_MAJOR_VERSION,
|
|
210
|
+
stale: true,
|
|
211
|
+
staleOptions: {
|
|
212
|
+
issues: {
|
|
213
|
+
staleLabel: "stale",
|
|
214
|
+
daysBeforeStale: 45,
|
|
215
|
+
staleMessage: "45 days have passed since this issue was opened, and I assume other publishes have succeeded in the meantime. " +
|
|
216
|
+
"If no one removes the `stale` label or comments, I'm going to auto-close this issue in 14 days.",
|
|
217
|
+
daysBeforeClose: 14,
|
|
218
|
+
closeMessage: "2 months have passed, so I'm closing this issue with the assumption that other publishes have succeeded in the meantime.",
|
|
219
|
+
},
|
|
220
|
+
pullRequest: {
|
|
221
|
+
staleLabel: "stale",
|
|
222
|
+
daysBeforeStale: 1,
|
|
223
|
+
staleMessage: `Closing this PR, if it has not merged there is most likely a CI or CDKTF issue preventing it from merging. If this has been a manual PR, please reopen it and add the \`no-auto-close\` label to prevent this from happening again.`,
|
|
224
|
+
daysBeforeClose: 0,
|
|
225
|
+
exemptLabels: ["no-auto-close"],
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
pullRequestTemplate: false,
|
|
229
|
+
docgen: false,
|
|
230
|
+
});
|
|
231
|
+
this.addDevDeps("dot-prop@^5.2.0", "@actions/core@^1.1.0", "@action-validator/core", "@action-validator/cli");
|
|
232
|
+
// Default memory is 7GB: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
|
|
233
|
+
// Custom Runners we use have 32GB of memory
|
|
234
|
+
// The below numbers set heap limits that are ~1gb and ~0.5gb less, respectively, than the total available memory
|
|
235
|
+
const maxOldSpaceSize = options.useCustomGithubRunner ? "31744" : "6656";
|
|
236
|
+
// Golang needs more memory to build
|
|
237
|
+
this.tasks.addEnvironment("NODE_OPTIONS", `--max-old-space-size=${maxOldSpaceSize}`);
|
|
238
|
+
this.tasks.addEnvironment("CHECKPOINT_DISABLE", "1");
|
|
239
|
+
const validateTask = this.addTask("validate-workflows", {
|
|
240
|
+
exec: `find ./.github/workflows -type f -name "*.yml" -print0 | xargs -0 -n 1 npx action-validator`,
|
|
241
|
+
});
|
|
242
|
+
validateTask.description =
|
|
243
|
+
"Lint the YAML files generated by Projen to define GitHub Actions and Workflows, checking them against published JSON schemas";
|
|
244
|
+
this.postCompileTask.spawn(validateTask);
|
|
245
|
+
this.package.addPackageResolutions("@types/yargs@17.0.13");
|
|
246
|
+
const setSafeDirectory = {
|
|
247
|
+
name: "Set git config safe.directory",
|
|
248
|
+
run: "git config --global --add safe.directory $(pwd)",
|
|
249
|
+
};
|
|
250
|
+
this.buildWorkflow.preBuildSteps.push(setSafeDirectory);
|
|
251
|
+
this.release.defaultBranch.workflow.jobs.release.steps.splice(1, 0, setSafeDirectory);
|
|
252
|
+
// always publish a new GitHub release, even when publishing to a particular package manager fails
|
|
253
|
+
const releaseWorkflow = this.tryFindObjectFile(".github/workflows/release.yml");
|
|
254
|
+
releaseWorkflow?.addOverride("jobs.release_github.needs", "release");
|
|
255
|
+
// ensure we don't fail if the release file is not present
|
|
256
|
+
const checkExistingTagStep = this.release.defaultBranch.workflow.jobs.release.steps.find((s) => "id" in s && s.id === "check_tag_exists");
|
|
257
|
+
const oldExistingTagRun = checkExistingTagStep.run;
|
|
258
|
+
prettyAssertEqual(oldExistingTagRun.split("\n")[0], "TAG=$(cat dist/releasetag.txt)", "release step changed, please check if the workaround still works!");
|
|
259
|
+
checkExistingTagStep.run = `if [ ! -f dist/releasetag.txt ]; then (echo "exists=true" >> $GITHUB_OUTPUT) && exit 0; fi\n${oldExistingTagRun}`;
|
|
260
|
+
if (!isDeprecated) {
|
|
261
|
+
const { upgrade, pr } = this.upgradeWorkflow.workflows[0].jobs;
|
|
262
|
+
upgrade.steps.splice(1, 0, setSafeDirectory);
|
|
263
|
+
pr.steps.splice(1, 0, setSafeDirectory);
|
|
264
|
+
}
|
|
265
|
+
// // TODO: Re-enable when Maven requested and infra available
|
|
266
|
+
// // Fix maven issue (https://github.com/cdklabs/publib/pull/777)
|
|
267
|
+
// github.GitHub.of(this)?.tryFindWorkflow("release")?.file?.patch(
|
|
268
|
+
// JsonPatch.add(
|
|
269
|
+
// "/jobs/release_maven/steps/10/env/MAVEN_OPTS",
|
|
270
|
+
// // See https://stackoverflow.com/questions/70153962/nexus-staging-maven-plugin-maven-deploy-failed-an-api-incompatibility-was-enco
|
|
271
|
+
// "--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED"
|
|
272
|
+
// )
|
|
273
|
+
// );
|
|
274
|
+
this.pinGithubActionVersions(githubActionPinnedVersions);
|
|
275
|
+
new cdktf_config_1.CdktfConfig(this, {
|
|
276
|
+
terraformProvider,
|
|
277
|
+
providerName,
|
|
278
|
+
fqproviderName,
|
|
279
|
+
providerVersion,
|
|
280
|
+
cdktfVersion,
|
|
281
|
+
constructsVersion,
|
|
282
|
+
jsiiVersion,
|
|
283
|
+
typescriptVersion,
|
|
284
|
+
packageInfo,
|
|
285
|
+
githubNamespace,
|
|
286
|
+
deprecationDate,
|
|
287
|
+
isDeprecated: !!isDeprecated,
|
|
288
|
+
});
|
|
289
|
+
new customized_license_1.CustomizedLicense(this, options.creationYear, options.licensee);
|
|
290
|
+
new github_issues_1.GithubIssues(this, { providerName });
|
|
291
|
+
new auto_approve_1.AutoApprove(this);
|
|
292
|
+
new auto_close_community_issues_1.AutoCloseCommunityIssues(this, { providerName });
|
|
293
|
+
new automerge_1.Automerge(this);
|
|
294
|
+
new lock_issues_1.LockIssues(this);
|
|
295
|
+
if (!isDeprecated) {
|
|
296
|
+
const upgradeScript = new check_for_upgrades_1.CheckForUpgradesScriptFile(this, {
|
|
297
|
+
providerVersion,
|
|
298
|
+
fqproviderName,
|
|
299
|
+
});
|
|
300
|
+
new provider_upgrade_1.ProviderUpgrade(this, {
|
|
301
|
+
checkForUpgradesScriptPath: upgradeScript.path,
|
|
302
|
+
workflowRunsOn,
|
|
303
|
+
nodeHeapSize: maxOldSpaceSize,
|
|
304
|
+
});
|
|
305
|
+
new alert_open_prs_1.AlertOpenPrs(this, {
|
|
306
|
+
slackWebhookUrl: "${{ secrets.ALERT_PRS_SLACK_WEBHOOK_URL }}",
|
|
307
|
+
repository,
|
|
308
|
+
});
|
|
309
|
+
new dependabot_1.Dependabot(this);
|
|
310
|
+
}
|
|
311
|
+
new projen_1.TextFile(this, ".github/CODEOWNERS", {
|
|
312
|
+
lines: [
|
|
313
|
+
"# These owners will be the default owners for everything in ",
|
|
314
|
+
"# the repo. Unless a later match takes precedence, ",
|
|
315
|
+
"# they will be requested for review when someone opens a ",
|
|
316
|
+
"# pull request.",
|
|
317
|
+
"* @cdktn-io/team-cdk-terrain",
|
|
318
|
+
],
|
|
319
|
+
});
|
|
320
|
+
if (!isDeprecated) {
|
|
321
|
+
new should_release_1.ShouldReleaseScriptFile(this, {});
|
|
322
|
+
const releaseTask = this.tasks.tryFind("release");
|
|
323
|
+
this.removeTask("release");
|
|
324
|
+
this.addTask("release", {
|
|
325
|
+
description: releaseTask.description,
|
|
326
|
+
steps: releaseTask.steps,
|
|
327
|
+
env: releaseTask._env,
|
|
328
|
+
condition: "node ./scripts/should-release.js",
|
|
329
|
+
});
|
|
330
|
+
this.addTask("unconditional-release", {
|
|
331
|
+
description: releaseTask.description,
|
|
332
|
+
steps: releaseTask.steps,
|
|
333
|
+
env: releaseTask._env,
|
|
334
|
+
});
|
|
335
|
+
const releaseJobSteps = (this.github?.tryFindWorkflow("release")).jobs.release.steps;
|
|
336
|
+
const gitRemoteJob = releaseJobSteps.find((it) => it.id === "git_remote");
|
|
337
|
+
prettyAssertEqual(gitRemoteJob.run, 'echo "latest_commit=$(git ls-remote origin -h ${{ github.ref }} | cut -f1)" >> $GITHUB_OUTPUT\ncat $GITHUB_OUTPUT', "git_remote step in release workflow did not match expected string, please check if the workaround still works!");
|
|
338
|
+
const previousCommand = gitRemoteJob.run.replace("\n", " && ");
|
|
339
|
+
const cancelCommand = 'echo "latest_commit=release_cancelled" >> $GITHUB_OUTPUT'; // this cancels the release via a non-matching SHA;
|
|
340
|
+
gitRemoteJob.run = `node ./scripts/should-release.js && (${previousCommand}) || ${cancelCommand}`;
|
|
341
|
+
gitRemoteJob.name +=
|
|
342
|
+
" or cancel via faking a SHA if release was cancelled";
|
|
343
|
+
}
|
|
344
|
+
const staleWorkflow = this.tryFindObjectFile(".github/workflows/stale.yml");
|
|
345
|
+
staleWorkflow?.addOverride("on.schedule", [
|
|
346
|
+
{
|
|
347
|
+
cron: (0, random_cron_1.generateRandomCron)({ project: this, maxHour: 4, hourOffset: 1 }),
|
|
348
|
+
},
|
|
349
|
+
]);
|
|
350
|
+
const upgradeWorkflow = this.tryFindObjectFile(".github/workflows/upgrade-main.yml");
|
|
351
|
+
upgradeWorkflow?.addOverride("on.schedule", [
|
|
352
|
+
{
|
|
353
|
+
cron: (0, random_cron_1.generateRandomCron)({
|
|
354
|
+
project: this,
|
|
355
|
+
maxHour: 0,
|
|
356
|
+
hourOffset: 1,
|
|
357
|
+
schedule: random_cron_1.Schedule.Weekly,
|
|
358
|
+
}),
|
|
359
|
+
},
|
|
360
|
+
]);
|
|
361
|
+
// Submodule documentation generation
|
|
362
|
+
this.gitignore.exclude("API.md"); // ignore the old file, we now generate it in the docs folder
|
|
363
|
+
this.addDevDeps("jsii-docgen@^10.2.3");
|
|
364
|
+
if (jsiiVersion) {
|
|
365
|
+
// NOTE: the below is making a broad assumption that you're passing a range like "~5.3.0" to jsiiVersion
|
|
366
|
+
// If you use that field to pass a very specific version (e.g. "5.3.11") then this might break
|
|
367
|
+
this.addDevDeps(`jsii-rosetta@${jsiiVersion}`);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
this.addDevDeps(`jsii-rosetta`);
|
|
371
|
+
}
|
|
372
|
+
const docgen = this.addTask("docgen", {
|
|
373
|
+
description: "Generate documentation for the project",
|
|
374
|
+
steps: [
|
|
375
|
+
{
|
|
376
|
+
exec: [
|
|
377
|
+
"rm -rf docs",
|
|
378
|
+
"rm -f API.md",
|
|
379
|
+
"mkdir docs",
|
|
380
|
+
// TODO: Re-enable java / csharp
|
|
381
|
+
// "jsii-docgen --split-by-submodule -l typescript -l python -l java -l csharp -l go",
|
|
382
|
+
"jsii-docgen --split-by-submodule -l typescript -l python -l go",
|
|
383
|
+
// There is no nice way to tell jsii-docgen to generate docs into a folder so I went this route
|
|
384
|
+
"mv *.*.md docs",
|
|
385
|
+
// Some part of the documentation are too long, we need to truncate them to ~10MB
|
|
386
|
+
"cd docs",
|
|
387
|
+
"ls ./ | xargs sed -i '150000,$ d' $1",
|
|
388
|
+
].join(" && "),
|
|
389
|
+
},
|
|
390
|
+
],
|
|
391
|
+
});
|
|
392
|
+
this.postCompileTask.spawn(docgen);
|
|
393
|
+
this.gitignore.include(`/docs/*.md`);
|
|
394
|
+
this.annotateGenerated(`/docs/*.md`);
|
|
395
|
+
// Setting the version in package.json so the golang docs have the correct version
|
|
396
|
+
const unconditionalBump = this.addTask("unconditional-bump", {
|
|
397
|
+
description: "Set the version in package.json to the current version",
|
|
398
|
+
steps: [
|
|
399
|
+
{
|
|
400
|
+
name: "Clear the changelog so that it doesn't get published twice",
|
|
401
|
+
exec: "rm -f $CHANGELOG",
|
|
402
|
+
},
|
|
403
|
+
{ builtin: "release/bump-version" },
|
|
404
|
+
],
|
|
405
|
+
env: {
|
|
406
|
+
OUTFILE: "package.json",
|
|
407
|
+
CHANGELOG: "dist/changelog.md",
|
|
408
|
+
BUMPFILE: "dist/version.txt",
|
|
409
|
+
RELEASETAG: "dist/releasetag.txt",
|
|
410
|
+
RELEASE_TAG_PREFIX: "",
|
|
411
|
+
MIN_MAJOR: String(MIN_MAJOR_VERSION),
|
|
412
|
+
},
|
|
413
|
+
});
|
|
414
|
+
this.preCompileTask.spawn(unconditionalBump);
|
|
415
|
+
// To bump correctly we need to have the completely cloned repo
|
|
416
|
+
this.buildWorkflow.workflow.file.addOverride("jobs.build.steps.0.with.fetch-depth", 0);
|
|
417
|
+
// Undo the changes after compilation
|
|
418
|
+
this.buildWorkflow?.addPostBuildSteps({
|
|
419
|
+
name: "Revert package.json version bump",
|
|
420
|
+
run: "git checkout package.json",
|
|
421
|
+
});
|
|
422
|
+
new copyright_headers_1.CopyrightHeaders(this);
|
|
423
|
+
new deprecate_packages_1.DeprecatePackages(this, {
|
|
424
|
+
providerName,
|
|
425
|
+
packageInfo,
|
|
426
|
+
isDeprecated: !!isDeprecated,
|
|
427
|
+
});
|
|
428
|
+
if (!isDeprecated) {
|
|
429
|
+
new force_release_1.ForceRelease(this, { workflowRunsOn });
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
pinGithubActionVersions(pinnedVersions) {
|
|
433
|
+
// Use pinned versions of github actions
|
|
434
|
+
Object.entries(pinnedVersions).forEach(([name, sha]) => {
|
|
435
|
+
this.github?.actions.set(name, `${name}@${sha}`);
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
exports.CdktnProviderProject = CdktnProviderProject;
|
|
440
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
441
|
+
CdktnProviderProject[_a] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.7.24" };
|
|
442
|
+
function prettyAssertEqual(subject, expected, message) {
|
|
443
|
+
if (subject !== expected) {
|
|
444
|
+
throw new Error(`${message ?? "Assertion failed"}: expected ${JSON.stringify(expected)} but got ${JSON.stringify(subject)}`);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBMEQ7QUFDMUQsaUNBQWtDO0FBQ2xDLDZDQUF5QztBQUN6QyxtQ0FBdUM7QUFFdkMsc0RBQW9FO0FBQ3BFLHFEQUFnRDtBQUNoRCxpREFBNkM7QUFDN0MsK0VBQXlFO0FBQ3pFLDJDQUF3QztBQUN4QyxpREFBNkM7QUFDN0MsMkRBQXVEO0FBQ3ZELDZEQUF5RDtBQUN6RCw2Q0FBMEM7QUFDMUMsNkRBQXlEO0FBQ3pELG1EQUErQztBQUMvQyxtREFBK0M7QUFDL0MsK0NBQTJDO0FBRTNDLHlEQUFxRDtBQUNyRCxxRUFBMEU7QUFDMUUsNkRBQW1FO0FBQ25FLG9EQUFrRTtBQUVsRSxtSEFBbUg7QUFDbkgsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFtRDVCLE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBb0IsRUFBVSxFQUFFO0lBQ3BELE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUM5QyxDQUFDLENBQUMsR0FBRyxZQUFZLFdBQVc7UUFDNUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUc7SUFDakMsa0JBQWtCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUN6RSwyQkFBMkIsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ2xGLHVCQUF1QixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDOUUsc0JBQXNCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM3RSxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLG9CQUFvQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDM0Usb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsU0FB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LENBQUM7O0FBNWRILG9EQTZkQzs7O0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxPQUFVLEVBQUUsUUFBVyxFQUFFLE9BQWdCO0lBQ3JFLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxPQUFPLElBQUksa0JBQWtCLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FDMUQsUUFBUSxDQUNULFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN2QyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcbmltcG9ydCB7IHBhc2NhbENhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcbmltcG9ydCB7IFRleHRGaWxlLCBjZGsgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlIH0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQWxlcnRPcGVuUHJzIH0gZnJvbSBcIi4vYWxlcnQtb3Blbi1wcnNcIjtcbmltcG9ydCB7IEF1dG9BcHByb3ZlIH0gZnJvbSBcIi4vYXV0by1hcHByb3ZlXCI7XG5pbXBvcnQgeyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXMgfSBmcm9tIFwiLi9hdXRvLWNsb3NlLWNvbW11bml0eS1pc3N1ZXNcIjtcbmltcG9ydCB7IEF1dG9tZXJnZSB9IGZyb20gXCIuL2F1dG9tZXJnZVwiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmltcG9ydCB7IENvcHlyaWdodEhlYWRlcnMgfSBmcm9tIFwiLi9jb3B5cmlnaHQtaGVhZGVyc1wiO1xuaW1wb3J0IHsgQ3VzdG9taXplZExpY2Vuc2UgfSBmcm9tIFwiLi9jdXN0b21pemVkLWxpY2Vuc2VcIjtcbmltcG9ydCB7IERlcGVuZGFib3QgfSBmcm9tIFwiLi9kZXBlbmRhYm90XCI7XG5pbXBvcnQgeyBEZXByZWNhdGVQYWNrYWdlcyB9IGZyb20gXCIuL2RlcHJlY2F0ZS1wYWNrYWdlc1wiO1xuaW1wb3J0IHsgRm9yY2VSZWxlYXNlIH0gZnJvbSBcIi4vZm9yY2UtcmVsZWFzZVwiO1xuaW1wb3J0IHsgR2l0aHViSXNzdWVzIH0gZnJvbSBcIi4vZ2l0aHViLWlzc3Vlc1wiO1xuaW1wb3J0IHsgTG9ja0lzc3VlcyB9IGZyb20gXCIuL2xvY2staXNzdWVzXCI7XG5pbXBvcnQgeyBQYWNrYWdlSW5mbyB9IGZyb20gXCIuL3BhY2thZ2UtaW5mb1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJVcGdyYWRlIH0gZnJvbSBcIi4vcHJvdmlkZXItdXBncmFkZVwiO1xuaW1wb3J0IHsgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGUgfSBmcm9tIFwiLi9zY3JpcHRzL2NoZWNrLWZvci11cGdyYWRlc1wiO1xuaW1wb3J0IHsgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUgfSBmcm9tIFwiLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVJhbmRvbUNyb24sIFNjaGVkdWxlIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG4vLyBlbnN1cmUgbmV3IHByb2plY3RzIHN0YXJ0IHdpdGggMS4wLjAgc28gdGhhdCBldmVyeSBmb2xsb3dpbmcgYnJlYWtpbmcgY2hhbmdlIGxlYWRzIHRvIGFuIGluY3JlYXNlZCBtYWpvciB2ZXJzaW9uXG5jb25zdCBNSU5fTUFKT1JfVkVSU0lPTiA9IDE7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrdG5Qcm92aWRlclByb2plY3RPcHRpb25zIGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHVzZUN1c3RvbUdpdGh1YlJ1bm5lcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVByb3ZpZGVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBjb25zdHJ1Y3RzVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBmb3JjZU1ham9yVmVyc2lvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0bi1pb1wiXG4gICAqIHByZXZpb3VzbHkgd2FzIFwiY2RrdGZcIi4gVXNlZCBmb3IgR2l0SHViIG9yZyBuYW1lIGFuZCBwYWNrYWdlIHNjb3BpbmdcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yk5hbWVzcGFjZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbWF2ZW5FbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiSW8uQ2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbnVnZXRPcmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuT3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJpby4ke21hdmVuT3JnfVwiXG4gICAqL1xuICByZWFkb25seSBtYXZlbkdyb3VwSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgeWVhciBvZiB0aGUgY3JlYXRpb24gb2YgdGhlIHJlcG9zaXRvcnksIGZvciBjb3B5cmlnaHQgcHVycG9zZXMuXG4gICAqIFdpbGwgZmFsbCBiYWNrIHRvIHRoZSBjdXJyZW50IHllYXIgaWYgbm90IHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0aW9uWWVhcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgcHJlYnVpbHQgcHJvdmlkZXIgaXMgZGVwcmVjYXRlZC5cbiAgICogSWYgdHJ1ZSwgbm8gbmV3IHZlcnNpb25zIHdpbGwgYmUgcHVibGlzaGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZXByZWNhdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGRhdGUgd2hlbiB0aGUgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBkZXByZWNhdGVkLCB0byBiZSB1c2VkIGluIHRoZSBSRUFETUUgdGV4dC5cbiAgICogSWYgbm8gZGF0ZSBpcyBwcm92aWRlZCwgdGhlbiB0aGUgZGF0ZSBvZiB0aGUgYnVpbGQgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBkZXByZWNhdGlvbkRhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcIkhhc2hpQ29ycCwgSW5jLlwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlZT86IHN0cmluZztcbn1cblxuY29uc3QgZ2V0TWF2ZW5OYW1lID0gKHByb3ZpZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIFtcIm51bGxcIiwgXCJyYW5kb21cIl0uaW5jbHVkZXMocHJvdmlkZXJOYW1lKVxuICAgID8gYCR7cHJvdmlkZXJOYW1lfV9wcm92aWRlcmBcbiAgICA6IHByb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG59O1xuXG5jb25zdCBnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyA9IHtcbiAgXCJhY3Rpb25zL2NoZWNrb3V0XCI6IFwiMTFiZDcxOTAxYmJlNWIxNjMwY2VlYTczZDI3NTk3MzY0YzlhZjY4M1wiLCAvLyB2NC4yLjJcbiAgXCJhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0XCI6IFwiOTU4MTVjMzhjZjJmZjIxNjQ4NjljYmFiNzlkYThkMWY0MjJiYzg5ZVwiLCAvLyB2NC4yLjFcbiAgXCJhY3Rpb25zL2dpdGh1Yi1zY3JpcHRcIjogXCI2MGEwZDgzMDM5Yzc0YTRhZWU1NDM1MDhkMmZmY2IxYzM3OTljZGVhXCIsIC8vIHY3LjAuMVxuICBcImFjdGlvbnMvc2V0dXAtZG90bmV0XCI6IFwiNjdhMzU3M2M5YTk4NmEzZjljNTk0NTM5ZjRhYjUxMWQ1N2JiM2NlOVwiLCAvLyB2NC4zLjFcbiAgXCJhY3Rpb25zL3NldHVwLWdvXCI6IFwiMGFhY2NmZDE1MGQ1MGNjYWViNThlYmQ4OGQzNmU5MTk2N2E1ZjM1YlwiLCAvLyB2NS40LjBcbiAgXCJhY3Rpb25zL3NldHVwLWphdmFcIjogXCIzYTRmNmUxYWY1MDRjZjZhMzE4NTVmYTg5OWM2YWE1MzU1YmE2YzEyXCIsIC8vIHY0LjcuMFxuICBcImFjdGlvbnMvc2V0dXAtbm9kZVwiOiBcImNkY2E3MzY1YjJkYWRiOGFhZDBhMzNiYzc2MDE4NTZmZmFiY2M0OGVcIiwgLy8gdjQuMy4wXG4gIFwiYWN0aW9ucy9zZXR1cC1weXRob25cIjogXCI0MjM3NTUyNGUyM2M0MTJkOTNmYjY3YjQ5OTU4YjQ5MWZjZTcxYzM4XCIsIC8vIHY1LjQuMFxuICBcImFjdGlvbnMvc3RhbGVcIjogXCI1YmVmNjRmMTlkN2ZhY2ZiMjViMzdiNDE0NDgyYzcxNjRkNjM5NjM5XCIsIC8vIHY5LjEuMFxuICBcImFjdGlvbnMvdXBsb2FkLWFydGlmYWN0XCI6IFwiZWExNjVmOGQ2NWI2ZTc1YjU0MDQ0OWU5MmI0ODg2ZjQzNjA3ZmEwMlwiLCAvLyB2NC42LjJcbiAgXCJhbWFubm4vYWN0aW9uLXNlbWFudGljLXB1bGwtcmVxdWVzdFwiOlxuICAgIFwiMDcyMzM4N2ZhYWY5YjM4YWRlZjQ3NzVjZDQyY2ZkNTE1NWVkNjAxN1wiLCAvLyB2NS41LjNcbiAgXCJkZXNzYW50L2xvY2stdGhyZWFkc1wiOiBcIjFiZjdlYzI1MDUxZmU3YzAwYmRkMTdlNmE3Y2YzZDdiZmI3ZGM3NzFcIiwgLy8gdjUuMC4xXG4gIFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiOiBcIjMyNjM4ZGEyZDRlODFkNTZhMDc2NGFhMTU0Nzg4MmZjNGQyMDk2MzZcIiwgLy8gdjEuMS4zXG4gIFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiOiBcImI5Y2Q1NGEzYzM0OWQzZjM4ZTg4ODE1NTVkNjE2Y2VkMjY5ODYyZGRcIiwgLy8gdjMuMS4yXG4gIFwiaW1qb2huYm8vaXNzdWUtYm90XCI6IFwiNTcyZWVkMTQ0MjJjNGQ2Y2EzN2U4NzBmOTdlN2RhMjA5NDIyZjViZFwiLCAvLyB2My40LjRcbiAgXCJwZXRlci1ldmFucy9jcmVhdGUtcHVsbC1yZXF1ZXN0XCI6IFwiMjcxYThkMDM0MDI2NWY3MDViMTRiNmQzMmI5ODI5YzFjYjMzZDQ1ZVwiLCAvLyB2Ny4wLjhcbiAgXCJzbGFja2FwaS9zbGFjay1naXRodWItYWN0aW9uXCI6IFwiNDg1YTlkNDJkM2E3MzAzMWYxMmVjMjAxYzQ1N2UyMTYyYzQ1ZDAyZFwiLCAvLyB2Mi4wLjBcbn07XG5cbmV4cG9ydCBjbGFzcyBDZGt0blByb3ZpZGVyUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka3RuUHJvdmlkZXJQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IHtcbiAgICAgIHRlcnJhZm9ybVByb3ZpZGVyLFxuICAgICAgd29ya2Zsb3dDb250YWluZXJJbWFnZSxcbiAgICAgIGNka3RmVmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICBqc2lpVmVyc2lvbixcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgICAgLy8gVE9ETzogQ29uZmlybSBkZWZhdWx0IEF1dGhvciBOYW1lXG4gICAgICBhdXRob3JOYW1lID0gXCJDREsgVGVycmFpbiBNYWludGFpbmVyc1wiLFxuICAgICAgYXV0aG9yQWRkcmVzcyA9IFwiaHR0cHM6Ly9jZGt0bi5pb1wiLFxuICAgICAgbmFtZXNwYWNlID0gXCJjZGt0blwiLFxuICAgICAgZ2l0aHViTmFtZXNwYWNlID0gXCJjZGt0bi1pb1wiLFxuICAgICAgbWF2ZW5FbmRwb2ludCA9IFwiaHR0cHM6Ly9jZW50cmFsLnNvbmF0eXBlLmNvbVwiLCAvLyBUT0RPXG4gICAgICBudWdldE9yZyA9IFwiSW8uQ2RrdG5cIiwgLy8gVE9ET1xuICAgICAgbWF2ZW5PcmcgPSBcIklvLkNka3RuXCIsIC8vIFRPRE9cbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IFtmcXByb3ZpZGVyTmFtZSwgcHJvdmlkZXJWZXJzaW9uXSA9IHRlcnJhZm9ybVByb3ZpZGVyLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBmcXByb3ZpZGVyTmFtZS5zcGxpdChcIi9cIikucG9wKCk7XG4gICAgYXNzZXJ0KHByb3ZpZGVyTmFtZSwgYCR7dGVycmFmb3JtUHJvdmlkZXJ9IGRvZXNuJ3Qgc2VlbSB0byBiZSB2YWxpZGApO1xuICAgIGFzc2VydChcbiAgICAgICFwcm92aWRlck5hbWUuZW5kc1dpdGgoXCItZ29cIiksXG4gICAgICBcInByb3ZpZGVyTmFtZSBtYXkgbm90IGVuZCB3aXRoICctZ28nIGFzIHRoaXMgY2FuIGNvbmZsaWN0IHdpdGggcmVwb3MgZm9yIGdvIHBhY2thZ2VzXCJcbiAgICApO1xuXG4gICAgY29uc3QgbnVnZXROYW1lID0gYCR7bnVnZXRPcmd9LiR7cGFzY2FsQ2FzZShcbiAgICAgIG5hbWVzcGFjZVxuICAgICl9LlByb3ZpZGVycy4ke3Bhc2NhbENhc2UocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IG1hdmVuR3JvdXBJZCA9IG9wdGlvbnMubWF2ZW5Hcm91cElkID8/IGBjb20uJHttYXZlbk9yZ31gO1xuICAgIGNvbnN0IG1hdmVuTmFtZSA9IGAke21hdmVuR3JvdXBJZH0uJHtuYW1lc3BhY2V9LnByb3ZpZGVycy4ke2dldE1hdmVuTmFtZShcbiAgICAgIHByb3ZpZGVyTmFtZVxuICAgICl9YDtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYCR7Z2l0aHViTmFtZXNwYWNlfS8ke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWUucmVwbGFjZShcbiAgICAgIC8tL2csXG4gICAgICBcIlwiXG4gICAgKX1gO1xuICAgIGNvbnN0IHJlcG9zaXRvcnlVcmwgPSBgZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnl9YDtcblxuICAgIGNvbnN0IHBhY2thZ2VJbmZvOiBQYWNrYWdlSW5mbyA9IHtcbiAgICAgIG5wbToge1xuICAgICAgICBuYW1lOiBgQCR7bmFtZXNwYWNlfS9wcm92aWRlci0ke3Byb3ZpZGVyTmFtZX1gLFxuICAgICAgfSxcbiAgICAgIHB5dGhvbjoge1xuICAgICAgICAvLyBkaXN0TmFtZTogYCR7Z2l0aHViTmFtZXNwYWNlfS0ke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWUucmVwbGFjZShcbiAgICAgICAgZGlzdE5hbWU6IGAke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpfWAsXG4gICAgICAgIC8vIG1vZHVsZTogYCR7Z2l0aHViTmFtZXNwYWNlfV8ke25hbWVzcGFjZX1fcHJvdmlkZXJfJHtwcm92aWRlck5hbWUucmVwbGFjZShcbiAgICAgICAgbW9kdWxlOiBgJHtuYW1lc3BhY2V9X3Byb3ZpZGVyXyR7cHJvdmlkZXJOYW1lLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKX1gLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiB7XG4gICAgICAgIGRvdE5ldE5hbWVzcGFjZTogbnVnZXROYW1lLFxuICAgICAgICBwYWNrYWdlSWQ6IG51Z2V0TmFtZSxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9NYXZlbjoge1xuICAgICAgICBqYXZhUGFja2FnZTogbWF2ZW5OYW1lLFxuICAgICAgICBtYXZlbkdyb3VwSWQ6IG1hdmVuR3JvdXBJZCxcbiAgICAgICAgbWF2ZW5BcnRpZmFjdElkOiBgJHtuYW1lc3BhY2V9LXByb3ZpZGVyLSR7cHJvdmlkZXJOYW1lfWAsXG4gICAgICAgIG1hdmVuRW5kcG9pbnQsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvR286IHtcbiAgICAgICAgbW9kdWxlTmFtZTogYCR7cmVwb3NpdG9yeVVybH0tZ29gLFxuICAgICAgICBnaXRVc2VyRW1haWw6IFwiZ2l0aHViLXRlYW0tY2RrLXRlcnJhaW5AY2RrdG4uaW9cIixcbiAgICAgICAgZ2l0VXNlck5hbWU6IFwidGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgICBwYWNrYWdlTmFtZTogcHJvdmlkZXJOYW1lLnJlcGxhY2UoLy0vZywgXCJcIiksXG4gICAgICAgIC8vIEluIG9yZGVyIHRvIHVzZSB0aGUgY29weXdyaXRlIGFjdGlvbiwgd2UgbmVlZCB0byByZWJ1aWxkIHRoZSBmdWxsIHByZS1wdWJsaXNoIHN0ZXBzIHdvcmtmbG93IHVuZm9ydHVuYXRlbHlcbiAgICAgICAgLy8gSWYgc29tZW9uZSBrbm93cyBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyBtdXRhdGlvbiB3aXRoIG1pbmltYWwgY3VzdG9tIGNvZGUsIHBsZWFzZSBkbyBzb1xuICAgICAgICBwcmVQdWJsaXNoU3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgcGF0aDogXCIucmVwb1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5zdGFsbCBEZXBlbmRlbmNpZXNcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwbyAmJiB5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcyAtLWZyb3plbi1sb2NrZmlsZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJFeHRyYWN0IGJ1aWxkIGFydGlmYWN0XCIsXG4gICAgICAgICAgICBydW46IFwidGFyIC0tc3RyaXAtY29tcG9uZW50cz0xIC14enZmIGRpc3QvanMvKi50Z3ogLUMgLnJlcG9cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiTW92ZSBidWlsZCBhcnRpZmFjdCBvdXQgb2YgdGhlIHdheVwiLFxuICAgICAgICAgICAgcnVuOiBcIm12IGRpc3QgZGlzdC5vbGRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ3JlYXRlIGdvIGFydGlmYWN0XCIsXG4gICAgICAgICAgICBydW46IFwiY2QgLnJlcG8gJiYgbnB4IHByb2plbiBwYWNrYWdlOmdvXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlNldHVwIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29weSBjb3B5d3JpdGUgaGNsIGZpbGVcIixcbiAgICAgICAgICAgIHJ1bjogXCJjcCAucmVwby8uY29weXdyaXRlLmhjbCAucmVwby9kaXN0L2dvLy5jb3B5d3JpdGUuaGNsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkFkZCBoZWFkZXJzIHVzaW5nIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgICAgICBydW46IFwiY2QgLnJlcG8vZGlzdC9nbyAmJiBjb3B5d3JpdGUgaGVhZGVyc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJSZW1vdmUgY29weXdyaXRlIGhjbCBmaWxlXCIsXG4gICAgICAgICAgICBydW46IFwicm0gLWYgLnJlcG8vZGlzdC9nby8uY29weXdyaXRlLmhjbFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJSZW1vdmUgc29tZSB0ZXh0IGZyb20gdGhlIFJFQURNRSB0aGF0IGRvZXNuJ3QgYXBwbHkgdG8gR29cIixcbiAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICBcInNlZCAtaSAncy8jIENES1RGIHByZWJ1aWx0IGJpbmRpbmdzIGZvci8jIENES1RGIEdvIGJpbmRpbmdzIGZvci8nIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRcIixcbiAgICAgICAgICAgICAgLy8gQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDk1MTE5NDlcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgICAgICBgc2VkIC1pIC1lICcvIyMgJHtpc0RlcHJlY2F0ZWQgPyBcIkRlcHJlY2F0ZWRcIiA6IFwiQXZhaWxhYmxlXCJ9IFBhY2thZ2VzLywvIyMjIEdvLyFiJyAtZSAnLyMjIyBHby8hZDtwOyBzLyMjIyBHby8jIyBHbyBQYWNrYWdlLycgLWUgJ2QnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRgLFxuICAgICAgICAgICAgICAvLyBzZWQgLWUgaXMgYmxhY2sgbWFnaWMgYW5kIGZvciB3aGF0ZXZlciByZWFzb24gdGhlIHN0cmluZyByZXBsYWNlIGRvZXNuJ3Qgd29yayBzbyBsZXQncyB0cnkgaXQgYWdhaW46XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICAgICAgICAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICAgICAgICAgICAgYHNlZCAtaSAncy8jIyMgR28vIyMgJHtpc0RlcHJlY2F0ZWQgPyBcIkRlcHJlY2F0ZWRcIiA6IFwiR29cIn0gUGFja2FnZS8nIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRgLFxuICAgICAgICAgICAgICAvLyBKdXN0IHN0cmFpZ2h0IHVwIGRlbGV0ZSB0aGVzZSBmdWxsIGxpbmVzIGFuZCBldmVyeXRoaW5nIGluIGJldHdlZW4gdGhlbTpcbiAgICAgICAgICAgICAgXCJzZWQgLWkgLWUgJy9BUEkudHlwZXNjcmlwdC5tZC8sL1lvdSBjYW4gYWxzbyB2aXNpdCBhIGhvc3RlZCB2ZXJzaW9uLyFiJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgICBgc2VkIC1pICdzfEZpbmQgYXV0by1nZW5lcmF0ZWQgZG9jcyBmb3IgdGhpcyBwcm92aWRlciBoZXJlOnxGaW5kIGF1dG8tZ2VuZXJhdGVkIGRvY3MgZm9yIHRoaXMgcHJvdmlkZXIgW2hlcmVdKGh0dHBzOi8vJHtyZXBvc2l0b3J5VXJsfS9ibG9iL21haW4vZG9jcy9BUEkuZ28ubWQpLnwnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRgLFxuICAgICAgICAgICAgICAvLyBKdXN0IHN0cmFpZ2h0IHVwIGRlbGV0ZSB0aGVzZSBmdWxsIGxpbmVzIGFuZCBldmVyeXRoaW5nIGluIGJldHdlZW4gdGhlbTpcbiAgICAgICAgICAgICAgXCJzZWQgLWkgLWUgJy8jIyMgUHJvdmlkZXIgVmVyc2lvbi8sL1RoZSBwcm92aWRlciB2ZXJzaW9uIGNhbiBiZSBhZGp1c3RlZC8hYicgLWUgJ2QnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRcIixcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29weSB0aGUgUkVBRE1FIGZpbGUgdG8gdGhlIHBhcmVudCBkaXJlY3RvcnlcIixcbiAgICAgICAgICAgIHJ1bjogXCJjcCAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kIC5yZXBvL2Rpc3QvZ28vUkVBRE1FLm1kXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNvbGxlY3QgZ28gQXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJtdiAucmVwby9kaXN0IGRpc3RcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3Qgd29ya2Zsb3dSdW5zT24gPSBvcHRpb25zLnVzZUN1c3RvbUdpdGh1YlJ1bm5lclxuICAgICAgPyBbXCJjdXN0b20tbGludXgtbWVkaXVtXCJdIC8vIDggY29yZSwgMzIgR0JcbiAgICAgIDogW1widWJ1bnR1LWxhdGVzdFwiXTsgLy8gNyBHQlxuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGF1dGhvckFkZHJlc3MsXG4gICAgICBhdXRob3JOYW1lLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgd29ya2Zsb3dSdW5zT24sXG4gICAgICBsaWNlbnNlZDogZmFsc2UsIC8vIHdlIGRvIHN1cHBseSBvdXIgb3duIGxpY2Vuc2UgZmlsZSB3aXRoIGEgY3VzdG9tIGhlYWRlclxuICAgICAgcmVsZWFzZVRvTnBtOiB0cnVlLFxuICAgICAgbmFtZTogcGFja2FnZUluZm8ubnBtLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYFByZWJ1aWx0ICR7cHJvdmlkZXJOYW1lfSBQcm92aWRlciBmb3IgVGVycmFmb3JtIENESyAoY2RrdGYpYCxcbiAgICAgIGtleXdvcmRzOiBbXCJjZGt0ZlwiLCBcInRlcnJhZm9ybVwiLCBcImNka1wiLCBcInByb3ZpZGVyXCIsIHByb3ZpZGVyTmFtZV0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICAgICAgcmVwb3NpdG9yeTogYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnl9LmdpdGAsXG4gICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBkZXBzVXBncmFkZTogIWlzRGVwcmVjYXRlZCxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbHM6IFtcImF1dG9tZXJnZVwiLCBcImF1dG8tYXBwcm92ZVwiLCBcImRlcGVuZGVuY2llc1wiXSxcbiAgICAgICAgICBzY2hlZHVsZTogVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLldFRUtMWSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBweXRob246IHBhY2thZ2VJbmZvLnB5dGhvbixcbiAgICAgIC8vIFRPRE86IFJlLWVuYWJsZSBpZiByZXF1ZXN0ZWQgYW5kIHdoZW4gYXZhaWxhYmxlXG4gICAgICAvLyBwdWJsaXNoVG9OdWdldDogcGFja2FnZUluZm8ucHVibGlzaFRvTnVnZXQsXG4gICAgICAvLyBwdWJsaXNoVG9NYXZlbjogcGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4sXG4gICAgICBwdWJsaXNoVG9HbzogcGFja2FnZUluZm8ucHVibGlzaFRvR28sXG4gICAgICByZWxlYXNlRmFpbHVyZUlzc3VlOiB0cnVlLFxuICAgICAgcGVlckRlcGVuZGVuY3lPcHRpb25zOiB7XG4gICAgICAgIHBpbm5lZERldkRlcGVuZGVuY3k6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHdvcmtmbG93R2l0SWRlbnRpdHk6IHtcbiAgICAgICAgbmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIGVtYWlsOiBcImdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICB9LFxuICAgICAgbWluTWFqb3JWZXJzaW9uOiBNSU5fTUFKT1JfVkVSU0lPTixcbiAgICAgIHN0YWxlOiB0cnVlLFxuICAgICAgc3RhbGVPcHRpb25zOiB7XG4gICAgICAgIGlzc3Vlczoge1xuICAgICAgICAgIHN0YWxlTGFiZWw6IFwic3RhbGVcIixcbiAgICAgICAgICBkYXlzQmVmb3JlU3RhbGU6IDQ1LFxuICAgICAgICAgIHN0YWxlTWVzc2FnZTpcbiAgICAgICAgICAgIFwiNDUgZGF5cyBoYXZlIHBhc3NlZCBzaW5jZSB0aGlzIGlzc3VlIHdhcyBvcGVuZWQsIGFuZCBJIGFzc3VtZSBvdGhlciBwdWJsaXNoZXMgaGF2ZSBzdWNjZWVkZWQgaW4gdGhlIG1lYW50aW1lLiBcIiArXG4gICAgICAgICAgICBcIklmIG5vIG9uZSByZW1vdmVzIHRoZSBgc3RhbGVgIGxhYmVsIG9yIGNvbW1lbnRzLCBJJ20gZ29pbmcgdG8gYXV0by1jbG9zZSB0aGlzIGlzc3VlIGluIDE0IGRheXMuXCIsXG4gICAgICAgICAgZGF5c0JlZm9yZUNsb3NlOiAxNCxcbiAgICAgICAgICBjbG9zZU1lc3NhZ2U6XG4gICAgICAgICAgICBcIjIgbW9udGhzIGhhdmUgcGFzc2VkLCBzbyBJJ20gY2xvc2luZyB0aGlzIGlzc3VlIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBvdGhlciBwdWJsaXNoZXMgaGF2ZSBzdWNjZWVkZWQgaW4gdGhlIG1lYW50aW1lLlwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWxsUmVxdWVzdDoge1xuICAgICAgICAgIHN0YWxlTGFiZWw6IFwic3RhbGVcIixcbiAgICAgICAgICBkYXlzQmVmb3JlU3RhbGU6IDEsXG4gICAgICAgICAgc3RhbGVNZXNzYWdlOiBgQ2xvc2luZyB0aGlzIFBSLCBpZiBpdCBoYXMgbm90IG1lcmdlZCB0aGVyZSBpcyBtb3N0IGxpa2VseSBhIENJIG9yIENES1RGIGlzc3VlIHByZXZlbnRpbmcgaXQgZnJvbSBtZXJnaW5nLiBJZiB0aGlzIGhhcyBiZWVuIGEgbWFudWFsIFBSLCBwbGVhc2UgcmVvcGVuIGl0IGFuZCBhZGQgdGhlIFxcYG5vLWF1dG8tY2xvc2VcXGAgbGFiZWwgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nIGFnYWluLmAsXG4gICAgICAgICAgZGF5c0JlZm9yZUNsb3NlOiAwLFxuICAgICAgICAgIGV4ZW1wdExhYmVsczogW1wibm8tYXV0by1jbG9zZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlOiBmYWxzZSxcbiAgICAgIGRvY2dlbjogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICBcImRvdC1wcm9wQF41LjIuMFwiLFxuICAgICAgXCJAYWN0aW9ucy9jb3JlQF4xLjEuMFwiLFxuICAgICAgXCJAYWN0aW9uLXZhbGlkYXRvci9jb3JlXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NsaVwiXG4gICAgKTtcblxuICAgIC8vIERlZmF1bHQgbWVtb3J5IGlzIDdHQjogaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy91c2luZy1naXRodWItaG9zdGVkLXJ1bm5lcnMvYWJvdXQtZ2l0aHViLWhvc3RlZC1ydW5uZXJzI3N1cHBvcnRlZC1ydW5uZXJzLWFuZC1oYXJkd2FyZS1yZXNvdXJjZXNcbiAgICAvLyBDdXN0b20gUnVubmVycyB3ZSB1c2UgaGF2ZSAzMkdCIG9mIG1lbW9yeVxuICAgIC8vIFRoZSBiZWxvdyBudW1iZXJzIHNldCBoZWFwIGxpbWl0cyB0aGF0IGFyZSB+MWdiIGFuZCB+MC41Z2IgbGVzcywgcmVzcGVjdGl2ZWx5LCB0aGFuIHRoZSB0b3RhbCBhdmFpbGFibGUgbWVtb3J5XG4gICAgY29uc3QgbWF4T2xkU3BhY2VTaXplID0gb3B0aW9ucy51c2VDdXN0b21HaXRodWJSdW5uZXIgPyBcIjMxNzQ0XCIgOiBcIjY2NTZcIjtcblxuICAgIC8vIEdvbGFuZyBuZWVkcyBtb3JlIG1lbW9yeSB0byBidWlsZFxuICAgIHRoaXMudGFza3MuYWRkRW52aXJvbm1lbnQoXG4gICAgICBcIk5PREVfT1BUSU9OU1wiLFxuICAgICAgYC0tbWF4LW9sZC1zcGFjZS1zaXplPSR7bWF4T2xkU3BhY2VTaXplfWBcbiAgICApO1xuXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcIkNIRUNLUE9JTlRfRElTQUJMRVwiLCBcIjFcIik7XG5cbiAgICBjb25zdCB2YWxpZGF0ZVRhc2sgPSB0aGlzLmFkZFRhc2soXCJ2YWxpZGF0ZS13b3JrZmxvd3NcIiwge1xuICAgICAgZXhlYzogYGZpbmQgLi8uZ2l0aHViL3dvcmtmbG93cyAtdHlwZSBmIC1uYW1lIFwiKi55bWxcIiAtcHJpbnQwIHwgeGFyZ3MgLTAgLW4gMSBucHggYWN0aW9uLXZhbGlkYXRvcmAsXG4gICAgfSk7XG4gICAgdmFsaWRhdGVUYXNrLmRlc2NyaXB0aW9uID1cbiAgICAgIFwiTGludCB0aGUgWUFNTCBmaWxlcyBnZW5lcmF0ZWQgYnkgUHJvamVuIHRvIGRlZmluZSBHaXRIdWIgQWN0aW9ucyBhbmQgV29ya2Zsb3dzLCBjaGVja2luZyB0aGVtIGFnYWluc3QgcHVibGlzaGVkIEpTT04gc2NoZW1hc1wiO1xuICAgIHRoaXMucG9zdENvbXBpbGVUYXNrLnNwYXduKHZhbGlkYXRlVGFzayk7XG5cbiAgICB0aGlzLnBhY2thZ2UuYWRkUGFja2FnZVJlc29sdXRpb25zKFwiQHR5cGVzL3lhcmdzQDE3LjAuMTNcIik7XG5cbiAgICBjb25zdCBzZXRTYWZlRGlyZWN0b3J5ID0ge1xuICAgICAgbmFtZTogXCJTZXQgZ2l0IGNvbmZpZyBzYWZlLmRpcmVjdG9yeVwiLFxuICAgICAgcnVuOiBcImdpdCBjb25maWcgLS1nbG9iYWwgLS1hZGQgc2FmZS5kaXJlY3RvcnkgJChwd2QpXCIsXG4gICAgfTtcblxuICAgICgodGhpcy5idWlsZFdvcmtmbG93IGFzIGFueSkucHJlQnVpbGRTdGVwcyBhcyBKb2JTdGVwW10pLnB1c2goXG4gICAgICBzZXRTYWZlRGlyZWN0b3J5XG4gICAgKTtcbiAgICAodGhpcy5yZWxlYXNlIGFzIGFueSkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzLnJlbGVhc2Uuc3RlcHMuc3BsaWNlKFxuICAgICAgMSxcbiAgICAgIDAsXG4gICAgICBzZXRTYWZlRGlyZWN0b3J5XG4gICAgKTtcblxuICAgIC8vIGFsd2F5cyBwdWJsaXNoIGEgbmV3IEdpdEh1YiByZWxlYXNlLCBldmVuIHdoZW4gcHVibGlzaGluZyB0byBhIHBhcnRpY3VsYXIgcGFja2FnZSBtYW5hZ2VyIGZhaWxzXG4gICAgY29uc3QgcmVsZWFzZVdvcmtmbG93ID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZShcbiAgICAgIFwiLmdpdGh1Yi93b3JrZmxvd3MvcmVsZWFzZS55bWxcIlxuICAgICk7XG4gICAgcmVsZWFzZVdvcmtmbG93Py5hZGRPdmVycmlkZShcImpvYnMucmVsZWFzZV9naXRodWIubmVlZHNcIiwgXCJyZWxlYXNlXCIpO1xuXG4gICAgLy8gZW5zdXJlIHdlIGRvbid0IGZhaWwgaWYgdGhlIHJlbGVhc2UgZmlsZSBpcyBub3QgcHJlc2VudFxuICAgIGNvbnN0IGNoZWNrRXhpc3RpbmdUYWdTdGVwID0gKFxuICAgICAgdGhpcy5yZWxlYXNlIGFzIGFueVxuICAgICkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzLnJlbGVhc2Uuc3RlcHMuZmluZChcbiAgICAgIChzOiBvYmplY3QpID0+IFwiaWRcIiBpbiBzICYmIHMuaWQgPT09IFwiY2hlY2tfdGFnX2V4aXN0c1wiXG4gICAgKTtcbiAgICBjb25zdCBvbGRFeGlzdGluZ1RhZ1J1bjogc3RyaW5nID0gY2hlY2tFeGlzdGluZ1RhZ1N0ZXAucnVuO1xuICAgIHByZXR0eUFzc2VydEVxdWFsKFxuICAgICAgb2xkRXhpc3RpbmdUYWdSdW4uc3BsaXQoXCJcXG5cIilbMF0sXG4gICAgICBcIlRBRz0kKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KVwiLFxuICAgICAgXCJyZWxlYXNlIHN0ZXAgY2hhbmdlZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgKTtcbiAgICBjaGVja0V4aXN0aW5nVGFnU3RlcC5ydW4gPSBgaWYgWyAhIC1mIGRpc3QvcmVsZWFzZXRhZy50eHQgXTsgdGhlbiAoZWNobyBcImV4aXN0cz10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQpICYmIGV4aXQgMDsgZmlcXG4ke29sZEV4aXN0aW5nVGFnUnVufWA7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgeyB1cGdyYWRlLCBwciB9ID0gKHRoaXMudXBncmFkZVdvcmtmbG93IGFzIGFueSkud29ya2Zsb3dzWzBdLmpvYnM7XG4gICAgICB1cGdyYWRlLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICAgIHByLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICB9XG5cbiAgICAvLyAvLyBUT0RPOiBSZS1lbmFibGUgd2hlbiBNYXZlbiByZXF1ZXN0ZWQgYW5kIGluZnJhIGF2YWlsYWJsZVxuICAgIC8vIC8vIEZpeCBtYXZlbiBpc3N1ZSAoaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvcHVibGliL3B1bGwvNzc3KVxuICAgIC8vIGdpdGh1Yi5HaXRIdWIub2YodGhpcyk/LnRyeUZpbmRXb3JrZmxvdyhcInJlbGVhc2VcIik/LmZpbGU/LnBhdGNoKFxuICAgIC8vICAgSnNvblBhdGNoLmFkZChcbiAgICAvLyAgICAgXCIvam9icy9yZWxlYXNlX21hdmVuL3N0ZXBzLzEwL2Vudi9NQVZFTl9PUFRTXCIsXG4gICAgLy8gICAgIC8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MDE1Mzk2Mi9uZXh1cy1zdGFnaW5nLW1hdmVuLXBsdWdpbi1tYXZlbi1kZXBsb3ktZmFpbGVkLWFuLWFwaS1pbmNvbXBhdGliaWxpdHktd2FzLWVuY29cbiAgICAvLyAgICAgXCItLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS51dGlsPUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZhLmxhbmcucmVmbGVjdD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS50ZXh0PUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuZGVza3RvcC9qYXZhLmF3dC5mb250PUFMTC1VTk5BTUVEXCJcbiAgICAvLyAgIClcbiAgICAvLyApO1xuXG4gICAgdGhpcy5waW5HaXRodWJBY3Rpb25WZXJzaW9ucyhnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyk7XG5cbiAgICBuZXcgQ2RrdGZDb25maWcodGhpcywge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIHByb3ZpZGVyVmVyc2lvbixcbiAgICAgIGNka3RmVmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIHBhY2thZ2VJbmZvLFxuICAgICAgZ2l0aHViTmFtZXNwYWNlLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgICAgaXNEZXByZWNhdGVkOiAhIWlzRGVwcmVjYXRlZCxcbiAgICB9KTtcbiAgICBuZXcgQ3VzdG9taXplZExpY2Vuc2UodGhpcywgb3B0aW9ucy5jcmVhdGlvblllYXIsIG9wdGlvbnMubGljZW5zZWUpO1xuICAgIG5ldyBHaXRodWJJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9BcHByb3ZlKHRoaXMpO1xuICAgIG5ldyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9tZXJnZSh0aGlzKTtcbiAgICBuZXcgTG9ja0lzc3Vlcyh0aGlzKTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBjb25zdCB1cGdyYWRlU2NyaXB0ID0gbmV3IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlKHRoaXMsIHtcbiAgICAgICAgcHJvdmlkZXJWZXJzaW9uLFxuICAgICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IFByb3ZpZGVyVXBncmFkZSh0aGlzLCB7XG4gICAgICAgIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiB1cGdyYWRlU2NyaXB0LnBhdGgsXG4gICAgICAgIHdvcmtmbG93UnVuc09uLFxuICAgICAgICBub2RlSGVhcFNpemU6IG1heE9sZFNwYWNlU2l6ZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IEFsZXJ0T3BlblBycyh0aGlzLCB7XG4gICAgICAgIHNsYWNrV2ViaG9va1VybDogXCIke3sgc2VjcmV0cy5BTEVSVF9QUlNfU0xBQ0tfV0VCSE9PS19VUkwgfX1cIixcbiAgICAgICAgcmVwb3NpdG9yeSxcbiAgICAgIH0pO1xuICAgICAgbmV3IERlcGVuZGFib3QodGhpcyk7XG4gICAgfVxuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIFwiLmdpdGh1Yi9DT0RFT1dORVJTXCIsIHtcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIFwiIyBUaGVzZSBvd25lcnMgd2lsbCBiZSB0aGUgZGVmYXVsdCBvd25lcnMgZm9yIGV2ZXJ5dGhpbmcgaW4gXCIsXG4gICAgICAgIFwiIyB0aGUgcmVwby4gVW5sZXNzIGEgbGF0ZXIgbWF0Y2ggdGFrZXMgcHJlY2VkZW5jZSwgXCIsXG4gICAgICAgIFwiIyB0aGV5IHdpbGwgYmUgcmVxdWVzdGVkIGZvciByZXZpZXcgd2hlbiBzb21lb25lIG9wZW5zIGEgXCIsXG4gICAgICAgIFwiIyBwdWxsIHJlcXVlc3QuXCIsXG4gICAgICAgIFwiKiAgICAgICBAY2RrdG4taW8vdGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBuZXcgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUodGhpcywge30pO1xuXG4gICAgICBjb25zdCByZWxlYXNlVGFzayA9IHRoaXMudGFza3MudHJ5RmluZChcInJlbGVhc2VcIikhO1xuICAgICAgdGhpcy5yZW1vdmVUYXNrKFwicmVsZWFzZVwiKTtcbiAgICAgIHRoaXMuYWRkVGFzayhcInJlbGVhc2VcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcmVsZWFzZVRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgIHN0ZXBzOiByZWxlYXNlVGFzay5zdGVwcyxcbiAgICAgICAgZW52OiAocmVsZWFzZVRhc2sgYXMgYW55KS5fZW52LFxuICAgICAgICBjb25kaXRpb246IFwibm9kZSAuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2UuanNcIixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1yZWxlYXNlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHJlbGVhc2VUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdGVwczogcmVsZWFzZVRhc2suc3RlcHMsXG4gICAgICAgIGVudjogKHJlbGVhc2VUYXNrIGFzIGFueSkuX2VudixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZWxlYXNlSm9iU3RlcHM6IGFueVtdID0gKFxuICAgICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKSBhcyBhbnlcbiAgICAgICkuam9icy5yZWxlYXNlLnN0ZXBzO1xuICAgICAgY29uc3QgZ2l0UmVtb3RlSm9iID0gcmVsZWFzZUpvYlN0ZXBzLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gXCJnaXRfcmVtb3RlXCIpO1xuICAgICAgcHJldHR5QXNzZXJ0RXF1YWwoXG4gICAgICAgIGdpdFJlbW90ZUpvYi5ydW4sXG4gICAgICAgICdlY2hvIFwibGF0ZXN0X2NvbW1pdD0kKGdpdCBscy1yZW1vdGUgb3JpZ2luIC1oICR7eyBnaXRodWIucmVmIH19IHwgY3V0IC1mMSlcIiA+PiAkR0lUSFVCX09VVFBVVFxcbmNhdCAkR0lUSFVCX09VVFBVVCcsXG4gICAgICAgIFwiZ2l0X3JlbW90ZSBzdGVwIGluIHJlbGVhc2Ugd29ya2Zsb3cgZGlkIG5vdCBtYXRjaCBleHBlY3RlZCBzdHJpbmcsIHBsZWFzZSBjaGVjayBpZiB0aGUgd29ya2Fyb3VuZCBzdGlsbCB3b3JrcyFcIlxuICAgICAgKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tbWFuZCA9IGdpdFJlbW90ZUpvYi5ydW4ucmVwbGFjZShcIlxcblwiLCBcIiAmJiBcIik7XG5cbiAgICAgIGNvbnN0IGNhbmNlbENvbW1hbmQgPVxuICAgICAgICAnZWNobyBcImxhdGVzdF9jb21taXQ9cmVsZWFzZV9jYW5jZWxsZWRcIiA+PiAkR0lUSFVCX09VVFBVVCc7IC8vIHRoaXMgY2FuY2VscyB0aGUgcmVsZWFzZSB2aWEgYSBub24tbWF0Y2hpbmcgU0hBO1xuICAgICAgZ2l0UmVtb3RlSm9iLnJ1biA9IGBub2RlIC4vc2NyaXB0cy9zaG91bGQtcmVsZWFzZS5qcyAmJiAoJHtwcmV2aW91c0NvbW1hbmR9KSB8fCAke2NhbmNlbENvbW1hbmR9YDtcbiAgICAgIGdpdFJlbW90ZUpvYi5uYW1lICs9XG4gICAgICAgIFwiIG9yIGNhbmNlbCB2aWEgZmFraW5nIGEgU0hBIGlmIHJlbGVhc2Ugd2FzIGNhbmNlbGxlZFwiO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWxlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFwiLmdpdGh1Yi93b3JrZmxvd3Mvc3RhbGUueW1sXCIpO1xuICAgIHN0YWxlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwib24uc2NoZWR1bGVcIiwgW1xuICAgICAge1xuICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oeyBwcm9qZWN0OiB0aGlzLCBtYXhIb3VyOiA0LCBob3VyT2Zmc2V0OiAxIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGNvbnN0IHVwZ3JhZGVXb3JrZmxvdyA9IHRoaXMudHJ5RmluZE9iamVjdEZpbGUoXG4gICAgICBcIi5naXRodWIvd29ya2Zsb3dzL3VwZ3JhZGUtbWFpbi55bWxcIlxuICAgICk7XG4gICAgdXBncmFkZVdvcmtmbG93Py5hZGRPdmVycmlkZShcIm9uLnNjaGVkdWxlXCIsIFtcbiAgICAgIHtcbiAgICAgICAgY3JvbjogZ2VuZXJhdGVSYW5kb21Dcm9uKHtcbiAgICAgICAgICBwcm9qZWN0OiB0aGlzLFxuICAgICAgICAgIG1heEhvdXI6IDAsXG4gICAgICAgICAgaG91ck9mZnNldDogMSxcbiAgICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUuV2Vla2x5LFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICAvLyBTdWJtb2R1bGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uXG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIkFQSS5tZFwiKTsgLy8gaWdub3JlIHRoZSBvbGQgZmlsZSwgd2Ugbm93IGdlbmVyYXRlIGl0IGluIHRoZSBkb2NzIGZvbGRlclxuICAgIHRoaXMuYWRkRGV2RGVwcyhcImpzaWktZG9jZ2VuQF4xMC4yLjNcIik7XG4gICAgaWYgKGpzaWlWZXJzaW9uKSB7XG4gICAgICAvLyBOT1RFOiB0aGUgYmVsb3cgaXMgbWFraW5nIGEgYnJvYWQgYXNzdW1wdGlvbiB0aGF0IHlvdSdyZSBwYXNzaW5nIGEgcmFuZ2UgbGlrZSBcIn41LjMuMFwiIHRvIGpzaWlWZXJzaW9uXG4gICAgICAvLyBJZiB5b3UgdXNlIHRoYXQgZmllbGQgdG8gcGFzcyBhIHZlcnkgc3BlY2lmaWMgdmVyc2lvbiAoZS5nLiBcIjUuMy4xMVwiKSB0aGVuIHRoaXMgbWlnaHQgYnJlYWtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcyhganNpaS1yb3NldHRhQCR7anNpaVZlcnNpb259YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcyhganNpaS1yb3NldHRhYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZG9jZ2VuID0gdGhpcy5hZGRUYXNrKFwiZG9jZ2VuXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdlbmVyYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwcm9qZWN0XCIsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogW1xuICAgICAgICAgICAgXCJybSAtcmYgZG9jc1wiLFxuICAgICAgICAgICAgXCJybSAtZiBBUEkubWRcIixcbiAgICAgICAgICAgIFwibWtkaXIgZG9jc1wiLFxuICAgICAgICAgICAgLy8gVE9ETzogUmUtZW5hYmxlIGphdmEgLyBjc2hhcnBcbiAgICAgICAgICAgIC8vIFwianNpaS1kb2NnZW4gLS1zcGxpdC1ieS1zdWJtb2R1bGUgLWwgdHlwZXNjcmlwdCAtbCBweXRob24gLWwgamF2YSAtbCBjc2hhcnAgLWwgZ29cIixcbiAgICAgICAgICAgIFwianNpaS1kb2NnZW4gLS1zcGxpdC1ieS1zdWJtb2R1bGUgLWwgdHlwZXNjcmlwdCAtbCBweXRob24gLWwgZ29cIixcbiAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5pY2Ugd2F5IHRvIHRlbGwganNpaS1kb2NnZW4gdG8gZ2VuZXJhdGUgZG9jcyBpbnRvIGEgZm9sZGVyIHNvIEkgd2VudCB0aGlzIHJvdXRlXG4gICAgICAgICAgICBcIm12ICouKi5tZCBkb2NzXCIsXG4gICAgICAgICAgICAvLyBTb21lIHBhcnQgb2YgdGhlIGRvY3VtZW50YXRpb24gYXJlIHRvbyBsb25nLCB3ZSBuZWVkIHRvIHRydW5jYXRlIHRoZW0gdG8gfjEwTUJcbiAgICAgICAgICAgIFwiY2QgZG9jc1wiLFxuICAgICAgICAgICAgXCJscyAuLyB8IHhhcmdzIHNlZCAtaSAnMTUwMDAwLCQgZCcgJDFcIixcbiAgICAgICAgICBdLmpvaW4oXCIgJiYgXCIpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bihkb2NnZW4pO1xuICAgIHRoaXMuZ2l0aWdub3JlLmluY2x1ZGUoYC9kb2NzLyoubWRgKTtcbiAgICB0aGlzLmFubm90YXRlR2VuZXJhdGVkKGAvZG9jcy8qLm1kYCk7XG5cbiAgICAvLyBTZXR0aW5nIHRoZSB2ZXJzaW9uIGluIHBhY2thZ2UuanNvbiBzbyB0aGUgZ29sYW5nIGRvY3MgaGF2ZSB0aGUgY29ycmVjdCB2ZXJzaW9uXG4gICAgY29uc3QgdW5jb25kaXRpb25hbEJ1bXAgPSB0aGlzLmFkZFRhc2soXCJ1bmNvbmRpdGlvbmFsLWJ1bXBcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiU2V0IHRoZSB2ZXJzaW9uIGluIHBhY2thZ2UuanNvbiB0byB0aGUgY3VycmVudCB2ZXJzaW9uXCIsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJDbGVhciB0aGUgY2hhbmdlbG9nIHNvIHRoYXQgaXQgZG9lc24ndCBnZXQgcHVibGlzaGVkIHR3aWNlXCIsXG4gICAgICAgICAgZXhlYzogXCJybSAtZiAkQ0hBTkdFTE9HXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHsgYnVpbHRpbjogXCJyZWxlYXNlL2J1bXAtdmVyc2lvblwiIH0sXG4gICAgICBdLFxuICAgICAgZW52OiB7XG4gICAgICAgIE9VVEZJTEU6IFwicGFja2FnZS5qc29uXCIsXG4gICAgICAgIENIQU5HRUxPRzogXCJkaXN0L2NoYW5nZWxvZy5tZFwiLFxuICAgICAgICBCVU1QRklMRTogXCJkaXN0L3ZlcnNpb24udHh0XCIsXG4gICAgICAgIFJFTEVBU0VUQUc6IFwiZGlzdC9yZWxlYXNldGFnLnR4dFwiLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6IFwiXCIsXG4gICAgICAgIE1JTl9NQUpPUjogU3RyaW5nKE1JTl9NQUpPUl9WRVJTSU9OKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5wcmVDb21waWxlVGFzay5zcGF3bih1bmNvbmRpdGlvbmFsQnVtcCk7XG4gICAgLy8gVG8gYnVtcCBjb3JyZWN0bHkgd2UgbmVlZCB0byBoYXZlIHRoZSBjb21wbGV0ZWx5IGNsb25lZCByZXBvXG4gICAgKHRoaXMuYnVpbGRXb3JrZmxvdyBhcyBhbnkpLndvcmtmbG93LmZpbGUuYWRkT3ZlcnJpZGUoXG4gICAgICBcImpvYnMuYnVpbGQuc3RlcHMuMC53aXRoLmZldGNoLWRlcHRoXCIsXG4gICAgICAwXG4gICAgKTtcbiAgICAvLyBVbmRvIHRoZSBjaGFuZ2VzIGFmdGVyIGNvbXBpbGF0aW9uXG4gICAgdGhpcy5idWlsZFdvcmtmbG93Py5hZGRQb3N0QnVpbGRTdGVwcyh7XG4gICAgICBuYW1lOiBcIlJldmVydCBwYWNrYWdlLmpzb24gdmVyc2lvbiBidW1wXCIsXG4gICAgICBydW46IFwiZ2l0IGNoZWNrb3V0IHBhY2thZ2UuanNvblwiLFxuICAgIH0pO1xuXG4gICAgbmV3IENvcHlyaWdodEhlYWRlcnModGhpcyk7XG4gICAgbmV3IERlcHJlY2F0ZVBhY2thZ2VzKHRoaXMsIHtcbiAgICAgIHByb3ZpZGVyTmFtZSxcbiAgICAgIHBhY2thZ2VJbmZvLFxuICAgICAgaXNEZXByZWNhdGVkOiAhIWlzRGVwcmVjYXRlZCxcbiAgICB9KTtcbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgbmV3IEZvcmNlUmVsZWFzZSh0aGlzLCB7IHdvcmtmbG93UnVuc09uIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGluR2l0aHViQWN0aW9uVmVyc2lvbnMocGlubmVkVmVyc2lvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICAvLyBVc2UgcGlubmVkIHZlcnNpb25zIG9mIGdpdGh1YiBhY3Rpb25zXG4gICAgT2JqZWN0LmVudHJpZXMocGlubmVkVmVyc2lvbnMpLmZvckVhY2goKFtuYW1lLCBzaGFdKSA9PiB7XG4gICAgICB0aGlzLmdpdGh1Yj8uYWN0aW9ucy5zZXQobmFtZSwgYCR7bmFtZX1AJHtzaGF9YCk7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJldHR5QXNzZXJ0RXF1YWw8VD4oc3ViamVjdDogVCwgZXhwZWN0ZWQ6IFQsIG1lc3NhZ2U/OiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHN1YmplY3QgIT09IGV4cGVjdGVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7bWVzc2FnZSA/PyBcIkFzc2VydGlvbiBmYWlsZWRcIn06IGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGV4cGVjdGVkXG4gICAgICApfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoc3ViamVjdCl9YFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { javascript } from "projen";
|
|
6
|
+
/**
|
|
7
|
+
* Automatically locks issues and PRs after 7 days. Note that 90% of the issues and PRs
|
|
8
|
+
* on these repos are automated builds and notifications, so locking these threads is
|
|
9
|
+
* generally not expected to cause issues.
|
|
10
|
+
*/
|
|
11
|
+
export declare class LockIssues {
|
|
12
|
+
constructor(project: javascript.NodeProject);
|
|
13
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.LockIssues = void 0;
|
|
8
|
+
const workflows_model_1 = require("projen/lib/github/workflows-model");
|
|
9
|
+
const random_cron_1 = require("./util/random-cron");
|
|
10
|
+
/**
|
|
11
|
+
* Automatically locks issues and PRs after 7 days. Note that 90% of the issues and PRs
|
|
12
|
+
* on these repos are automated builds and notifications, so locking these threads is
|
|
13
|
+
* generally not expected to cause issues.
|
|
14
|
+
*/
|
|
15
|
+
class LockIssues {
|
|
16
|
+
constructor(project) {
|
|
17
|
+
const workflow = project.github?.addWorkflow("lock");
|
|
18
|
+
if (!workflow)
|
|
19
|
+
throw new Error("no workflow defined");
|
|
20
|
+
workflow.on({
|
|
21
|
+
// run daily sometime between midnight and 6am UTC
|
|
22
|
+
schedule: [{ cron: (0, random_cron_1.generateRandomCron)({ project, maxHour: 6 }) }],
|
|
23
|
+
});
|
|
24
|
+
workflow.addJob("lock", {
|
|
25
|
+
runsOn: ["ubuntu-latest"],
|
|
26
|
+
permissions: {
|
|
27
|
+
pullRequests: workflows_model_1.JobPermission.WRITE,
|
|
28
|
+
issues: workflows_model_1.JobPermission.WRITE,
|
|
29
|
+
},
|
|
30
|
+
steps: [
|
|
31
|
+
{
|
|
32
|
+
uses: "dessant/lock-threads",
|
|
33
|
+
with: {
|
|
34
|
+
"issue-comment": `I'm going to lock this issue because it has been closed for at least 7 days.
|
|
35
|
+
This helps our maintainers find and focus on the active issues.
|
|
36
|
+
If you've found a problem that seems similar to this, please
|
|
37
|
+
[open a new issue](https://github.com/cdktn-io/cdktn-provider-project/issues/new)
|
|
38
|
+
so we can investigate further.`.replace(/\s+/g, " "),
|
|
39
|
+
"issue-inactive-days": 7,
|
|
40
|
+
"pr-comment": `I'm going to lock this pull request because it has been closed for at least 7 days.
|
|
41
|
+
This helps our maintainers find and focus on the active issues.
|
|
42
|
+
If you've found a problem that seems related to this change, please
|
|
43
|
+
[open a new issue](https://github.com/cdktn-io/cdktn-provider-project/issues/new)
|
|
44
|
+
so we can investigate further.`.replace(/\s+/g, " "),
|
|
45
|
+
"pr-inactive-days": 7,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
continueOnError: true, // this job fails quite frequently due to rate limit issues but it's really not a big deal if it does
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.LockIssues = LockIssues;
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay1pc3N1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG9jay1pc3N1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBR0gsdUVBQWtFO0FBQ2xFLG9EQUF3RDtBQUV4RDs7OztHQUlHO0FBQ0gsTUFBYSxVQUFVO0lBQ3JCLFlBQVksT0FBK0I7UUFDekMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFdEQsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNWLGtEQUFrRDtZQUNsRCxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFBLGdDQUFrQixFQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDbEUsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDdEIsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQ3pCLFdBQVcsRUFBRTtnQkFDWCxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO2dCQUNqQyxNQUFNLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO2FBQzVCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLElBQUksRUFBRTt3QkFDSixlQUFlLEVBQ2I7Ozs7NkNBSStCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7d0JBQ3RELHFCQUFxQixFQUFFLENBQUM7d0JBQ3hCLFlBQVksRUFDVjs7Ozs2Q0FJK0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQzt3QkFDdEQsa0JBQWtCLEVBQUUsQ0FBQztxQkFDdEI7aUJBQ0Y7YUFDRjtZQUNELGVBQWUsRUFBRSxJQUFJLEVBQUUscUdBQXFHO1NBQzdILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpDRCxnQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21Dcm9uIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG4vKipcbiAqIEF1dG9tYXRpY2FsbHkgbG9ja3MgaXNzdWVzIGFuZCBQUnMgYWZ0ZXIgNyBkYXlzLiBOb3RlIHRoYXQgOTAlIG9mIHRoZSBpc3N1ZXMgYW5kIFBSc1xuICogb24gdGhlc2UgcmVwb3MgYXJlIGF1dG9tYXRlZCBidWlsZHMgYW5kIG5vdGlmaWNhdGlvbnMsIHNvIGxvY2tpbmcgdGhlc2UgdGhyZWFkcyBpc1xuICogZ2VuZXJhbGx5IG5vdCBleHBlY3RlZCB0byBjYXVzZSBpc3N1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NrSXNzdWVzIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCkge1xuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LmFkZFdvcmtmbG93KFwibG9ja1wiKTtcblxuICAgIGlmICghd29ya2Zsb3cpIHRocm93IG5ldyBFcnJvcihcIm5vIHdvcmtmbG93IGRlZmluZWRcIik7XG5cbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICAvLyBydW4gZGFpbHkgc29tZXRpbWUgYmV0d2VlbiBtaWRuaWdodCBhbmQgNmFtIFVUQ1xuICAgICAgc2NoZWR1bGU6IFt7IGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7IHByb2plY3QsIG1heEhvdXI6IDYgfSkgfV0sXG4gICAgfSk7XG5cbiAgICB3b3JrZmxvdy5hZGRKb2IoXCJsb2NrXCIsIHtcbiAgICAgIHJ1bnNPbjogW1widWJ1bnR1LWxhdGVzdFwiXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgaXNzdWVzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB1c2VzOiBcImRlc3NhbnQvbG9jay10aHJlYWRzXCIsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgXCJpc3N1ZS1jb21tZW50XCI6XG4gICAgICAgICAgICAgIGBJJ20gZ29pbmcgdG8gbG9jayB0aGlzIGlzc3VlIGJlY2F1c2UgaXQgaGFzIGJlZW4gY2xvc2VkIGZvciBhdCBsZWFzdCA3IGRheXMuXG4gICAgICAgICAgICAgIFRoaXMgaGVscHMgb3VyIG1haW50YWluZXJzIGZpbmQgYW5kIGZvY3VzIG9uIHRoZSBhY3RpdmUgaXNzdWVzLlxuICAgICAgICAgICAgICBJZiB5b3UndmUgZm91bmQgYSBwcm9ibGVtIHRoYXQgc2VlbXMgc2ltaWxhciB0byB0aGlzLCBwbGVhc2UgXG4gICAgICAgICAgICAgIFtvcGVuIGEgbmV3IGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vY2RrdG4taW8vY2RrdG4tcHJvdmlkZXItcHJvamVjdC9pc3N1ZXMvbmV3KSBcbiAgICAgICAgICAgICAgc28gd2UgY2FuIGludmVzdGlnYXRlIGZ1cnRoZXIuYC5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKSxcbiAgICAgICAgICAgIFwiaXNzdWUtaW5hY3RpdmUtZGF5c1wiOiA3LFxuICAgICAgICAgICAgXCJwci1jb21tZW50XCI6XG4gICAgICAgICAgICAgIGBJJ20gZ29pbmcgdG8gbG9jayB0aGlzIHB1bGwgcmVxdWVzdCBiZWNhdXNlIGl0IGhhcyBiZWVuIGNsb3NlZCBmb3IgYXQgbGVhc3QgNyBkYXlzLlxuICAgICAgICAgICAgICBUaGlzIGhlbHBzIG91ciBtYWludGFpbmVycyBmaW5kIGFuZCBmb2N1cyBvbiB0aGUgYWN0aXZlIGlzc3Vlcy5cbiAgICAgICAgICAgICAgSWYgeW91J3ZlIGZvdW5kIGEgcHJvYmxlbSB0aGF0IHNlZW1zIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UsIHBsZWFzZSBcbiAgICAgICAgICAgICAgW29wZW4gYSBuZXcgaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGt0bi1pby9jZGt0bi1wcm92aWRlci1wcm9qZWN0L2lzc3Vlcy9uZXcpIFxuICAgICAgICAgICAgICBzbyB3ZSBjYW4gaW52ZXN0aWdhdGUgZnVydGhlci5gLnJlcGxhY2UoL1xccysvZywgXCIgXCIpLFxuICAgICAgICAgICAgXCJwci1pbmFjdGl2ZS1kYXlzXCI6IDcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBjb250aW51ZU9uRXJyb3I6IHRydWUsIC8vIHRoaXMgam9iIGZhaWxzIHF1aXRlIGZyZXF1ZW50bHkgZHVlIHRvIHJhdGUgbGltaXQgaXNzdWVzIGJ1dCBpdCdzIHJlYWxseSBub3QgYSBiaWcgZGVhbCBpZiBpdCBkb2VzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { cdk } from "projen";
|
|
6
|
+
export interface PackageInfo {
|
|
7
|
+
npm: {
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
python: NonNullable<cdk.JsiiProjectOptions["python"]>;
|
|
11
|
+
publishToNuget: NonNullable<cdk.JsiiProjectOptions["publishToNuget"]>;
|
|
12
|
+
publishToMaven: NonNullable<cdk.JsiiProjectOptions["publishToMaven"]>;
|
|
13
|
+
publishToGo: cdk.JsiiProjectOptions["publishToGo"];
|
|
14
|
+
}
|