@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
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhY2thZ2UtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBjZGsgfSBmcm9tIFwicHJvamVuXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZUluZm8ge1xuICBucG06IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHB5dGhvbjogTm9uTnVsbGFibGU8Y2RrLkpzaWlQcm9qZWN0T3B0aW9uc1tcInB5dGhvblwiXT47XG4gIHB1Ymxpc2hUb051Z2V0OiBOb25OdWxsYWJsZTxjZGsuSnNpaVByb2plY3RPcHRpb25zW1wicHVibGlzaFRvTnVnZXRcIl0+O1xuICBwdWJsaXNoVG9NYXZlbjogTm9uTnVsbGFibGU8Y2RrLkpzaWlQcm9qZWN0T3B0aW9uc1tcInB1Ymxpc2hUb01hdmVuXCJdPjtcbiAgcHVibGlzaFRvR286IGNkay5Kc2lpUHJvamVjdE9wdGlvbnNbXCJwdWJsaXNoVG9Hb1wiXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { javascript } from "projen";
|
|
6
|
+
interface ProviderUpgradeOptions {
|
|
7
|
+
checkForUpgradesScriptPath: string;
|
|
8
|
+
workflowRunsOn: string[];
|
|
9
|
+
nodeHeapSize: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Checks for new versions of the given provider and creates a PR with an upgrade change if there are changes.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ProviderUpgrade {
|
|
15
|
+
constructor(project: javascript.NodeProject, options: ProviderUpgradeOptions);
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,145 @@
|
|
|
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.ProviderUpgrade = void 0;
|
|
8
|
+
const workflows_model_1 = require("projen/lib/github/workflows-model");
|
|
9
|
+
const random_cron_1 = require("./util/random-cron");
|
|
10
|
+
/**
|
|
11
|
+
* Checks for new versions of the given provider and creates a PR with an upgrade change if there are changes.
|
|
12
|
+
*/
|
|
13
|
+
class ProviderUpgrade {
|
|
14
|
+
constructor(project, options) {
|
|
15
|
+
project.addTask("check-if-new-provider-version", {
|
|
16
|
+
exec: `node ./${options.checkForUpgradesScriptPath}`,
|
|
17
|
+
});
|
|
18
|
+
const workflow = project.github?.addWorkflow("provider-upgrade");
|
|
19
|
+
if (!workflow)
|
|
20
|
+
throw new Error("no workflow defined");
|
|
21
|
+
workflow.on({
|
|
22
|
+
schedule: [
|
|
23
|
+
{
|
|
24
|
+
cron: (0, random_cron_1.generateRandomCron)({
|
|
25
|
+
project,
|
|
26
|
+
maxHour: 0,
|
|
27
|
+
hourOffset: 3,
|
|
28
|
+
}),
|
|
29
|
+
},
|
|
30
|
+
], // Run every day sometime between 3 and 4am
|
|
31
|
+
workflowDispatch: {}, // allow manual triggering
|
|
32
|
+
});
|
|
33
|
+
const newerVersionAvailable = "${{ steps.check_version.outputs.new_version == 'available' }}";
|
|
34
|
+
const currentVersion = "${{ steps.current_version.outputs.value }}";
|
|
35
|
+
const newVersion = "${{ steps.new_version.outputs.value }}";
|
|
36
|
+
const semanticType = "${{ steps.release.outputs.type }}";
|
|
37
|
+
const steps = [
|
|
38
|
+
{
|
|
39
|
+
name: "Checkout",
|
|
40
|
+
uses: "actions/checkout",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "Setup Terraform",
|
|
44
|
+
uses: "hashicorp/setup-terraform",
|
|
45
|
+
with: {
|
|
46
|
+
terraform_wrapper: false,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Setup Node.js",
|
|
51
|
+
uses: "actions/setup-node",
|
|
52
|
+
with: {
|
|
53
|
+
"node-version": project.minNodeVersion,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "Setup Copywrite tool",
|
|
58
|
+
uses: "hashicorp/setup-copywrite",
|
|
59
|
+
},
|
|
60
|
+
{ run: "yarn install" },
|
|
61
|
+
{
|
|
62
|
+
id: "check_version",
|
|
63
|
+
run: "yarn check-if-new-provider-version",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "get provider current version",
|
|
67
|
+
if: newerVersionAvailable,
|
|
68
|
+
id: "current_version",
|
|
69
|
+
run: `echo "value=$(jq -r '.cdktf.provider.version' package.json)" >> $GITHUB_OUTPUT`,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
run: "yarn fetch",
|
|
73
|
+
if: newerVersionAvailable,
|
|
74
|
+
env: {
|
|
75
|
+
CHECKPOINT_DISABLE: "1",
|
|
76
|
+
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
// Because yarn fetch nukes the contents of /src, we've lost our auto-generated copyright headers
|
|
81
|
+
name: "Add headers using Copywrite tool",
|
|
82
|
+
if: newerVersionAvailable,
|
|
83
|
+
run: "copywrite headers",
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: "get provider updated version",
|
|
87
|
+
if: newerVersionAvailable,
|
|
88
|
+
id: "new_version",
|
|
89
|
+
run: `echo "value=$(jq -r '. | to_entries[] | .value' src/version.json)" >> $GITHUB_OUTPUT`,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: "Determine if this is a minor or patch release",
|
|
93
|
+
if: newerVersionAvailable,
|
|
94
|
+
id: "release",
|
|
95
|
+
env: {
|
|
96
|
+
CURRENT_VERSION: currentVersion,
|
|
97
|
+
NEW_VERSION: newVersion,
|
|
98
|
+
},
|
|
99
|
+
run: [
|
|
100
|
+
`CURRENT_VERSION_MINOR=$(cut -d "." -f 2 <<< "$CURRENT_VERSION")`,
|
|
101
|
+
`NEW_VERSION_MINOR=$(cut -d "." -f 2 <<< "$NEW_VERSION")`,
|
|
102
|
+
`[[ "$CURRENT_VERSION_MINOR" != "$NEW_VERSION_MINOR" ]] && IS_MINOR_RELEASE=true || IS_MINOR_RELEASE=false`,
|
|
103
|
+
`[[ "$IS_MINOR_RELEASE" == "true" ]] && SEMANTIC_TYPE=feat || SEMANTIC_TYPE=fix`,
|
|
104
|
+
`echo "is_minor=$IS_MINOR_RELEASE" >> $GITHUB_OUTPUT`,
|
|
105
|
+
`echo "type=$SEMANTIC_TYPE" >> $GITHUB_OUTPUT`,
|
|
106
|
+
].join("\n"),
|
|
107
|
+
},
|
|
108
|
+
// submit a PR
|
|
109
|
+
{
|
|
110
|
+
name: "Create Pull Request",
|
|
111
|
+
if: newerVersionAvailable,
|
|
112
|
+
uses: "peter-evans/create-pull-request",
|
|
113
|
+
with: {
|
|
114
|
+
branch: "auto/provider-upgrade",
|
|
115
|
+
"commit-message": `${semanticType}: upgrade provider from \`${currentVersion}\` to version \`${newVersion}\``,
|
|
116
|
+
title: `${semanticType}: upgrade provider from \`${currentVersion}\` to version \`${newVersion}\``,
|
|
117
|
+
body: `This PR upgrades the underlying Terraform provider to version ${newVersion}`,
|
|
118
|
+
labels: "automerge,auto-approve",
|
|
119
|
+
token: "${{ secrets.GH_TOKEN }}",
|
|
120
|
+
"delete-branch": true,
|
|
121
|
+
committer: "team-cdk-terrain <github-team-cdk-terrain@cdktn.io",
|
|
122
|
+
author: "Team CDK Terrain <github-team-cdk-terrain@cdktn.io",
|
|
123
|
+
signoff: true,
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
workflow.addJobs({
|
|
128
|
+
upgrade: {
|
|
129
|
+
runsOn: options.workflowRunsOn,
|
|
130
|
+
env: {
|
|
131
|
+
NODE_OPTIONS: `--max-old-space-size=${options.nodeHeapSize}`,
|
|
132
|
+
},
|
|
133
|
+
steps,
|
|
134
|
+
permissions: {
|
|
135
|
+
pullRequests: workflows_model_1.JobPermission.WRITE,
|
|
136
|
+
issues: workflows_model_1.JobPermission.WRITE,
|
|
137
|
+
contents: workflows_model_1.JobPermission.WRITE,
|
|
138
|
+
statuses: workflows_model_1.JobPermission.WRITE,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.ProviderUpgrade = ProviderUpgrade;
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxJQUFJLEVBQUU7b0JBQ0osaUJBQWlCLEVBQUUsS0FBSztpQkFDekI7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixJQUFJLEVBQUU7b0JBQ0osY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO2lCQUN2QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLDJCQUEyQjthQUNsQztZQUNELEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtZQUN2QjtnQkFDRSxFQUFFLEVBQUUsZUFBZTtnQkFDbkIsR0FBRyxFQUFFLG9DQUFvQzthQUMxQztZQUNEO2dCQUNFLElBQUksRUFBRSw4QkFBOEI7Z0JBQ3BDLEVBQUUsRUFBRSxxQkFBcUI7Z0JBQ3pCLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLEdBQUcsRUFBRSxnRkFBZ0Y7YUFDdEY7WUFDRDtnQkFDRSxHQUFHLEVBQUUsWUFBWTtnQkFDakIsRUFBRSxFQUFFLHFCQUFxQjtnQkFDekIsR0FBRyxFQUFFO29CQUNILGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLFFBQVEsRUFBRSw2QkFBNkI7aUJBQ3hDO2FBQ0Y7WUFDRDtnQkFDRSxpR0FBaUc7Z0JBQ2pHLElBQUksRUFBRSxrQ0FBa0M7Z0JBQ3hDLEVBQUUsRUFBRSxxQkFBcUI7Z0JBQ3pCLEdBQUcsRUFBRSxtQkFBbUI7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsOEJBQThCO2dCQUNwQyxFQUFFLEVBQUUscUJBQXFCO2dCQUN6QixFQUFFLEVBQUUsYUFBYTtnQkFDakIsR0FBRyxFQUFFLHNGQUFzRjthQUM1RjtZQUNEO2dCQUNFLElBQUksRUFBRSwrQ0FBK0M7Z0JBQ3JELEVBQUUsRUFBRSxxQkFBcUI7Z0JBQ3pCLEVBQUUsRUFBRSxTQUFTO2dCQUNiLEdBQUcsRUFBRTtvQkFDSCxlQUFlLEVBQUUsY0FBYztvQkFDL0IsV0FBVyxFQUFFLFVBQVU7aUJBQ3hCO2dCQUNELEdBQUcsRUFBRTtvQkFDSCxpRUFBaUU7b0JBQ2pFLHlEQUF5RDtvQkFDekQsMkdBQTJHO29CQUMzRyxnRkFBZ0Y7b0JBQ2hGLHFEQUFxRDtvQkFDckQsOENBQThDO2lCQUMvQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtZQUNELGNBQWM7WUFDZDtnQkFDRSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixFQUFFLEVBQUUscUJBQXFCO2dCQUN6QixJQUFJLEVBQUUsaUNBQWlDO2dCQUN2QyxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFLHVCQUF1QjtvQkFDL0IsZ0JBQWdCLEVBQUUsR0FBRyxZQUFZLDZCQUE2QixjQUFjLG1CQUFtQixVQUFVLElBQUk7b0JBQzdHLEtBQUssRUFBRSxHQUFHLFlBQVksNkJBQTZCLGNBQWMsbUJBQW1CLFVBQVUsSUFBSTtvQkFDbEcsSUFBSSxFQUFFLGlFQUFpRSxVQUFVLEVBQUU7b0JBQ25GLE1BQU0sRUFBRSx3QkFBd0I7b0JBQ2hDLEtBQUssRUFBRSx5QkFBeUI7b0JBQ2hDLGVBQWUsRUFBRSxJQUFJO29CQUNyQixTQUFTLEVBQUUsb0RBQW9EO29CQUMvRCxNQUFNLEVBQUUsb0RBQW9EO29CQUM1RCxPQUFPLEVBQUUsSUFBSTtpQkFDZDthQUNGO1NBQ0YsQ0FBQztRQUVGLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDZixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUM5QixHQUFHLEVBQUU7b0JBQ0gsWUFBWSxFQUFFLHdCQUF3QixPQUFPLENBQUMsWUFBWSxFQUFFO2lCQUM3RDtnQkFDRCxLQUFLO2dCQUNMLFdBQVcsRUFBRTtvQkFDWCxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO29CQUNqQyxNQUFNLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO29CQUMzQixRQUFRLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO29CQUM3QixRQUFRLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO2lCQUM5QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0lELDBDQTJJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVJhbmRvbUNyb24gfSBmcm9tIFwiLi91dGlsL3JhbmRvbS1jcm9uXCI7XG5cbmludGVyZmFjZSBQcm92aWRlclVwZ3JhZGVPcHRpb25zIHtcbiAgY2hlY2tGb3JVcGdyYWRlc1NjcmlwdFBhdGg6IHN0cmluZztcbiAgd29ya2Zsb3dSdW5zT246IHN0cmluZ1tdO1xuICBub2RlSGVhcFNpemU6IHN0cmluZztcbn1cbi8qKlxuICogQ2hlY2tzIGZvciBuZXcgdmVyc2lvbnMgb2YgdGhlIGdpdmVuIHByb3ZpZGVyIGFuZCBjcmVhdGVzIGEgUFIgd2l0aCBhbiB1cGdyYWRlIGNoYW5nZSBpZiB0aGVyZSBhcmUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyVXBncmFkZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IGphdmFzY3JpcHQuTm9kZVByb2plY3QsXG4gICAgb3B0aW9uczogUHJvdmlkZXJVcGdyYWRlT3B0aW9uc1xuICApIHtcbiAgICBwcm9qZWN0LmFkZFRhc2soXCJjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLCB7XG4gICAgICBleGVjOiBgbm9kZSAuLyR7b3B0aW9ucy5jaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aH1gLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgd29ya2Zsb3cgPSBwcm9qZWN0LmdpdGh1Yj8uYWRkV29ya2Zsb3coXCJwcm92aWRlci11cGdyYWRlXCIpO1xuXG4gICAgaWYgKCF3b3JrZmxvdykgdGhyb3cgbmV3IEVycm9yKFwibm8gd29ya2Zsb3cgZGVmaW5lZFwiKTtcblxuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHNjaGVkdWxlOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oe1xuICAgICAgICAgICAgcHJvamVjdCxcbiAgICAgICAgICAgIG1heEhvdXI6IDAsXG4gICAgICAgICAgICBob3VyT2Zmc2V0OiAzLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSwgLy8gUnVuIGV2ZXJ5IGRheSBzb21ldGltZSBiZXR3ZWVuIDMgYW5kIDRhbVxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sIC8vIGFsbG93IG1hbnVhbCB0cmlnZ2VyaW5nXG4gICAgfSk7XG5cbiAgICBjb25zdCBuZXdlclZlcnNpb25BdmFpbGFibGUgPVxuICAgICAgXCIke3sgc3RlcHMuY2hlY2tfdmVyc2lvbi5vdXRwdXRzLm5ld192ZXJzaW9uID09ICdhdmFpbGFibGUnIH19XCI7XG4gICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBcIiR7eyBzdGVwcy5jdXJyZW50X3ZlcnNpb24ub3V0cHV0cy52YWx1ZSB9fVwiO1xuICAgIGNvbnN0IG5ld1ZlcnNpb24gPSBcIiR7eyBzdGVwcy5uZXdfdmVyc2lvbi5vdXRwdXRzLnZhbHVlIH19XCI7XG4gICAgY29uc3Qgc2VtYW50aWNUeXBlID0gXCIke3sgc3RlcHMucmVsZWFzZS5vdXRwdXRzLnR5cGUgfX1cIjtcblxuICAgIGNvbnN0IHN0ZXBzOiBKb2JTdGVwW10gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0XCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIFRlcnJhZm9ybVwiLFxuICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC10ZXJyYWZvcm1cIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIHRlcnJhZm9ybV93cmFwcGVyOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgTm9kZS5qc1wiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvc2V0dXAtbm9kZVwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgXCJub2RlLXZlcnNpb25cIjogcHJvamVjdC5taW5Ob2RlVmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtY29weXdyaXRlXCIsXG4gICAgICB9LFxuICAgICAgeyBydW46IFwieWFybiBpbnN0YWxsXCIgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IFwiY2hlY2tfdmVyc2lvblwiLFxuICAgICAgICBydW46IFwieWFybiBjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgY3VycmVudCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcImN1cnJlbnRfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnLmNka3RmLnByb3ZpZGVyLnZlcnNpb24nIHBhY2thZ2UuanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydW46IFwieWFybiBmZXRjaFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDSEVDS1BPSU5UX0RJU0FCTEU6IFwiMVwiLFxuICAgICAgICAgIEdIX1RPS0VOOiBcIiR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gQmVjYXVzZSB5YXJuIGZldGNoIG51a2VzIHRoZSBjb250ZW50cyBvZiAvc3JjLCB3ZSd2ZSBsb3N0IG91ciBhdXRvLWdlbmVyYXRlZCBjb3B5cmlnaHQgaGVhZGVyc1xuICAgICAgICBuYW1lOiBcIkFkZCBoZWFkZXJzIHVzaW5nIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIHJ1bjogXCJjb3B5d3JpdGUgaGVhZGVyc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgdXBkYXRlZCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcIm5ld192ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogYGVjaG8gXCJ2YWx1ZT0kKGpxIC1yICcuIHwgdG9fZW50cmllc1tdIHwgLnZhbHVlJyBzcmMvdmVyc2lvbi5qc29uKVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBtaW5vciBvciBwYXRjaCByZWxlYXNlXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcInJlbGVhc2VcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ1VSUkVOVF9WRVJTSU9OOiBjdXJyZW50VmVyc2lvbixcbiAgICAgICAgICBORVdfVkVSU0lPTjogbmV3VmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBbXG4gICAgICAgICAgYENVUlJFTlRfVkVSU0lPTl9NSU5PUj0kKGN1dCAtZCBcIi5cIiAtZiAyIDw8PCBcIiRDVVJSRU5UX1ZFUlNJT05cIilgLFxuICAgICAgICAgIGBORVdfVkVSU0lPTl9NSU5PUj0kKGN1dCAtZCBcIi5cIiAtZiAyIDw8PCBcIiRORVdfVkVSU0lPTlwiKWAsXG4gICAgICAgICAgYFtbIFwiJENVUlJFTlRfVkVSU0lPTl9NSU5PUlwiICE9IFwiJE5FV19WRVJTSU9OX01JTk9SXCIgXV0gJiYgSVNfTUlOT1JfUkVMRUFTRT10cnVlIHx8IElTX01JTk9SX1JFTEVBU0U9ZmFsc2VgLFxuICAgICAgICAgIGBbWyBcIiRJU19NSU5PUl9SRUxFQVNFXCIgPT0gXCJ0cnVlXCIgXV0gJiYgU0VNQU5USUNfVFlQRT1mZWF0IHx8IFNFTUFOVElDX1RZUEU9Zml4YCxcbiAgICAgICAgICBgZWNobyBcImlzX21pbm9yPSRJU19NSU5PUl9SRUxFQVNFXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICAgIGBlY2hvIFwidHlwZT0kU0VNQU5USUNfVFlQRVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgfSxcbiAgICAgIC8vIHN1Ym1pdCBhIFBSXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICB1c2VzOiBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIGJyYW5jaDogXCJhdXRvL3Byb3ZpZGVyLXVwZ3JhZGVcIixcbiAgICAgICAgICBcImNvbW1pdC1tZXNzYWdlXCI6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIHRpdGxlOiBgJHtzZW1hbnRpY1R5cGV9OiB1cGdyYWRlIHByb3ZpZGVyIGZyb20gXFxgJHtjdXJyZW50VmVyc2lvbn1cXGAgdG8gdmVyc2lvbiBcXGAke25ld1ZlcnNpb259XFxgYCxcbiAgICAgICAgICBib2R5OiBgVGhpcyBQUiB1cGdyYWRlcyB0aGUgdW5kZXJseWluZyBUZXJyYWZvcm0gcHJvdmlkZXIgdG8gdmVyc2lvbiAke25ld1ZlcnNpb259YCxcbiAgICAgICAgICBsYWJlbHM6IFwiYXV0b21lcmdlLGF1dG8tYXBwcm92ZVwiLFxuICAgICAgICAgIHRva2VuOiBcIiR7eyBzZWNyZXRzLkdIX1RPS0VOIH19XCIsXG4gICAgICAgICAgXCJkZWxldGUtYnJhbmNoXCI6IHRydWUsXG4gICAgICAgICAgY29tbWl0dGVyOiBcInRlYW0tY2RrLXRlcnJhaW4gPGdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICAgICAgYXV0aG9yOiBcIlRlYW0gQ0RLIFRlcnJhaW4gPGdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICAgICAgc2lnbm9mZjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgdXBncmFkZToge1xuICAgICAgICBydW5zT246IG9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIE5PREVfT1BUSU9OUzogYC0tbWF4LW9sZC1zcGFjZS1zaXplPSR7b3B0aW9ucy5ub2RlSGVhcFNpemV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcHMsXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBzdGF0dXNlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/readme.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { FileBase, FileBaseOptions, IResolver, Project } from "projen";
|
|
6
|
+
import { PackageInfo } from "./package-info";
|
|
7
|
+
export interface ReadmeFileOptions extends FileBaseOptions {
|
|
8
|
+
providerName: string;
|
|
9
|
+
fqproviderName: string;
|
|
10
|
+
providerVersion: string;
|
|
11
|
+
packageInfo: PackageInfo;
|
|
12
|
+
underlyingTerraformVersion: string;
|
|
13
|
+
cdktfVersion: string;
|
|
14
|
+
isDeprecated: boolean;
|
|
15
|
+
deprecationDate?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class ReadmeFile extends FileBase {
|
|
18
|
+
protected readonly options: ReadmeFileOptions;
|
|
19
|
+
constructor(project: Project, filePath: string, options: ReadmeFileOptions);
|
|
20
|
+
protected synthesizeContent(resolver: IResolver): string;
|
|
21
|
+
}
|
package/lib/readme.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
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.ReadmeFile = void 0;
|
|
8
|
+
const projen_1 = require("projen");
|
|
9
|
+
class ReadmeFile extends projen_1.FileBase {
|
|
10
|
+
constructor(project, filePath, options) {
|
|
11
|
+
super(project, filePath, options);
|
|
12
|
+
this.options = options;
|
|
13
|
+
}
|
|
14
|
+
synthesizeContent(resolver) {
|
|
15
|
+
const { providerName, fqproviderName, providerVersion, packageInfo, underlyingTerraformVersion, isDeprecated, deprecationDate, } = resolver.resolve(this.options);
|
|
16
|
+
const fqpnURL = fqproviderName.includes("/")
|
|
17
|
+
? fqproviderName
|
|
18
|
+
: `hashicorp/${fqproviderName}`;
|
|
19
|
+
const versionURL = providerVersion
|
|
20
|
+
? providerVersion.replace(/~>\s*/, "").concat(".0")
|
|
21
|
+
: "";
|
|
22
|
+
const registryUrl = `https://registry.terraform.io/providers/${fqpnURL}/${underlyingTerraformVersion !== "<unknown>"
|
|
23
|
+
? underlyingTerraformVersion
|
|
24
|
+
: versionURL}`;
|
|
25
|
+
const cdktfVersion = this.options.cdktfVersion.replace("^", "");
|
|
26
|
+
const date = deprecationDate ??
|
|
27
|
+
new Date().toLocaleDateString("en-US", {
|
|
28
|
+
year: "numeric",
|
|
29
|
+
month: "long",
|
|
30
|
+
day: "numeric",
|
|
31
|
+
});
|
|
32
|
+
const deprecationMessage = `
|
|
33
|
+
The CDK Terrain Team made the decision to stop publishing new versions of prebuilt [Terraform ${providerName} provider](${registryUrl}) bindings for [CDK for Terraform](https://cdk.tf) on ${date}. As such, this repository has been archived and is no longer supported in any way by HashiCorp. Previously-published versions of this prebuilt provider will still continue to be available on their respective package managers (e.g. npm, PyPi, Maven, NuGet), but these will not be compatible with new releases of \`cdktf\` past \`${cdktfVersion}\` and are no longer eligible for support.
|
|
34
|
+
|
|
35
|
+
As a reminder, you can continue to use the \`${fqpnURL}\` provider in your CDK for Terraform (CDKTF) projects, even with newer versions of CDKTF, but you will need to generate the bindings locally. The easiest way to do so is to use the [\`provider add\` command](https://developer.hashicorp.com/terraform/cdktf/cli-reference/commands#provider-add), optionally with the \`--force-local\` flag enabled:
|
|
36
|
+
|
|
37
|
+
\`cdktf provider add ${fqpnURL} --force-local\`
|
|
38
|
+
|
|
39
|
+
For more information and additional examples, check out our documentation on [generating provider bindings manually](https://cdk.tf/imports).
|
|
40
|
+
`.trim();
|
|
41
|
+
const readme = `
|
|
42
|
+
# CDKTF prebuilt bindings for ${fqpnURL} provider version ${underlyingTerraformVersion !== "<unknown>"
|
|
43
|
+
? `${underlyingTerraformVersion}`
|
|
44
|
+
: `${providerVersion}`}
|
|
45
|
+
|
|
46
|
+
${isDeprecated
|
|
47
|
+
? deprecationMessage
|
|
48
|
+
: `This repo builds and publishes the [Terraform ${providerName} provider](${registryUrl}/docs) bindings for [CDK for Terraform](https://cdk.tf).`}
|
|
49
|
+
|
|
50
|
+
## ${isDeprecated ? "Deprecated" : "Available"} Packages
|
|
51
|
+
|
|
52
|
+
### NPM
|
|
53
|
+
|
|
54
|
+
The npm package is available at [https://www.npmjs.com/package/${packageInfo.npm.name}](https://www.npmjs.com/package/${packageInfo.npm.name}).
|
|
55
|
+
|
|
56
|
+
\`npm install ${packageInfo.npm.name}\`
|
|
57
|
+
|
|
58
|
+
### PyPI
|
|
59
|
+
|
|
60
|
+
The PyPI package is available at [https://pypi.org/project/${packageInfo.python.distName}](https://pypi.org/project/${packageInfo.python.distName}).
|
|
61
|
+
|
|
62
|
+
\`pipenv install ${packageInfo.python.distName}\`
|
|
63
|
+
|
|
64
|
+
### Nuget
|
|
65
|
+
|
|
66
|
+
The Nuget package is available at [https://www.nuget.org/packages/${packageInfo.publishToNuget.packageId}](https://www.nuget.org/packages/${packageInfo.publishToNuget.packageId}).
|
|
67
|
+
|
|
68
|
+
\`dotnet add package ${packageInfo.publishToNuget.packageId}\`
|
|
69
|
+
|
|
70
|
+
### Maven
|
|
71
|
+
|
|
72
|
+
The Maven package is available at [https://mvnrepository.com/artifact/${packageInfo.publishToMaven.mavenGroupId}/${packageInfo.publishToMaven.mavenArtifactId}](https://mvnrepository.com/artifact/${packageInfo.publishToMaven.mavenGroupId}/${packageInfo.publishToMaven.mavenArtifactId}).
|
|
73
|
+
|
|
74
|
+
\`\`\`
|
|
75
|
+
<dependency>
|
|
76
|
+
<groupId>${packageInfo.publishToMaven.mavenGroupId}</groupId>
|
|
77
|
+
<artifactId>${packageInfo.publishToMaven.mavenArtifactId}</artifactId>
|
|
78
|
+
<version>[REPLACE WITH DESIRED VERSION]</version>
|
|
79
|
+
</dependency>
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
### Go
|
|
83
|
+
|
|
84
|
+
The go package is generated into the [\`${packageInfo.publishToGo?.moduleName}\`](https://${packageInfo.publishToGo?.moduleName}) package.
|
|
85
|
+
|
|
86
|
+
\`go get ${packageInfo.publishToGo?.moduleName}/${packageInfo.publishToGo?.packageName}/<version>\`
|
|
87
|
+
|
|
88
|
+
Where \`<version>\` is the version of the prebuilt provider you would like to use e.g. \`v11\`. The full module name can be found
|
|
89
|
+
within the [go.mod](https://${packageInfo.publishToGo?.moduleName}/blob/main/${packageInfo.publishToGo?.packageName}/go.mod#L1) file.
|
|
90
|
+
|
|
91
|
+
## Docs
|
|
92
|
+
|
|
93
|
+
Find auto-generated docs for this provider here:
|
|
94
|
+
|
|
95
|
+
- [Typescript](./docs/API.typescript.md)
|
|
96
|
+
- [Python](./docs/API.python.md)
|
|
97
|
+
- [Java](./docs/API.java.md)
|
|
98
|
+
- [C#](./docs/API.csharp.md)
|
|
99
|
+
- [Go](./docs/API.go.md)
|
|
100
|
+
|
|
101
|
+
You can also visit a hosted version of the documentation on [constructs.dev](https://constructs.dev/packages/@cdktn/provider-${providerName}).
|
|
102
|
+
`;
|
|
103
|
+
return isDeprecated
|
|
104
|
+
? readme
|
|
105
|
+
: readme +
|
|
106
|
+
`
|
|
107
|
+
## Versioning
|
|
108
|
+
|
|
109
|
+
This project is explicitly not tracking the Terraform ${providerName} provider version 1:1. In fact, it always tracks \`latest\` of \`${providerVersion}\` with every release. If there are scenarios where you explicitly have to pin your provider version, you can do so by [generating the provider constructs manually](https://cdk.tf/imports).
|
|
110
|
+
|
|
111
|
+
These are the upstream dependencies:
|
|
112
|
+
|
|
113
|
+
- [CDK for Terraform](https://cdk.tf) - Last official release
|
|
114
|
+
- [Terraform ${providerName} provider](${registryUrl})
|
|
115
|
+
- [Terraform Engine](https://terraform.io)
|
|
116
|
+
|
|
117
|
+
If there are breaking changes (backward incompatible) in any of the above, the major version of this project will be bumped.
|
|
118
|
+
|
|
119
|
+
## Features / Issues / Bugs
|
|
120
|
+
|
|
121
|
+
Please report bugs and issues to the [CDK for Terraform](https://cdk.tf) project:
|
|
122
|
+
|
|
123
|
+
- [Create bug report](https://cdk.tf/bug)
|
|
124
|
+
- [Create feature request](https://cdk.tf/feature)
|
|
125
|
+
|
|
126
|
+
## Contributing
|
|
127
|
+
|
|
128
|
+
### Projen
|
|
129
|
+
|
|
130
|
+
This is mostly based on [Projen](https://projen.io), which takes care of generating the entire repository.
|
|
131
|
+
|
|
132
|
+
### cdktn-provider-project based on Projen
|
|
133
|
+
|
|
134
|
+
There's a custom [project builder](https://github.com/cdktn-io/cdktn-provider-project) which encapsulate the common settings for all \`cdktf\` prebuilt providers.
|
|
135
|
+
|
|
136
|
+
### Provider Version
|
|
137
|
+
|
|
138
|
+
The provider version can be adjusted in [./.projenrc.js](./.projenrc.js).
|
|
139
|
+
|
|
140
|
+
### Repository Management
|
|
141
|
+
|
|
142
|
+
The repository is managed by [CDKTN Repository Manager](https://github.com/cdktn-io/cdktn-repository-manager/).
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.ReadmeFile = ReadmeFile;
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSCxtQ0FBdUU7QUFjdkUsTUFBYSxVQUFXLFNBQVEsaUJBQVE7SUFHdEMsWUFBWSxPQUFnQixFQUFFLFFBQWdCLEVBQUUsT0FBMEI7UUFDeEUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLE1BQU0sRUFDSixZQUFZLEVBQ1osY0FBYyxFQUNkLGVBQWUsRUFDZixXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixlQUFlLEdBQ2hCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzQixDQUFDO1FBRXhELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyxhQUFhLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLGVBQWU7WUFDaEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0sV0FBVyxHQUFHLDJDQUEyQyxPQUFPLElBQ3BFLDBCQUEwQixLQUFLLFdBQVc7WUFDeEMsQ0FBQyxDQUFDLDBCQUEwQjtZQUM1QixDQUFDLENBQUMsVUFDTixFQUFFLENBQUM7UUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sSUFBSSxHQUNSLGVBQWU7WUFDZixJQUFJLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtnQkFDckMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsR0FBRyxFQUFFLFNBQVM7YUFDZixDQUFDLENBQUM7UUFDTCxNQUFNLGtCQUFrQixHQUFHO2dHQUNpRSxZQUFZLGNBQWMsV0FBVyx5REFBeUQsSUFBSSw0VUFBNFUsWUFBWTs7K0NBRTNlLE9BQU87O3VCQUUvQixPQUFPOzs7S0FHekIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVULE1BQU0sTUFBTSxHQUFHO2dDQUNhLE9BQU8scUJBQ2pDLDBCQUEwQixLQUFLLFdBQVc7WUFDeEMsQ0FBQyxDQUFDLEdBQUcsMEJBQTBCLEVBQUU7WUFDakMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxFQUN4Qjs7RUFHRixZQUFZO1lBQ1YsQ0FBQyxDQUFDLGtCQUFrQjtZQUNwQixDQUFDLENBQUMsaURBQWlELFlBQVksY0FBYyxXQUFXLDBEQUM1Rjs7S0FFSyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVzs7OztpRUFLeEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUNsQixtQ0FBbUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJOztnQkFFM0MsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJOzs7OzZEQUs5QixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQ3JCLDhCQUE4QixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVE7O21CQUUxQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVE7Ozs7b0VBS3hDLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FDN0Isb0NBQW9DLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUzs7dUJBRXJELFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUzs7Ozt3RUFLckQsV0FBVyxDQUFDLGNBQWMsQ0FBQyxZQUM3QixJQUNFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFDN0Isd0NBQ0UsV0FBVyxDQUFDLGNBQWMsQ0FBQyxZQUM3QixJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZTs7OztlQUluQyxXQUFXLENBQUMsY0FBYyxDQUFDLFlBQVk7a0JBQ3BDLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZTs7Ozs7OzswQ0FRdEQsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUMzQixlQUFlLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVTs7V0FFM0MsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQ3hDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsV0FDM0I7Ozs4QkFHMEIsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVLGNBQzNELFdBQVcsQ0FBQyxXQUFXLEVBQUUsV0FDM0I7Ozs7Ozs7Ozs7OzsrSEFZMkgsWUFBWTtDQUMxSSxDQUFDO1FBRUUsT0FBTyxZQUFZO1lBQ2pCLENBQUMsQ0FBQyxNQUFNO1lBQ1IsQ0FBQyxDQUFDLE1BQU07Z0JBQ0o7Ozt3REFHOEMsWUFBWSxvRUFBb0UsZUFBZTs7Ozs7ZUFLeEksWUFBWSxjQUFjLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkJuRCxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBaExELGdDQWdMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgRmlsZUJhc2UsIEZpbGVCYXNlT3B0aW9ucywgSVJlc29sdmVyLCBQcm9qZWN0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcblxuZXhwb3J0IGludGVyZmFjZSBSZWFkbWVGaWxlT3B0aW9ucyBleHRlbmRzIEZpbGVCYXNlT3B0aW9ucyB7XG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBmcXByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBwcm92aWRlclZlcnNpb246IHN0cmluZztcbiAgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvO1xuICB1bmRlcmx5aW5nVGVycmFmb3JtVmVyc2lvbjogc3RyaW5nO1xuICBjZGt0ZlZlcnNpb246IHN0cmluZztcbiAgaXNEZXByZWNhdGVkOiBib29sZWFuO1xuICBkZXByZWNhdGlvbkRhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWFkbWVGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9uczogUmVhZG1lRmlsZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgb3B0aW9uczogUmVhZG1lRmlsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChyZXNvbHZlcjogSVJlc29sdmVyKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgZnFwcm92aWRlck5hbWUsXG4gICAgICBwcm92aWRlclZlcnNpb24sXG4gICAgICBwYWNrYWdlSW5mbyxcbiAgICAgIHVuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgIH0gPSByZXNvbHZlci5yZXNvbHZlKHRoaXMub3B0aW9ucykgYXMgUmVhZG1lRmlsZU9wdGlvbnM7XG5cbiAgICBjb25zdCBmcXBuVVJMID0gZnFwcm92aWRlck5hbWUuaW5jbHVkZXMoXCIvXCIpXG4gICAgICA/IGZxcHJvdmlkZXJOYW1lXG4gICAgICA6IGBoYXNoaWNvcnAvJHtmcXByb3ZpZGVyTmFtZX1gO1xuICAgIGNvbnN0IHZlcnNpb25VUkwgPSBwcm92aWRlclZlcnNpb25cbiAgICAgID8gcHJvdmlkZXJWZXJzaW9uLnJlcGxhY2UoL34+XFxzKi8sIFwiXCIpLmNvbmNhdChcIi4wXCIpXG4gICAgICA6IFwiXCI7XG4gICAgY29uc3QgcmVnaXN0cnlVcmwgPSBgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzLyR7ZnFwblVSTH0vJHtcbiAgICAgIHVuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9uICE9PSBcIjx1bmtub3duPlwiXG4gICAgICAgID8gdW5kZXJseWluZ1RlcnJhZm9ybVZlcnNpb25cbiAgICAgICAgOiB2ZXJzaW9uVVJMXG4gICAgfWA7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gdGhpcy5vcHRpb25zLmNka3RmVmVyc2lvbi5yZXBsYWNlKFwiXlwiLCBcIlwiKTtcblxuICAgIGNvbnN0IGRhdGUgPVxuICAgICAgZGVwcmVjYXRpb25EYXRlID8/XG4gICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIsIHtcbiAgICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICAgIG1vbnRoOiBcImxvbmdcIixcbiAgICAgICAgZGF5OiBcIm51bWVyaWNcIixcbiAgICAgIH0pO1xuICAgIGNvbnN0IGRlcHJlY2F0aW9uTWVzc2FnZSA9IGBcblRoZSBDREsgVGVycmFpbiBUZWFtIG1hZGUgdGhlIGRlY2lzaW9uIHRvIHN0b3AgcHVibGlzaGluZyBuZXcgdmVyc2lvbnMgb2YgcHJlYnVpbHQgW1RlcnJhZm9ybSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXJdKCR7cmVnaXN0cnlVcmx9KSBiaW5kaW5ncyBmb3IgW0NESyBmb3IgVGVycmFmb3JtXShodHRwczovL2Nkay50Zikgb24gJHtkYXRlfS4gQXMgc3VjaCwgdGhpcyByZXBvc2l0b3J5IGhhcyBiZWVuIGFyY2hpdmVkIGFuZCBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIGFueSB3YXkgYnkgSGFzaGlDb3JwLiBQcmV2aW91c2x5LXB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIHdpbGwgc3RpbGwgY29udGludWUgdG8gYmUgYXZhaWxhYmxlIG9uIHRoZWlyIHJlc3BlY3RpdmUgcGFja2FnZSBtYW5hZ2VycyAoZS5nLiBucG0sIFB5UGksIE1hdmVuLCBOdUdldCksIGJ1dCB0aGVzZSB3aWxsIG5vdCBiZSBjb21wYXRpYmxlIHdpdGggbmV3IHJlbGVhc2VzIG9mIFxcYGNka3RmXFxgIHBhc3QgXFxgJHtjZGt0ZlZlcnNpb259XFxgIGFuZCBhcmUgbm8gbG9uZ2VyIGVsaWdpYmxlIGZvciBzdXBwb3J0LlxuXG5BcyBhIHJlbWluZGVyLCB5b3UgY2FuIGNvbnRpbnVlIHRvIHVzZSB0aGUgXFxgJHtmcXBuVVJMfVxcYCBwcm92aWRlciBpbiB5b3VyIENESyBmb3IgVGVycmFmb3JtIChDREtURikgcHJvamVjdHMsIGV2ZW4gd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBDREtURiwgYnV0IHlvdSB3aWxsIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIGJpbmRpbmdzIGxvY2FsbHkuIFRoZSBlYXNpZXN0IHdheSB0byBkbyBzbyBpcyB0byB1c2UgdGhlIFtcXGBwcm92aWRlciBhZGRcXGAgY29tbWFuZF0oaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2RrdGYvY2xpLXJlZmVyZW5jZS9jb21tYW5kcyNwcm92aWRlci1hZGQpLCBvcHRpb25hbGx5IHdpdGggdGhlIFxcYC0tZm9yY2UtbG9jYWxcXGAgZmxhZyBlbmFibGVkOlxuXG5cXGBjZGt0ZiBwcm92aWRlciBhZGQgJHtmcXBuVVJMfSAtLWZvcmNlLWxvY2FsXFxgXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBhZGRpdGlvbmFsIGV4YW1wbGVzLCBjaGVjayBvdXQgb3VyIGRvY3VtZW50YXRpb24gb24gW2dlbmVyYXRpbmcgcHJvdmlkZXIgYmluZGluZ3MgbWFudWFsbHldKGh0dHBzOi8vY2RrLnRmL2ltcG9ydHMpLlxuICAgIGAudHJpbSgpO1xuXG4gICAgY29uc3QgcmVhZG1lID0gYFxuIyBDREtURiBwcmVidWlsdCBiaW5kaW5ncyBmb3IgJHtmcXBuVVJMfSBwcm92aWRlciB2ZXJzaW9uICR7XG4gICAgICB1bmRlcmx5aW5nVGVycmFmb3JtVmVyc2lvbiAhPT0gXCI8dW5rbm93bj5cIlxuICAgICAgICA/IGAke3VuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9ufWBcbiAgICAgICAgOiBgJHtwcm92aWRlclZlcnNpb259YFxuICAgIH1cblxuJHtcbiAgaXNEZXByZWNhdGVkXG4gICAgPyBkZXByZWNhdGlvbk1lc3NhZ2VcbiAgICA6IGBUaGlzIHJlcG8gYnVpbGRzIGFuZCBwdWJsaXNoZXMgdGhlIFtUZXJyYWZvcm0gJHtwcm92aWRlck5hbWV9IHByb3ZpZGVyXSgke3JlZ2lzdHJ5VXJsfS9kb2NzKSBiaW5kaW5ncyBmb3IgW0NESyBmb3IgVGVycmFmb3JtXShodHRwczovL2Nkay50ZikuYFxufVxuXG4jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJBdmFpbGFibGVcIn0gUGFja2FnZXNcblxuIyMjIE5QTVxuXG5UaGUgbnBtIHBhY2thZ2UgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS8ke1xuICAgICAgcGFja2FnZUluZm8ubnBtLm5hbWVcbiAgICB9XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS8ke3BhY2thZ2VJbmZvLm5wbS5uYW1lfSkuXG5cblxcYG5wbSBpbnN0YWxsICR7cGFja2FnZUluZm8ubnBtLm5hbWV9XFxgXG5cbiMjIyBQeVBJXG5cblRoZSBQeVBJIHBhY2thZ2UgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3B5cGkub3JnL3Byb2plY3QvJHtcbiAgICAgIHBhY2thZ2VJbmZvLnB5dGhvbi5kaXN0TmFtZVxuICAgIH1dKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC8ke3BhY2thZ2VJbmZvLnB5dGhvbi5kaXN0TmFtZX0pLlxuXG5cXGBwaXBlbnYgaW5zdGFsbCAke3BhY2thZ2VJbmZvLnB5dGhvbi5kaXN0TmFtZX1cXGBcblxuIyMjIE51Z2V0XG5cblRoZSBOdWdldCBwYWNrYWdlIGlzIGF2YWlsYWJsZSBhdCBbaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzLyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldC5wYWNrYWdlSWRcbiAgICB9XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvJHtwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldC5wYWNrYWdlSWR9KS5cblxuXFxgZG90bmV0IGFkZCBwYWNrYWdlICR7cGFja2FnZUluZm8ucHVibGlzaFRvTnVnZXQucGFja2FnZUlkfVxcYFxuXG4jIyMgTWF2ZW5cblxuVGhlIE1hdmVuIHBhY2thZ2UgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkdyb3VwSWRcbiAgICB9LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkFydGlmYWN0SWRcbiAgICB9XShodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkdyb3VwSWRcbiAgICB9LyR7cGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4ubWF2ZW5BcnRpZmFjdElkfSkuXG5cblxcYFxcYFxcYFxuPGRlcGVuZGVuY3k+XG4gICAgPGdyb3VwSWQ+JHtwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkdyb3VwSWR9PC9ncm91cElkPlxuICAgIDxhcnRpZmFjdElkPiR7cGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4ubWF2ZW5BcnRpZmFjdElkfTwvYXJ0aWZhY3RJZD5cbiAgICA8dmVyc2lvbj5bUkVQTEFDRSBXSVRIIERFU0lSRUQgVkVSU0lPTl08L3ZlcnNpb24+XG48L2RlcGVuZGVuY3k+XG5cXGBcXGBcXGBcblxuIyMjIEdvXG5cblRoZSBnbyBwYWNrYWdlIGlzIGdlbmVyYXRlZCBpbnRvIHRoZSBbXFxgJHtcbiAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lXG4gICAgfVxcYF0oaHR0cHM6Ly8ke3BhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lfSkgcGFja2FnZS5cblxuXFxgZ28gZ2V0ICR7cGFja2FnZUluZm8ucHVibGlzaFRvR28/Lm1vZHVsZU5hbWV9LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ucGFja2FnZU5hbWVcbiAgICB9Lzx2ZXJzaW9uPlxcYFxuXG5XaGVyZSBcXGA8dmVyc2lvbj5cXGAgaXMgdGhlIHZlcnNpb24gb2YgdGhlIHByZWJ1aWx0IHByb3ZpZGVyIHlvdSB3b3VsZCBsaWtlIHRvIHVzZSBlLmcuIFxcYHYxMVxcYC4gVGhlIGZ1bGwgbW9kdWxlIG5hbWUgY2FuIGJlIGZvdW5kXG53aXRoaW4gdGhlIFtnby5tb2RdKGh0dHBzOi8vJHtwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ubW9kdWxlTmFtZX0vYmxvYi9tYWluLyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ucGFja2FnZU5hbWVcbiAgICB9L2dvLm1vZCNMMSkgZmlsZS5cblxuIyMgRG9jc1xuXG5GaW5kIGF1dG8tZ2VuZXJhdGVkIGRvY3MgZm9yIHRoaXMgcHJvdmlkZXIgaGVyZTogXG5cbi0gW1R5cGVzY3JpcHRdKC4vZG9jcy9BUEkudHlwZXNjcmlwdC5tZClcbi0gW1B5dGhvbl0oLi9kb2NzL0FQSS5weXRob24ubWQpXG4tIFtKYXZhXSguL2RvY3MvQVBJLmphdmEubWQpXG4tIFtDI10oLi9kb2NzL0FQSS5jc2hhcnAubWQpXG4tIFtHb10oLi9kb2NzL0FQSS5nby5tZClcblxuWW91IGNhbiBhbHNvIHZpc2l0IGEgaG9zdGVkIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50YXRpb24gb24gW2NvbnN0cnVjdHMuZGV2XShodHRwczovL2NvbnN0cnVjdHMuZGV2L3BhY2thZ2VzL0BjZGt0bi9wcm92aWRlci0ke3Byb3ZpZGVyTmFtZX0pLlxuYDtcblxuICAgIHJldHVybiBpc0RlcHJlY2F0ZWRcbiAgICAgID8gcmVhZG1lXG4gICAgICA6IHJlYWRtZSArXG4gICAgICAgICAgYFxuIyMgVmVyc2lvbmluZ1xuXG5UaGlzIHByb2plY3QgaXMgZXhwbGljaXRseSBub3QgdHJhY2tpbmcgdGhlIFRlcnJhZm9ybSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXIgdmVyc2lvbiAxOjEuIEluIGZhY3QsIGl0IGFsd2F5cyB0cmFja3MgXFxgbGF0ZXN0XFxgIG9mIFxcYCR7cHJvdmlkZXJWZXJzaW9ufVxcYCB3aXRoIGV2ZXJ5IHJlbGVhc2UuIElmIHRoZXJlIGFyZSBzY2VuYXJpb3Mgd2hlcmUgeW91IGV4cGxpY2l0bHkgaGF2ZSB0byBwaW4geW91ciBwcm92aWRlciB2ZXJzaW9uLCB5b3UgY2FuIGRvIHNvIGJ5IFtnZW5lcmF0aW5nIHRoZSBwcm92aWRlciBjb25zdHJ1Y3RzIG1hbnVhbGx5XShodHRwczovL2Nkay50Zi9pbXBvcnRzKS5cblxuVGhlc2UgYXJlIHRoZSB1cHN0cmVhbSBkZXBlbmRlbmNpZXM6XG5cbi0gW0NESyBmb3IgVGVycmFmb3JtXShodHRwczovL2Nkay50ZikgLSBMYXN0IG9mZmljaWFsIHJlbGVhc2Vcbi0gW1RlcnJhZm9ybSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXJdKCR7cmVnaXN0cnlVcmx9KVxuLSBbVGVycmFmb3JtIEVuZ2luZV0oaHR0cHM6Ly90ZXJyYWZvcm0uaW8pXG5cbklmIHRoZXJlIGFyZSBicmVha2luZyBjaGFuZ2VzIChiYWNrd2FyZCBpbmNvbXBhdGlibGUpIGluIGFueSBvZiB0aGUgYWJvdmUsIHRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoaXMgcHJvamVjdCB3aWxsIGJlIGJ1bXBlZC5cblxuIyMgRmVhdHVyZXMgLyBJc3N1ZXMgLyBCdWdzXG5cblBsZWFzZSByZXBvcnQgYnVncyBhbmQgaXNzdWVzIHRvIHRoZSBbQ0RLIGZvciBUZXJyYWZvcm1dKGh0dHBzOi8vY2RrLnRmKSBwcm9qZWN0OlxuXG4tIFtDcmVhdGUgYnVnIHJlcG9ydF0oaHR0cHM6Ly9jZGsudGYvYnVnKVxuLSBbQ3JlYXRlIGZlYXR1cmUgcmVxdWVzdF0oaHR0cHM6Ly9jZGsudGYvZmVhdHVyZSlcblxuIyMgQ29udHJpYnV0aW5nXG5cbiMjIyBQcm9qZW5cblxuVGhpcyBpcyBtb3N0bHkgYmFzZWQgb24gW1Byb2plbl0oaHR0cHM6Ly9wcm9qZW4uaW8pLCB3aGljaCB0YWtlcyBjYXJlIG9mIGdlbmVyYXRpbmcgdGhlIGVudGlyZSByZXBvc2l0b3J5LlxuXG4jIyMgY2RrdG4tcHJvdmlkZXItcHJvamVjdCBiYXNlZCBvbiBQcm9qZW5cblxuVGhlcmUncyBhIGN1c3RvbSBbcHJvamVjdCBidWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vY2RrdG4taW8vY2RrdG4tcHJvdmlkZXItcHJvamVjdCkgd2hpY2ggZW5jYXBzdWxhdGUgdGhlIGNvbW1vbiBzZXR0aW5ncyBmb3IgYWxsIFxcYGNka3RmXFxgIHByZWJ1aWx0IHByb3ZpZGVycy5cblxuIyMjIFByb3ZpZGVyIFZlcnNpb25cblxuVGhlIHByb3ZpZGVyIHZlcnNpb24gY2FuIGJlIGFkanVzdGVkIGluIFsuLy5wcm9qZW5yYy5qc10oLi8ucHJvamVucmMuanMpLlxuXG4jIyMgUmVwb3NpdG9yeSBNYW5hZ2VtZW50XG5cblRoZSByZXBvc2l0b3J5IGlzIG1hbmFnZWQgYnkgW0NES1ROIFJlcG9zaXRvcnkgTWFuYWdlcl0oaHR0cHM6Ly9naXRodWIuY29tL2Nka3RuLWlvL2Nka3RuLXJlcG9zaXRvcnktbWFuYWdlci8pLlxuYDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { FileBase, FileBaseOptions, IResolver } from "projen";
|
|
6
|
+
import { NodeProject } from "projen/lib/javascript";
|
|
7
|
+
export interface CheckForUpgradesScriptFileOptions extends FileBaseOptions {
|
|
8
|
+
fqproviderName: string;
|
|
9
|
+
providerVersion: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class CheckForUpgradesScriptFile extends FileBase {
|
|
12
|
+
protected readonly options: CheckForUpgradesScriptFileOptions;
|
|
13
|
+
constructor(project: NodeProject, options: CheckForUpgradesScriptFileOptions);
|
|
14
|
+
protected synthesizeContent(resolver: IResolver): string | undefined;
|
|
15
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
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.CheckForUpgradesScriptFile = void 0;
|
|
8
|
+
const projen_1 = require("projen");
|
|
9
|
+
class CheckForUpgradesScriptFile extends projen_1.FileBase {
|
|
10
|
+
constructor(project, options) {
|
|
11
|
+
super(project, "scripts/check-for-upgrades.js", options);
|
|
12
|
+
this.options = options;
|
|
13
|
+
project.addDevDeps("semver@^7.5.3");
|
|
14
|
+
}
|
|
15
|
+
synthesizeContent(resolver) {
|
|
16
|
+
let { providerVersion, fqproviderName } = resolver.resolve(this.options);
|
|
17
|
+
// aws -> hashicorp/aws (else the registry API call fails)
|
|
18
|
+
if (!fqproviderName.includes("/")) {
|
|
19
|
+
fqproviderName = `hashicorp/${fqproviderName}`;
|
|
20
|
+
}
|
|
21
|
+
return `
|
|
22
|
+
/**
|
|
23
|
+
* Copyright (c) HashiCorp, Inc.
|
|
24
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
25
|
+
*/
|
|
26
|
+
const semver = require("semver");
|
|
27
|
+
const actions = require("@actions/core");
|
|
28
|
+
|
|
29
|
+
// Code is inlined below, as this import requires us to add all dev dependencies of cdktf-cli as we're not
|
|
30
|
+
// using the bundle. A better alternative would be to refactor this method to move to its own package, that
|
|
31
|
+
// the cdktf-cli and others can use (we have the same "problem" with some other code in cdktf, cdktf-cli and
|
|
32
|
+
// the @cdktn/provider-generator package, too)
|
|
33
|
+
// const { versionMatchesConstraint } = require('cdktf-cli/lib/dependencies/version-constraints');
|
|
34
|
+
|
|
35
|
+
// set by the projen file that generates this script
|
|
36
|
+
const CONSTRAINT = "${providerVersion}";
|
|
37
|
+
const FQ_PROVIDER_NAME = "${fqproviderName}";
|
|
38
|
+
|
|
39
|
+
(async function main() {
|
|
40
|
+
if (await newerMatchingProviderVersionExists()) {
|
|
41
|
+
console.log(
|
|
42
|
+
\`Found newer Terraform provider version matching the current constraint: \${CONSTRAINT}\`
|
|
43
|
+
);
|
|
44
|
+
setGithubStepOutput("new_version", "available");
|
|
45
|
+
} else {
|
|
46
|
+
console.log("No changes detected.");
|
|
47
|
+
setGithubStepOutput("new_version", "unavailable");
|
|
48
|
+
}
|
|
49
|
+
})();
|
|
50
|
+
|
|
51
|
+
function setGithubStepOutput(name, value) {
|
|
52
|
+
actions.setOutput(name, value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function newerMatchingProviderVersionExists() {
|
|
56
|
+
const res = await fetch(
|
|
57
|
+
\`https://registry.terraform.io/v2/providers/\${FQ_PROVIDER_NAME}/provider-versions\`
|
|
58
|
+
);
|
|
59
|
+
const body = await res.json();
|
|
60
|
+
|
|
61
|
+
const currentVersion = await getCurrentProviderVersion();
|
|
62
|
+
|
|
63
|
+
const availableVersions = body.data.map((it) => it.attributes.version);
|
|
64
|
+
const versionsMatching = availableVersions.filter((v) =>
|
|
65
|
+
versionMatchesConstraint(v, CONSTRAINT)
|
|
66
|
+
);
|
|
67
|
+
if (versionsMatching.length <= 0) {
|
|
68
|
+
throw new Error(
|
|
69
|
+
\`Unexpected Error: Found no matching versions for constraint \${CONSTRAINT} in [\${availableVersions.join(
|
|
70
|
+
", "
|
|
71
|
+
)}]\`
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const versionsGreaterThanCurrent = versionsMatching.filter((v) =>
|
|
76
|
+
semver.gt(v, currentVersion)
|
|
77
|
+
);
|
|
78
|
+
if (versionsGreaterThanCurrent.length > 0) {
|
|
79
|
+
console.log(
|
|
80
|
+
\`One or more matching versions (\${CONSTRAINT}) are greater than the current version (\${currentVersion}): [\${versionsGreaterThanCurrent.join(
|
|
81
|
+
", "
|
|
82
|
+
)}]\`
|
|
83
|
+
);
|
|
84
|
+
return true;
|
|
85
|
+
} else {
|
|
86
|
+
console.log(
|
|
87
|
+
\`Found no matching versions (\${CONSTRAINT}) greater than the current version (\${currentVersion}). Matching versions: [\${versionsMatching.join(
|
|
88
|
+
", "
|
|
89
|
+
)}]\`
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// e.g. cdktf 0.12.x -> 0.13.x but not 0.12.y -> 0.12.z
|
|
96
|
+
async function cdktfVersionMajorChanged() {
|
|
97
|
+
throw new Error("todo implement");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async function getCurrentProviderVersion() {
|
|
101
|
+
const json = require("../src/version.json");
|
|
102
|
+
return json[\`registry.terraform.io/\${FQ_PROVIDER_NAME.toLowerCase()}\`];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// SEE NOTICE AT THE TOP WHY THIS IS INLINED CURRENTLY
|
|
106
|
+
// copied from https://github.com/open-constructs/cdk-terrain/blob/df858ccf4ac71a168e3636f053c6743324c98332/packages/%40cdktf/cli-core/src/lib/dependencies/version-constraints.ts
|
|
107
|
+
// and converted to JavaScript
|
|
108
|
+
|
|
109
|
+
// constraints can be prefixed with "~>", ">", "<", "=", ">=", "<=" or "!="
|
|
110
|
+
// no prefix means "="
|
|
111
|
+
function parseConstraint(constraint) {
|
|
112
|
+
const cleaned = constraint.trim();
|
|
113
|
+
|
|
114
|
+
const operator = cleaned.match(/(~>|>=|<=|>|<|=|!=)/)?.[0] || "=";
|
|
115
|
+
const version = cleaned.replace(operator, "").trim();
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
operator,
|
|
119
|
+
version,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function versionMatchesConstraint(version, constraint) {
|
|
124
|
+
// https://www.terraform.io/language/expressions/version-constraints
|
|
125
|
+
// version can contain multiple constraints split by ","
|
|
126
|
+
|
|
127
|
+
const constraints = constraint.split(",");
|
|
128
|
+
version = semver.coerce(version)?.version ?? version;
|
|
129
|
+
|
|
130
|
+
// each constraint needs to be satisfied
|
|
131
|
+
return constraints.every((c) => {
|
|
132
|
+
const parsed = parseConstraint(c);
|
|
133
|
+
|
|
134
|
+
const cleanedParsedVersion =
|
|
135
|
+
semver.coerce(parsed.version)?.version ?? parsed.version;
|
|
136
|
+
|
|
137
|
+
switch (parsed.operator) {
|
|
138
|
+
case "=":
|
|
139
|
+
return version === cleanedParsedVersion;
|
|
140
|
+
case "!=":
|
|
141
|
+
return version !== cleanedParsedVersion;
|
|
142
|
+
case "~>": {
|
|
143
|
+
// allows rightmost version component to increment
|
|
144
|
+
|
|
145
|
+
const parts = parsed.version.split(".");
|
|
146
|
+
const minorSpecified = parts.length === 2;
|
|
147
|
+
const majorIsZero = parts[0] === "0";
|
|
148
|
+
|
|
149
|
+
// ~>2.0 which allows 2.1 and 2.1.1 needs special handling as
|
|
150
|
+
// npm semver handles "~" differently for ~2.0 than for ~2 or ~2.1.0
|
|
151
|
+
// So we need to use "^" (e.g. ^2.0) for this case
|
|
152
|
+
// see: https://github.com/npm/node-semver/issues/11
|
|
153
|
+
const allowMinorAndPatchOnly = minorSpecified;
|
|
154
|
+
|
|
155
|
+
let range = allowMinorAndPatchOnly
|
|
156
|
+
? \`^\${parsed.version}\`
|
|
157
|
+
: \`~\${parsed.version}\`;
|
|
158
|
+
|
|
159
|
+
// versions below 1.0 are treated a bit differently in NPM than in Terraform
|
|
160
|
+
// meaning that NPMs ^0.4 doesn't allow 0.55 while TFs ~>0.4 allows 0.55
|
|
161
|
+
if (majorIsZero && minorSpecified) {
|
|
162
|
+
range = \`>=\${parsed.version} <1.0.0\`;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return semver.satisfies(version, range);
|
|
166
|
+
}
|
|
167
|
+
case ">=":
|
|
168
|
+
return semver.gte(version, cleanedParsedVersion);
|
|
169
|
+
case "<=":
|
|
170
|
+
return semver.lte(version, cleanedParsedVersion);
|
|
171
|
+
case ">":
|
|
172
|
+
return semver.gt(version, cleanedParsedVersion);
|
|
173
|
+
case "<":
|
|
174
|
+
return semver.lt(version, cleanedParsedVersion);
|
|
175
|
+
default:
|
|
176
|
+
throw Errors.External(
|
|
177
|
+
\`Unknown constraint operator: \${parsed.operator} in version constraint \${constraint}\`
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
`;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.CheckForUpgradesScriptFile = CheckForUpgradesScriptFile;
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZm9yLXVwZ3JhZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILG1DQUE4RDtBQVE5RCxNQUFhLDBCQUEyQixTQUFRLGlCQUFRO0lBR3RELFlBQ0UsT0FBb0IsRUFDcEIsT0FBMEM7UUFFMUMsS0FBSyxDQUFDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxRQUFtQjtRQUM3QyxJQUFJLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQ3hELElBQUksQ0FBQyxPQUFPLENBQ3dCLENBQUM7UUFFdkMsMERBQTBEO1FBQzFELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsY0FBYyxHQUFHLGFBQWEsY0FBYyxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUVELE9BQU87Ozs7Ozs7Ozs7Ozs7OztzQkFlVyxlQUFlOzRCQUNULGNBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpSnpDLENBQUM7SUFDQSxDQUFDO0NBQ0Y7QUExTEQsZ0VBMExDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBGaWxlQmFzZSwgRmlsZUJhc2VPcHRpb25zLCBJUmVzb2x2ZXIgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gXCJwcm9qZW4vbGliL2phdmFzY3JpcHRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZU9wdGlvbnMgZXh0ZW5kcyBGaWxlQmFzZU9wdGlvbnMge1xuICBmcXByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBwcm92aWRlclZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9uczogQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IE5vZGVQcm9qZWN0LFxuICAgIG9wdGlvbnM6IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlT3B0aW9uc1xuICApIHtcbiAgICBzdXBlcihwcm9qZWN0LCBcInNjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzLmpzXCIsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBwcm9qZWN0LmFkZERldkRlcHMoXCJzZW12ZXJAXjcuNS4zXCIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KHJlc29sdmVyOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCB7IHByb3ZpZGVyVmVyc2lvbiwgZnFwcm92aWRlck5hbWUgfSA9IHJlc29sdmVyLnJlc29sdmUoXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApIGFzIENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlT3B0aW9ucztcblxuICAgIC8vIGF3cyAtPiBoYXNoaWNvcnAvYXdzIChlbHNlIHRoZSByZWdpc3RyeSBBUEkgY2FsbCBmYWlscylcbiAgICBpZiAoIWZxcHJvdmlkZXJOYW1lLmluY2x1ZGVzKFwiL1wiKSkge1xuICAgICAgZnFwcm92aWRlck5hbWUgPSBgaGFzaGljb3JwLyR7ZnFwcm92aWRlck5hbWV9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYFxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuY29uc3Qgc2VtdmVyID0gcmVxdWlyZShcInNlbXZlclwiKTtcbmNvbnN0IGFjdGlvbnMgPSByZXF1aXJlKFwiQGFjdGlvbnMvY29yZVwiKTtcblxuLy8gQ29kZSBpcyBpbmxpbmVkIGJlbG93LCBhcyB0aGlzIGltcG9ydCByZXF1aXJlcyB1cyB0byBhZGQgYWxsIGRldiBkZXBlbmRlbmNpZXMgb2YgY2RrdGYtY2xpIGFzIHdlJ3JlIG5vdFxuLy8gdXNpbmcgdGhlIGJ1bmRsZS4gQSBiZXR0ZXIgYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gcmVmYWN0b3IgdGhpcyBtZXRob2QgdG8gbW92ZSB0byBpdHMgb3duIHBhY2thZ2UsIHRoYXRcbi8vIHRoZSBjZGt0Zi1jbGkgYW5kIG90aGVycyBjYW4gdXNlICh3ZSBoYXZlIHRoZSBzYW1lIFwicHJvYmxlbVwiIHdpdGggc29tZSBvdGhlciBjb2RlIGluIGNka3RmLCBjZGt0Zi1jbGkgYW5kXG4vLyB0aGUgQGNka3RuL3Byb3ZpZGVyLWdlbmVyYXRvciBwYWNrYWdlLCB0b28pXG4vLyBjb25zdCB7IHZlcnNpb25NYXRjaGVzQ29uc3RyYWludCB9ID0gcmVxdWlyZSgnY2RrdGYtY2xpL2xpYi9kZXBlbmRlbmNpZXMvdmVyc2lvbi1jb25zdHJhaW50cycpO1xuXG4vLyBzZXQgYnkgdGhlIHByb2plbiBmaWxlIHRoYXQgZ2VuZXJhdGVzIHRoaXMgc2NyaXB0XG5jb25zdCBDT05TVFJBSU5UID0gXCIke3Byb3ZpZGVyVmVyc2lvbn1cIjtcbmNvbnN0IEZRX1BST1ZJREVSX05BTUUgPSBcIiR7ZnFwcm92aWRlck5hbWV9XCI7XG5cbihhc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBpZiAoYXdhaXQgbmV3ZXJNYXRjaGluZ1Byb3ZpZGVyVmVyc2lvbkV4aXN0cygpKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcXGBGb3VuZCBuZXdlciBUZXJyYWZvcm0gcHJvdmlkZXIgdmVyc2lvbiBtYXRjaGluZyB0aGUgY3VycmVudCBjb25zdHJhaW50OiBcXCR7Q09OU1RSQUlOVH1cXGBcbiAgICApO1xuICAgIHNldEdpdGh1YlN0ZXBPdXRwdXQoXCJuZXdfdmVyc2lvblwiLCBcImF2YWlsYWJsZVwiKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhcIk5vIGNoYW5nZXMgZGV0ZWN0ZWQuXCIpO1xuICAgIHNldEdpdGh1YlN0ZXBPdXRwdXQoXCJuZXdfdmVyc2lvblwiLCBcInVuYXZhaWxhYmxlXCIpO1xuICB9XG59KSgpO1xuXG5mdW5jdGlvbiBzZXRHaXRodWJTdGVwT3V0cHV0KG5hbWUsIHZhbHVlKSB7XG4gIGFjdGlvbnMuc2V0T3V0cHV0KG5hbWUsIHZhbHVlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbmV3ZXJNYXRjaGluZ1Byb3ZpZGVyVmVyc2lvbkV4aXN0cygpIHtcbiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXG4gICAgXFxgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vdjIvcHJvdmlkZXJzL1xcJHtGUV9QUk9WSURFUl9OQU1FfS9wcm92aWRlci12ZXJzaW9uc1xcYFxuICApO1xuICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLmpzb24oKTtcblxuICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IGdldEN1cnJlbnRQcm92aWRlclZlcnNpb24oKTtcblxuICBjb25zdCBhdmFpbGFibGVWZXJzaW9ucyA9IGJvZHkuZGF0YS5tYXAoKGl0KSA9PiBpdC5hdHRyaWJ1dGVzLnZlcnNpb24pO1xuICBjb25zdCB2ZXJzaW9uc01hdGNoaW5nID0gYXZhaWxhYmxlVmVyc2lvbnMuZmlsdGVyKCh2KSA9PlxuICAgIHZlcnNpb25NYXRjaGVzQ29uc3RyYWludCh2LCBDT05TVFJBSU5UKVxuICApO1xuICBpZiAodmVyc2lvbnNNYXRjaGluZy5sZW5ndGggPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFxcYFVuZXhwZWN0ZWQgRXJyb3I6IEZvdW5kIG5vIG1hdGNoaW5nIHZlcnNpb25zIGZvciBjb25zdHJhaW50IFxcJHtDT05TVFJBSU5UfSBpbiBbXFwke2F2YWlsYWJsZVZlcnNpb25zLmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKX1dXFxgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25zR3JlYXRlclRoYW5DdXJyZW50ID0gdmVyc2lvbnNNYXRjaGluZy5maWx0ZXIoKHYpID0+XG4gICAgc2VtdmVyLmd0KHYsIGN1cnJlbnRWZXJzaW9uKVxuICApO1xuICBpZiAodmVyc2lvbnNHcmVhdGVyVGhhbkN1cnJlbnQubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXFxgT25lIG9yIG1vcmUgbWF0Y2hpbmcgdmVyc2lvbnMgKFxcJHtDT05TVFJBSU5UfSkgYXJlIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCB2ZXJzaW9uIChcXCR7Y3VycmVudFZlcnNpb259KTogW1xcJHt2ZXJzaW9uc0dyZWF0ZXJUaGFuQ3VycmVudC5qb2luKFxuICAgICAgICBcIiwgXCJcbiAgICAgICl9XVxcYFxuICAgICk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcXGBGb3VuZCBubyBtYXRjaGluZyB2ZXJzaW9ucyAoXFwke0NPTlNUUkFJTlR9KSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgdmVyc2lvbiAoXFwke2N1cnJlbnRWZXJzaW9ufSkuIE1hdGNoaW5nIHZlcnNpb25zOiBbXFwke3ZlcnNpb25zTWF0Y2hpbmcuam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApfV1cXGBcbiAgICApO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gZS5nLiBjZGt0ZiAwLjEyLnggLT4gMC4xMy54IGJ1dCBub3QgMC4xMi55IC0+IDAuMTIuelxuYXN5bmMgZnVuY3Rpb24gY2RrdGZWZXJzaW9uTWFqb3JDaGFuZ2VkKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoXCJ0b2RvIGltcGxlbWVudFwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q3VycmVudFByb3ZpZGVyVmVyc2lvbigpIHtcbiAgY29uc3QganNvbiA9IHJlcXVpcmUoXCIuLi9zcmMvdmVyc2lvbi5qc29uXCIpO1xuICByZXR1cm4ganNvbltcXGByZWdpc3RyeS50ZXJyYWZvcm0uaW8vXFwke0ZRX1BST1ZJREVSX05BTUUudG9Mb3dlckNhc2UoKX1cXGBdO1xufVxuXG4vLyBTRUUgTk9USUNFIEFUIFRIRSBUT1AgV0hZIFRISVMgSVMgSU5MSU5FRCBDVVJSRU5UTFlcbi8vIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLWNvbnN0cnVjdHMvY2RrLXRlcnJhaW4vYmxvYi9kZjg1OGNjZjRhYzcxYTE2OGUzNjM2ZjA1M2M2NzQzMzI0Yzk4MzMyL3BhY2thZ2VzLyU0MGNka3RmL2NsaS1jb3JlL3NyYy9saWIvZGVwZW5kZW5jaWVzL3ZlcnNpb24tY29uc3RyYWludHMudHNcbi8vIGFuZCBjb252ZXJ0ZWQgdG8gSmF2YVNjcmlwdFxuXG4vLyBjb25zdHJhaW50cyBjYW4gYmUgcHJlZml4ZWQgd2l0aCBcIn4+XCIsIFwiPlwiLCBcIjxcIiwgXCI9XCIsIFwiPj1cIiwgXCI8PVwiIG9yIFwiIT1cIlxuLy8gbm8gcHJlZml4IG1lYW5zIFwiPVwiXG5mdW5jdGlvbiBwYXJzZUNvbnN0cmFpbnQoY29uc3RyYWludCkge1xuICBjb25zdCBjbGVhbmVkID0gY29uc3RyYWludC50cmltKCk7XG5cbiAgY29uc3Qgb3BlcmF0b3IgPSBjbGVhbmVkLm1hdGNoKC8ofj58Pj18PD18Pnw8fD18IT0pLyk/LlswXSB8fCBcIj1cIjtcbiAgY29uc3QgdmVyc2lvbiA9IGNsZWFuZWQucmVwbGFjZShvcGVyYXRvciwgXCJcIikudHJpbSgpO1xuXG4gIHJldHVybiB7XG4gICAgb3BlcmF0b3IsXG4gICAgdmVyc2lvbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gdmVyc2lvbk1hdGNoZXNDb25zdHJhaW50KHZlcnNpb24sIGNvbnN0cmFpbnQpIHtcbiAgLy8gaHR0cHM6Ly93d3cudGVycmFmb3JtLmlvL2xhbmd1YWdlL2V4cHJlc3Npb25zL3ZlcnNpb24tY29uc3RyYWludHNcbiAgLy8gdmVyc2lvbiBjYW4gY29udGFpbiBtdWx0aXBsZSBjb25zdHJhaW50cyBzcGxpdCBieSBcIixcIlxuXG4gIGNvbnN0IGNvbnN0cmFpbnRzID0gY29uc3RyYWludC5zcGxpdChcIixcIik7XG4gIHZlcnNpb24gPSBzZW12ZXIuY29lcmNlKHZlcnNpb24pPy52ZXJzaW9uID8/IHZlcnNpb247XG5cbiAgLy8gZWFjaCBjb25zdHJhaW50IG5lZWRzIHRvIGJlIHNhdGlzZmllZFxuICByZXR1cm4gY29uc3RyYWludHMuZXZlcnkoKGMpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvbnN0cmFpbnQoYyk7XG5cbiAgICBjb25zdCBjbGVhbmVkUGFyc2VkVmVyc2lvbiA9XG4gICAgICBzZW12ZXIuY29lcmNlKHBhcnNlZC52ZXJzaW9uKT8udmVyc2lvbiA/PyBwYXJzZWQudmVyc2lvbjtcblxuICAgIHN3aXRjaCAocGFyc2VkLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIFwiPVwiOlxuICAgICAgICByZXR1cm4gdmVyc2lvbiA9PT0gY2xlYW5lZFBhcnNlZFZlcnNpb247XG4gICAgICBjYXNlIFwiIT1cIjpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24gIT09IGNsZWFuZWRQYXJzZWRWZXJzaW9uO1xuICAgICAgY2FzZSBcIn4+XCI6IHtcbiAgICAgICAgLy8gYWxsb3dzIHJpZ2h0bW9zdCB2ZXJzaW9uIGNvbXBvbmVudCB0byBpbmNyZW1lbnRcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHBhcnNlZC52ZXJzaW9uLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgY29uc3QgbWlub3JTcGVjaWZpZWQgPSBwYXJ0cy5sZW5ndGggPT09IDI7XG4gICAgICAgIGNvbnN0IG1ham9ySXNaZXJvID0gcGFydHNbMF0gPT09IFwiMFwiO1xuXG4gICAgICAgIC8vIH4+Mi4wIHdoaWNoIGFsbG93cyAyLjEgYW5kIDIuMS4xIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcgYXNcbiAgICAgICAgLy8gbnBtIHNlbXZlciBoYW5kbGVzIFwiflwiIGRpZmZlcmVudGx5IGZvciB+Mi4wIHRoYW4gZm9yIH4yIG9yIH4yLjEuMFxuICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHVzZSBcIl5cIiAoZS5nLiBeMi4wKSBmb3IgdGhpcyBjYXNlXG4gICAgICAgIC8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL25wbS9ub2RlLXNlbXZlci9pc3N1ZXMvMTFcbiAgICAgICAgY29uc3QgYWxsb3dNaW5vckFuZFBhdGNoT25seSA9IG1pbm9yU3BlY2lmaWVkO1xuXG4gICAgICAgIGxldCByYW5nZSA9IGFsbG93TWlub3JBbmRQYXRjaE9ubHlcbiAgICAgICAgICA/IFxcYF5cXCR7cGFyc2VkLnZlcnNpb259XFxgXG4gICAgICAgICAgOiBcXGB+XFwke3BhcnNlZC52ZXJzaW9ufVxcYDtcblxuICAgICAgICAvLyB2ZXJzaW9ucyBiZWxvdyAxLjAgYXJlIHRyZWF0ZWQgYSBiaXQgZGlmZmVyZW50bHkgaW4gTlBNIHRoYW4gaW4gVGVycmFmb3JtXG4gICAgICAgIC8vIG1lYW5pbmcgdGhhdCBOUE1zIF4wLjQgZG9lc24ndCBhbGxvdyAwLjU1IHdoaWxlIFRGcyB+PjAuNCBhbGxvd3MgMC41NVxuICAgICAgICBpZiAobWFqb3JJc1plcm8gJiYgbWlub3JTcGVjaWZpZWQpIHtcbiAgICAgICAgICByYW5nZSA9IFxcYD49XFwke3BhcnNlZC52ZXJzaW9ufSA8MS4wLjBcXGA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VtdmVyLnNhdGlzZmllcyh2ZXJzaW9uLCByYW5nZSk7XG4gICAgICB9XG4gICAgICBjYXNlIFwiPj1cIjpcbiAgICAgICAgcmV0dXJuIHNlbXZlci5ndGUodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgY2FzZSBcIjw9XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIubHRlKHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGNhc2UgXCI+XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIuZ3QodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgY2FzZSBcIjxcIjpcbiAgICAgICAgcmV0dXJuIHNlbXZlci5sdCh2ZXJzaW9uLCBjbGVhbmVkUGFyc2VkVmVyc2lvbik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBFcnJvcnMuRXh0ZXJuYWwoXG4gICAgICAgICAgXFxgVW5rbm93biBjb25zdHJhaW50IG9wZXJhdG9yOiBcXCR7cGFyc2VkLm9wZXJhdG9yfSBpbiB2ZXJzaW9uIGNvbnN0cmFpbnQgXFwke2NvbnN0cmFpbnR9XFxgXG4gICAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cbmA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { FileBase, FileBaseOptions } from "projen";
|
|
6
|
+
import { NodeProject } from "projen/lib/javascript";
|
|
7
|
+
export interface ShouldReleaseScriptFileOptions extends FileBaseOptions {
|
|
8
|
+
}
|
|
9
|
+
export declare class ShouldReleaseScriptFile extends FileBase {
|
|
10
|
+
protected readonly options: ShouldReleaseScriptFileOptions;
|
|
11
|
+
constructor(project: NodeProject, options: ShouldReleaseScriptFileOptions);
|
|
12
|
+
protected synthesizeContent(): string | undefined;
|
|
13
|
+
}
|