From a70bceb6022fcad08b35eb6742c24e1223f57c93 Mon Sep 17 00:00:00 2001 From: Niranjan Jayakar Date: Wed, 11 Nov 2020 12:39:46 +0000 Subject: [PATCH 01/41] chore(pkglint): rule to ensure that only allowed packages are public (#11317) In the v2 branch, most packages are private except a handful. Update the pkglint rule to carry an allowlist on the set of packages that should be private. Prevents accidentally publishing new packages. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- tools/pkglint/lib/rules.ts | 45 +++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index b3ae82fce7160..c669ce1efef31 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -1460,24 +1460,43 @@ export class JestSetup extends ValidationRule { export class UbergenPackageVisibility extends ValidationRule { public readonly name = 'ubergen/package-visibility'; + private readonly publicPackages = ['aws-cdk-lib', 'cdk', 'aws-cdk', 'awslint']; public validate(pkg: PackageJson): void { // eslint-disable-next-line @typescript-eslint/no-require-imports const releaseJson = require(`${__dirname}/../../../release.json`); if (releaseJson.majorVersion === 2) { - // skip in v2 for now - return; - } - if (pkg.json.private && !pkg.json.ubergen?.exclude) { - pkg.report({ - ruleName: this.name, - message: 'ubergen.exclude must be configured for private packages', - fix: () => { - pkg.json.ubergen = { - exclude: true, - }; - }, - }); + // Only packages in the publicPackages list should be "public". Everything else should be private. + if (this.publicPackages.includes(pkg.json.name) && pkg.json.private === true) { + pkg.report({ + ruleName: this.name, + message: 'Package must be public', + fix: () => { + delete pkg.json.private; + }, + }); + } else if (!this.publicPackages.includes(pkg.json.name) && pkg.json.private !== true) { + pkg.report({ + ruleName: this.name, + message: 'Package must not be public', + fix: () => { + delete pkg.json.private; + pkg.json.private = true; + }, + }); + } + } else { + if (pkg.json.private && !pkg.json.ubergen?.exclude) { + pkg.report({ + ruleName: this.name, + message: 'ubergen.exclude must be configured for private packages', + fix: () => { + pkg.json.ubergen = { + exclude: true, + }; + }, + }); + } } } } From f251ce656e1786e49a078d797883ed2753939ecb Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Wed, 11 Nov 2020 18:30:36 +0100 Subject: [PATCH 02/41] chore: npm-check-updates && yarn upgrade (#11418) Ran npm-check-updates and yarn upgrade to keep the `yarn.lock` file up-to-date. --- .../package.json | 8 +- .../aws-global-table-coordinator/package.json | 6 +- scripts/script-tests/package.json | 2 +- tools/cdk-build-tools/package.json | 4 +- tools/eslint-plugin-cdk/package.json | 4 +- yarn.lock | 155 ++++++++++++------ 6 files changed, 116 insertions(+), 63 deletions(-) diff --git a/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json b/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json index 9f25bfc9d6683..85da591914c1d 100644 --- a/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json +++ b/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json @@ -29,15 +29,15 @@ "devDependencies": { "aws-sdk": "^2.596.0", "aws-sdk-mock": "^5.1.0", - "eslint": "^7.12.1", + "eslint": "^7.13.0", "eslint-config-standard": "^14.1.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.2", + "eslint-plugin-standard": "^4.1.0", "jest": "^26.6.3", "lambda-tester": "^3.6.0", - "nock": "^13.0.4", - "ts-jest": "^26.4.3" + "nock": "^13.0.5", + "ts-jest": "^26.4.4" } } diff --git a/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json b/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json index e19b1fe502b2d..2dc031452ab61 100644 --- a/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json +++ b/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json @@ -29,14 +29,14 @@ "devDependencies": { "aws-sdk": "^2.596.0", "aws-sdk-mock": "^5.1.0", - "eslint": "^7.12.1", + "eslint": "^7.13.0", "eslint-config-standard": "^14.1.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.2", + "eslint-plugin-standard": "^4.1.0", "jest": "^26.6.3", "lambda-tester": "^3.6.0", - "nock": "^13.0.4" + "nock": "^13.0.5" } } diff --git a/scripts/script-tests/package.json b/scripts/script-tests/package.json index 2c6d0ff48e94a..91bca5735c77a 100644 --- a/scripts/script-tests/package.json +++ b/scripts/script-tests/package.json @@ -10,6 +10,6 @@ "build+test+package": "npm run build+test" }, "devDependencies": { - "jest": "^26.6.2" + "jest": "^26.6.3" } } diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 9504a4075cb86..5877dba95bcef 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -40,11 +40,11 @@ }, "dependencies": { "@typescript-eslint/eslint-plugin": "^4.7.0", - "@typescript-eslint/parser": "^4.6.1", + "@typescript-eslint/parser": "^4.7.0", "eslint-plugin-cdk": "0.0.0", "awslint": "0.0.0", "colors": "^1.4.0", - "eslint": "^7.12.1", + "eslint": "^7.13.0", "eslint-import-resolver-node": "^0.3.4", "eslint-import-resolver-typescript": "^2.3.0", "eslint-plugin-import": "^2.22.1", diff --git a/tools/eslint-plugin-cdk/package.json b/tools/eslint-plugin-cdk/package.json index 24c0c14813522..e07a275ab288a 100644 --- a/tools/eslint-plugin-cdk/package.json +++ b/tools/eslint-plugin-cdk/package.json @@ -21,8 +21,8 @@ "typescript": "~3.9.7" }, "dependencies": { - "@typescript-eslint/parser": "^4.6.1", - "eslint": "^7.12.1", + "@typescript-eslint/parser": "^4.7.0", + "eslint": "^7.13.0", "fs-extra": "^9.0.1" }, "jest": { diff --git a/yarn.lock b/yarn.lock index aae1f4a455d64..d401cd2040c16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3313,23 +3313,15 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.6.1.tgz#b801bff67b536ecc4a840ac9289ba2be57e02428" - integrity sha512-lScKRPt1wM9UwyKkGKyQDqf0bh6jm8DQ5iN37urRIXDm16GEv+HGEmum2Fc423xlk5NUOkOpfTnKZc/tqKZkDQ== - dependencies: - "@typescript-eslint/scope-manager" "4.6.1" - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/typescript-estree" "4.6.1" - debug "^4.1.1" - -"@typescript-eslint/scope-manager@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.6.1.tgz#21872b91cbf7adfc7083f17b8041149148baf992" - integrity sha512-f95+80r6VdINYscJY1KDUEDcxZ3prAWHulL4qRDfNVD0I5QAVSGqFkwHERDoLYJJWmEAkUMdQVvx7/c2Hp+Bjg== +"@typescript-eslint/parser@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.7.0.tgz#44bdab0f788b478178368baa65d3365fdc63da1c" + integrity sha512-+meGV8bMP1sJHBI2AFq1GeTwofcGiur8LoIr6v+rEmD9knyCqDlrQcFHR0KDDfldHIFDU/enZ53fla6ReF4wRw== dependencies: - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/visitor-keys" "4.6.1" + "@typescript-eslint/scope-manager" "4.7.0" + "@typescript-eslint/types" "4.7.0" + "@typescript-eslint/typescript-estree" "4.7.0" + debug "^4.1.1" "@typescript-eslint/scope-manager@4.7.0": version "4.7.0" @@ -3339,30 +3331,11 @@ "@typescript-eslint/types" "4.7.0" "@typescript-eslint/visitor-keys" "4.7.0" -"@typescript-eslint/types@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.6.1.tgz#d3ad7478f53f22e7339dc006ab61aac131231552" - integrity sha512-k2ZCHhJ96YZyPIsykickez+OMHkz06xppVLfJ+DY90i532/Cx2Z+HiRMH8YZQo7a4zVd/TwNBuRCdXlGK4yo8w== - "@typescript-eslint/types@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.7.0.tgz#5e95ef5c740f43d942542b35811f87b62fccca69" integrity sha512-uLszFe0wExJc+I7q0Z/+BnP7wao/kzX0hB5vJn4LIgrfrMLgnB2UXoReV19lkJQS1a1mHWGGODSxnBx6JQC3Sg== -"@typescript-eslint/typescript-estree@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.6.1.tgz#6025cce724329413f57e4959b2d676fceeca246f" - integrity sha512-/J/kxiyjQQKqEr5kuKLNQ1Finpfb8gf/NpbwqFFYEBjxOsZ621r9AqwS9UDRA1Rrr/eneX/YsbPAIhU2rFLjXQ== - dependencies: - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/visitor-keys" "4.6.1" - debug "^4.1.1" - globby "^11.0.1" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - "@typescript-eslint/typescript-estree@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.7.0.tgz#539531167f05ba20eb0b6785567076679e29d393" @@ -3377,14 +3350,6 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.6.1.tgz#6b125883402d8939df7b54528d879e88f7ba3614" - integrity sha512-owABze4toX7QXwOLT3/D5a8NecZEjEWU1srqxENTfqsY3bwVnl3YYbOh6s1rp2wQKO9RTHFGjKes08FgE7SVMw== - dependencies: - "@typescript-eslint/types" "4.6.1" - eslint-visitor-keys "^2.0.0" - "@typescript-eslint/visitor-keys@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.7.0.tgz#6783824f22acfc49e754970ed21b88ac03b80e6f" @@ -3610,6 +3575,11 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +app-root-path@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" + integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== + append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -3877,7 +3847,7 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.789.0: +aws-sdk@^2.596.0, aws-sdk@^2.637.0, aws-sdk@^2.789.0: version "2.789.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.789.0.tgz#a1b0a8b8b4227a7947c04e8d75239ba27d2deb93" integrity sha512-Jqq+M4N0EgkyS4OPf05UHa7IWUcpuBdnpwMRgBnu4Ju6PxpOTh1UQcmYepVmIN3m6YVpLwFctEYzAMJFM3LT1A== @@ -5995,11 +5965,21 @@ dotenv-expand@^5.1.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== +dotenv-json@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dotenv-json/-/dotenv-json-1.0.0.tgz#fc7f672aafea04bed33818733b9f94662332815c" + integrity sha512-jAssr+6r4nKhKRudQ0HOzMskOFFi9+ubXWwmrSGJFgTvpjyPXCXsCsYbjif6mXp7uxA7xY3/LGaiTQukZzSbOQ== + dotenv@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== +dotenv@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + dotgitignore@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" @@ -6269,6 +6249,11 @@ escodegen@^1.11.0, escodegen@^1.14.1, escodegen@^1.8.1: optionalDependencies: source-map "~0.6.1" +eslint-config-standard@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" + integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== + eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" @@ -6296,6 +6281,14 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + eslint-plugin-import@^2.22.1: version "2.22.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" @@ -6315,11 +6308,33 @@ eslint-plugin-import@^2.22.1: resolve "^1.17.0" tsconfig-paths "^3.9.0" +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-promise@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" + integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== + eslint-plugin-rulesdir@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-rulesdir/-/eslint-plugin-rulesdir-0.1.0.tgz#ad144d7e98464fda82963eff3fab331aecb2bf08" integrity sha1-rRRNfphGT9qClj7/P6szGuyyvwg= +eslint-plugin-standard@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -6345,10 +6360,10 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.12.1: - version "7.12.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.12.1.tgz#bd9a81fa67a6cfd51656cdb88812ce49ccec5801" - integrity sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg== +eslint@^7.13.0: + version "7.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.13.0.tgz#7f180126c0dcdef327bfb54b211d7802decc08da" + integrity sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ== dependencies: "@babel/code-frame" "^7.0.0" "@eslint/eslintrc" "^0.2.1" @@ -7631,7 +7646,7 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -7863,6 +7878,13 @@ is-core-module@^2.0.0: dependencies: has "^1.0.3" +is-core-module@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" + integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8707,7 +8729,7 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^26.6.2, jest@^26.6.3: +jest@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== @@ -9039,6 +9061,24 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +lambda-leak@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lambda-leak/-/lambda-leak-2.0.0.tgz#771985d3628487f6e885afae2b54510dcfb2cd7e" + integrity sha1-dxmF02KEh/boha+uK1RRDc+yzX4= + +lambda-tester@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/lambda-tester/-/lambda-tester-3.6.0.tgz#ceb7d4f4f0da768487a05cff37dcd088508b5247" + integrity sha512-F2ZTGWCLyIR95o/jWK46V/WnOCFAEUG/m/V7/CLhPJ7PCM+pror1rZ6ujP3TkItSGxUfpJi0kqwidw+M/nEqWw== + dependencies: + app-root-path "^2.2.1" + dotenv "^8.0.0" + dotenv-json "^1.0.0" + lambda-leak "^2.0.0" + semver "^6.1.1" + uuid "^3.3.2" + vandium-utils "^1.1.1" + lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" @@ -11984,6 +12024,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13 dependencies: path-parse "^1.0.6" +resolve@^1.10.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + resolve@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" @@ -12184,7 +12232,7 @@ semver@7.x, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -13797,6 +13845,11 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +vandium-utils@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vandium-utils/-/vandium-utils-1.2.0.tgz#44735de4b7641a05de59ebe945f174e582db4f59" + integrity sha1-RHNd5LdkGgXeWevpRfF05YLbT1k= + vendors@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" From ec72c859c31a069406994433fe430f56ff0e5ff3 Mon Sep 17 00:00:00 2001 From: Alban Esc Date: Wed, 11 Nov 2020 09:58:53 -0800 Subject: [PATCH 03/41] feat(efs): import access point - `fromAccessPointAttributes()` (#10712) Cannot use `efs.AccessPoint.fromAccessPointId()` with `lambda.FileSystem.fromEfsAccessPoint()`. the former returns an `IAccessPoint` when the later expect an `AccessPoint`. I think following the CDK guidelines, `lambda.FileSystem.fromEfsAccessPoint()` should expect an `IAccessPoint`, not an `AccessPoint`. Argument of type `IAccessPoint` is not assignable to parameter of type `AccessPoint`. ### Solution ---- Add a new import method to the `AccessPoint` class called `fromAccessPointAttributes()` allowing to pass a fileSystem as an attribute. Closes #10711. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-efs/README.md | 19 ++ packages/@aws-cdk/aws-efs/lib/access-point.ts | 123 ++++++++- .../@aws-cdk/aws-efs/lib/efs-file-system.ts | 53 +++- .../aws-efs/test/access-point.test.ts | 85 +++++- .../@aws-cdk/aws-lambda/lib/filesystem.ts | 2 +- .../integ.lambda.filesystem.expected.json | 258 +++++++++++++++++- .../test/integ.lambda.filesystem.ts | 42 ++- 7 files changed, 542 insertions(+), 40 deletions(-) diff --git a/packages/@aws-cdk/aws-efs/README.md b/packages/@aws-cdk/aws-efs/README.md index 853ae097327cb..6a598f1146624 100644 --- a/packages/@aws-cdk/aws-efs/README.md +++ b/packages/@aws-cdk/aws-efs/README.md @@ -56,6 +56,25 @@ the access point. You may specify custom path with the `path` property. If `path created with the settings defined in the `creationInfo`. See [Creating Access Points](https://docs.aws.amazon.com/efs/latest/ug/create-access-point.html) for more details. +Any access point that has been created outside the stack can be imported into your CDK app. + +Use the `fromAccessPointAttributes()` API to import an existing access point. + +```ts +efs.AccessPoint.fromAccessPointAttributes(this, 'ap', { + accessPointArn: 'fsap-1293c4d9832fo0912', + fileSystem: efs.FileSystem.fromFileSystemAttributes(this, 'efs', { + fileSystemId: 'fs-099d3e2f', + securityGroup: SecurityGroup.fromSecurityGroupId(this, 'sg', 'sg-51530134'), + }), +}); +``` + +⚠️ Notice: When importing an Access Point using `fromAccessPointAttributes()`, you must make sure the mount targets are deployed and their lifecycle state is `available`. Otherwise, you may encounter the following error when deploying: +> EFS file system referenced by access point has +mount targets created in all availability zones the function will execute in, but not all are in the available life cycle +state yet. Please wait for them to become available and try the request again. + ### Connecting To control who can access the EFS, use the `.connections` attribute. EFS has diff --git a/packages/@aws-cdk/aws-efs/lib/access-point.ts b/packages/@aws-cdk/aws-efs/lib/access-point.ts index 7f43d88523bf1..29d22a5ec6032 100644 --- a/packages/@aws-cdk/aws-efs/lib/access-point.ts +++ b/packages/@aws-cdk/aws-efs/lib/access-point.ts @@ -20,11 +20,16 @@ export interface IAccessPoint extends IResource { * @attribute */ readonly accessPointArn: string; + + /** + * The efs filesystem + */ + readonly fileSystem: IFileSystem; } /** * Permissions as POSIX ACL - */ +*/ export interface Acl { /** * Specifies the POSIX user ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). @@ -109,23 +114,71 @@ export interface AccessPointProps extends AccessPointOptions { readonly fileSystem: IFileSystem; } +/** + * Attributes that can be specified when importing an AccessPoint + */ +export interface AccessPointAttributes { + /** + * The ID of the AccessPoint + * One of this, of {@link accessPointArn} is required + * + * @default - determined based on accessPointArn + */ + readonly accessPointId?: string; + + /** + * The ARN of the AccessPoint + * One of this, of {@link accessPointId} is required + * + * @default - determined based on accessPointId + */ + readonly accessPointArn?: string; + + /** + * The EFS filesystem + * + * @default - no EFS filesystem + */ + readonly fileSystem?: IFileSystem; +} + +abstract class AccessPointBase extends Resource implements IAccessPoint { + /** + * The ARN of the Access Point + * @attribute + */ + public abstract readonly accessPointArn: string; + + /** + * The ID of the Access Point + * @attribute + */ + public abstract readonly accessPointId: string; + + /** + * The filesystem of the access point + */ + public abstract readonly fileSystem: IFileSystem; +} + /** * Represents the AccessPoint */ -export class AccessPoint extends Resource implements IAccessPoint { +export class AccessPoint extends AccessPointBase { /** - * Import an existing Access Point + * Import an existing Access Point by attributes + */ + public static fromAccessPointAttributes(scope: Construct, id: string, attrs: AccessPointAttributes): IAccessPoint { + return new ImportedAccessPoint(scope, id, attrs); + } + + /** + * Import an existing Access Point by id */ public static fromAccessPointId(scope: Construct, id: string, accessPointId: string): IAccessPoint { - class Import extends Resource implements IAccessPoint { - public readonly accessPointId = accessPointId; - public readonly accessPointArn = Stack.of(scope).formatArn({ - service: 'elasticfilesystem', - resource: 'access-point', - resourceName: accessPointId, - }); - } - return new Import(scope, id); + return new ImportedAccessPoint(scope, id, { + accessPointId: accessPointId, + }); } /** @@ -174,3 +227,49 @@ export class AccessPoint extends Resource implements IAccessPoint { this.fileSystem = props.fileSystem; } } + +class ImportedAccessPoint extends AccessPointBase { + public readonly accessPointId: string; + public readonly accessPointArn: string; + private readonly _fileSystem?: IFileSystem; + + constructor(scope: Construct, id: string, attrs: AccessPointAttributes) { + super(scope, id); + + if (!attrs.accessPointId) { + if (!attrs.accessPointArn) { + throw new Error('One of accessPointId or AccessPointArn is required!'); + } + + this.accessPointArn = attrs.accessPointArn; + let maybeApId = Stack.of(scope).parseArn(attrs.accessPointArn).resourceName; + + if (!maybeApId) { + throw new Error('ARN for AccessPoint must provide the resource name.'); + } + + this.accessPointId = maybeApId; + } else { + if (attrs.accessPointArn) { + throw new Error('Only one of accessPointId or AccessPointArn can be provided!'); + } + + this.accessPointId = attrs.accessPointId; + this.accessPointArn = Stack.of(scope).formatArn({ + service: 'elasticfilesystem', + resource: 'access-point', + resourceName: attrs.accessPointId, + }); + } + + this._fileSystem = attrs.fileSystem; + } + + public get fileSystem() { + if (!this._fileSystem) { + throw new Error("fileSystem is not available when 'fromAccessPointId()' is used. Use 'fromAccessPointAttributes()' instead"); + } + + return this._fileSystem; + } +} diff --git a/packages/@aws-cdk/aws-efs/lib/efs-file-system.ts b/packages/@aws-cdk/aws-efs/lib/efs-file-system.ts index 2c28375667fe4..8572d85bf920d 100644 --- a/packages/@aws-cdk/aws-efs/lib/efs-file-system.ts +++ b/packages/@aws-cdk/aws-efs/lib/efs-file-system.ts @@ -206,28 +206,18 @@ export interface FileSystemAttributes { * @resource AWS::EFS::FileSystem */ export class FileSystem extends Resource implements IFileSystem { + /** + * The default port File System listens on. + */ + public static readonly DEFAULT_PORT: number = 2049; /** * Import an existing File System from the given properties. */ public static fromFileSystemAttributes(scope: Construct, id: string, attrs: FileSystemAttributes): IFileSystem { - class Import extends Resource implements IFileSystem { - public readonly fileSystemId = attrs.fileSystemId; - public readonly connections = new ec2.Connections({ - securityGroups: [attrs.securityGroup], - defaultPort: ec2.Port.tcp(FileSystem.DEFAULT_PORT), - }); - public readonly mountTargetsAvailable = new ConcreteDependable(); - } - - return new Import(scope, id); + return new ImportedFileSystem(scope, id, attrs); } - /** - * The default port File System listens on. - */ - private static readonly DEFAULT_PORT: number = 2049; - /** * The security groups/rules used to allow network connections to the file system. */ @@ -303,3 +293,36 @@ export class FileSystem extends Resource implements IFileSystem { }); } } + + +class ImportedFileSystem extends Resource implements IFileSystem { + /** + * The security groups/rules used to allow network connections to the file system. + */ + public readonly connections: ec2.Connections; + + /** + * @attribute + */ + public readonly fileSystemId: string; + + /** + * Dependable that can be depended upon to ensure the mount targets of the filesystem are ready + */ + public readonly mountTargetsAvailable: IDependable; + + constructor(scope: Construct, id: string, attrs: FileSystemAttributes) { + super(scope, id); + + this.fileSystemId = attrs.fileSystemId; + + this.connections = new ec2.Connections({ + securityGroups: [attrs.securityGroup], + defaultPort: ec2.Port.tcp(FileSystem.DEFAULT_PORT), + }); + + this.mountTargetsAvailable = new ConcreteDependable(); + } + + +} diff --git a/packages/@aws-cdk/aws-efs/test/access-point.test.ts b/packages/@aws-cdk/aws-efs/test/access-point.test.ts index 761594507c779..29770d2077d2f 100644 --- a/packages/@aws-cdk/aws-efs/test/access-point.test.ts +++ b/packages/@aws-cdk/aws-efs/test/access-point.test.ts @@ -31,7 +31,7 @@ test('new AccessPoint correctly', () => { expectCDK(stack).to(haveResource('AWS::EFS::AccessPoint')); }); -test('import correctly', () => { +test('import an AccessPoint using fromAccessPointId', () => { // WHEN const ap = new AccessPoint(stack, 'MyAccessPoint', { fileSystem, @@ -41,6 +41,87 @@ test('import correctly', () => { expect(imported.accessPointId).toEqual(ap.accessPointId); }); +test('import an AccessPoint using fromAccessPointId', () => { + // WHEN + const ap = new AccessPoint(stack, 'MyAccessPoint', { + fileSystem, + }); + const imported = AccessPoint.fromAccessPointId(stack, 'ImportedAccessPoint', ap.accessPointId); + // THEN + expect(() => imported.fileSystem).toThrow(/fileSystem is not available when 'fromAccessPointId\(\)' is used. Use 'fromAccessPointAttributes\(\)' instead/); +}); + +test('import an AccessPoint using fromAccessPointAttributes and the accessPointId', () => { + // WHEN + const ap = new AccessPoint(stack, 'MyAccessPoint', { + fileSystem, + }); + const imported = AccessPoint.fromAccessPointAttributes(stack, 'ImportedAccessPoint', { + accessPointId: ap.accessPointId, + fileSystem: fileSystem, + }); + // THEN + expect(imported.accessPointId).toEqual(ap.accessPointId); + expect(imported.accessPointArn).toEqual(ap.accessPointArn); + expect(imported.fileSystem).toEqual(ap.fileSystem); +}); + +test('import an AccessPoint using fromAccessPointAttributes and the accessPointArn', () => { + // WHEN + const ap = new AccessPoint(stack, 'MyAccessPoint', { + fileSystem, + }); + const imported = AccessPoint.fromAccessPointAttributes(stack, 'ImportedAccessPoint', { + accessPointArn: ap.accessPointArn, + fileSystem: fileSystem, + }); + // THEN + expect(imported.accessPointId).toEqual(ap.accessPointId); + expect(imported.accessPointArn).toEqual(ap.accessPointArn); + expect(imported.fileSystem).toEqual(ap.fileSystem); +}); + +test('import using accessPointArn', () => { + // WHEN + const ap = new AccessPoint(stack, 'MyAccessPoint', { + fileSystem, + }); + const imported = AccessPoint.fromAccessPointAttributes(stack, 'ImportedAccessPoint', { + accessPointArn: ap.accessPointArn, + fileSystem: fileSystem, + }); + // THEN + expect(imported.accessPointId).toEqual(ap.accessPointId); + expect(imported.accessPointArn).toEqual(ap.accessPointArn); + expect(imported.fileSystem).toEqual(ap.fileSystem); +}); + +test('throw when import using accessPointArn and accessPointId', () => { + // WHEN + const ap = new AccessPoint(stack, 'MyAccessPoint', { + fileSystem, + }); + + // THEN + expect(() => AccessPoint.fromAccessPointAttributes(stack, 'ImportedAccessPoint', { + accessPointArn: ap.accessPointArn, + accessPointId: ap.accessPointId, + fileSystem: fileSystem, + })).toThrow(/Only one of accessPointId or AccessPointArn can be provided!/); +}); + +test('throw when import without accessPointArn or accessPointId', () => { + // WHEN + new AccessPoint(stack, 'MyAccessPoint', { + fileSystem, + }); + + // THEN + expect(() => AccessPoint.fromAccessPointAttributes(stack, 'ImportedAccessPoint', { + fileSystem: fileSystem, + })).toThrow(/One of accessPointId or AccessPointArn is required!/); +}); + test('custom access point is created correctly', () => { // WHEN new AccessPoint(stack, 'MyAccessPoint', { @@ -83,4 +164,4 @@ test('custom access point is created correctly', () => { Path: '/export/share', }, })); -}); \ No newline at end of file +}); diff --git a/packages/@aws-cdk/aws-lambda/lib/filesystem.ts b/packages/@aws-cdk/aws-lambda/lib/filesystem.ts index 20b0cb1fc130d..388db50e045ec 100644 --- a/packages/@aws-cdk/aws-lambda/lib/filesystem.ts +++ b/packages/@aws-cdk/aws-lambda/lib/filesystem.ts @@ -50,7 +50,7 @@ export class FileSystem { * @param ap the Amazon EFS access point * @param mountPath the target path in the lambda runtime environment */ - public static fromEfsAccessPoint(ap: efs.AccessPoint, mountPath: string): FileSystem { + public static fromEfsAccessPoint(ap: efs.IAccessPoint, mountPath: string): FileSystem { return new FileSystem({ localMountPath: mountPath, arn: ap.accessPointArn, diff --git a/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.expected.json b/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.expected.json index ff7a04f8b7fd5..3d17a0e6ca6bf 100644 --- a/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.expected.json +++ b/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.expected.json @@ -736,7 +736,7 @@ "Type": "AWS::Lambda::Function", "Properties": { "Code": { - "ZipFile": "\nimport json\nimport os\nimport string\nimport random\nimport datetime\n\nMSG_FILE_PATH = '/mnt/msg/content'\n\ndef randomString(stringLength=10):\n letters = string.ascii_lowercase\n return ''.join(random.choice(letters) for i in range(stringLength))\n\ndef lambda_handler(event, context):\n with open(MSG_FILE_PATH, 'a') as f:\n f.write(f\"{datetime.datetime.utcnow():%Y-%m-%d-%H:%M:%S} \" + randomString(5) + ' ')\n\n file = open(MSG_FILE_PATH, \"r\")\n file_content = file.read()\n file.close()\n\n return {\n 'statusCode': 200,\n 'body': str(file_content)\n }\n " + "ZipFile": "\nimport json\nimport os\nimport string\nimport random\nimport datetime\n\nMSG_FILE_PATH = '/mnt/msg/content'\n\ndef randomString(stringLength=10):\n letters = string.ascii_lowercase\n return ''.join(random.choice(letters) for i in range(stringLength))\n\ndef lambda_handler(event, context):\n with open(MSG_FILE_PATH, 'a') as f:\n f.write(f\"{datetime.datetime.utcnow():%Y-%m-%d-%H:%M:%S} \" + randomString(5) + ' ')\n\n file = open(MSG_FILE_PATH, \"r\")\n file_content = file.read()\n file.close()\n\n return {\n 'statusCode': 200,\n 'body': str(file_content)\n }\n" }, "Handler": "index.lambda_handler", "Role": { @@ -746,6 +746,34 @@ ] }, "Runtime": "python3.7", + "FileSystemConfigs": [ + { + "LocalMountPath": "/mnt/msg", + "Arn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":elasticfilesystem:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":access-point/", + { + "Ref": "EfsAccessPointE419FED9" + } + ] + ] + } + } + ], "VpcConfig": { "SecurityGroupIds": [ { @@ -766,7 +794,203 @@ "Ref": "VpcPrivateSubnet3SubnetF258B56E" } ] + } + }, + "DependsOn": [ + "EfsEfsMountTarget195B2DD2E", + "EfsEfsMountTarget2315C927F", + "EfsEfsMountTarget36646B9A0", + "MyLambdaServiceRoleDefaultPolicy5BBC6F68", + "MyLambdaServiceRole4539ECB6" + ] + }, + "securityGroupfromawscdklambda1MyLambda2SecurityGroup7492F70D20498301D9D2": { + "Type": "AWS::EC2::SecurityGroupIngress", + "Properties": { + "IpProtocol": "tcp", + "Description": "from awscdklambda1MyLambda2SecurityGroup7492F70D:2049", + "FromPort": 2049, + "GroupId": { + "Fn::GetAtt": [ + "EfsEfsSecurityGroup6F40EA3B", + "GroupId" + ] + }, + "SourceSecurityGroupId": { + "Fn::GetAtt": [ + "MyLambda2SecurityGroup3C507954", + "GroupId" + ] + }, + "ToPort": 2049 + } + }, + "MyLambda2ServiceRoleD09B370C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole" + ] + ] + } + ] + }, + "DependsOn": [ + "MyLambdaCCE802FB", + "MyLambdaSecurityGroup1E71A818", + "MyLambdaServiceRoleDefaultPolicy5BBC6F68", + "MyLambdaServiceRole4539ECB6" + ] + }, + "MyLambda2ServiceRoleDefaultPolicy2BECE79D": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "elasticfilesystem:ClientMount", + "Condition": { + "StringEquals": { + "elasticfilesystem:AccessPointArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":elasticfilesystem:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":access-point/", + { + "Ref": "EfsAccessPointE419FED9" + } + ] + ] + } + } + }, + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": "elasticfilesystem:ClientWrite", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":elasticfilesystem:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":file-system/", + { + "Ref": "Efs9E8BF36B" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "MyLambda2ServiceRoleDefaultPolicy2BECE79D", + "Roles": [ + { + "Ref": "MyLambda2ServiceRoleD09B370C" + } + ] + }, + "DependsOn": [ + "MyLambdaCCE802FB", + "MyLambdaSecurityGroup1E71A818", + "MyLambdaServiceRoleDefaultPolicy5BBC6F68", + "MyLambdaServiceRole4539ECB6" + ] + }, + "MyLambda2SecurityGroup3C507954": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "Automatic security group for Lambda Function awscdklambda1MyLambda232FB7CD2", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "Vpc8378EB38" + } + }, + "DependsOn": [ + "MyLambdaCCE802FB", + "MyLambdaSecurityGroup1E71A818", + "MyLambdaServiceRoleDefaultPolicy5BBC6F68", + "MyLambdaServiceRole4539ECB6" + ] + }, + "MyLambda2254B54D5": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "\nimport json\nimport os\nimport string\nimport random\nimport datetime\n\nMSG_FILE_PATH = '/mnt/msg/content'\n\ndef randomString(stringLength=10):\n letters = string.ascii_lowercase\n return ''.join(random.choice(letters) for i in range(stringLength))\n\ndef lambda_handler(event, context):\n with open(MSG_FILE_PATH, 'a') as f:\n f.write(f\"{datetime.datetime.utcnow():%Y-%m-%d-%H:%M:%S} \" + randomString(5) + ' ')\n\n file = open(MSG_FILE_PATH, \"r\")\n file_content = file.read()\n file.close()\n\n return {\n 'statusCode': 200,\n 'body': str(file_content)\n }\n" + }, + "Handler": "index.lambda_handler", + "Role": { + "Fn::GetAtt": [ + "MyLambda2ServiceRoleD09B370C", + "Arn" + ] }, + "Runtime": "python3.7", "FileSystemConfigs": [ { "LocalMountPath": "/mnt/msg", @@ -794,14 +1018,36 @@ ] } } - ] + ], + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ + "MyLambda2SecurityGroup3C507954", + "GroupId" + ] + } + ], + "SubnetIds": [ + { + "Ref": "VpcPrivateSubnet1Subnet536B997A" + }, + { + "Ref": "VpcPrivateSubnet2Subnet3788AAA1" + }, + { + "Ref": "VpcPrivateSubnet3SubnetF258B56E" + } + ] + } }, "DependsOn": [ - "EfsEfsMountTarget195B2DD2E", - "EfsEfsMountTarget2315C927F", - "EfsEfsMountTarget36646B9A0", + "MyLambdaCCE802FB", + "MyLambdaSecurityGroup1E71A818", "MyLambdaServiceRoleDefaultPolicy5BBC6F68", - "MyLambdaServiceRole4539ECB6" + "MyLambdaServiceRole4539ECB6", + "MyLambda2ServiceRoleDefaultPolicy2BECE79D", + "MyLambda2ServiceRoleD09B370C" ] } } diff --git a/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.ts b/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.ts index da6515233e770..c9441c1cd0a52 100644 --- a/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.ts +++ b/packages/@aws-cdk/aws-lambda/test/integ.lambda.filesystem.ts @@ -7,6 +7,7 @@ const app = new cdk.App(); const stack = new cdk.Stack(app, 'aws-cdk-lambda-1'); + const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 3, natGateways: 1, @@ -31,9 +32,7 @@ const accessPoint = fileSystem.addAccessPoint('AccessPoint', { }, }); -// this function will mount the access point to '/mnt/msg' and write content onto /mnt/msg/content -new lambda.Function(stack, 'MyLambda', { - code: new lambda.InlineCode(` +const lambdaCode = new lambda.InlineCode(` import json import os import string @@ -58,11 +57,46 @@ def lambda_handler(event, context): 'statusCode': 200, 'body': str(file_content) } - `), +`); + +// this function will mount the access point to '/mnt/msg' and write content onto /mnt/msg/content +const lambda1 = new lambda.Function(stack, 'MyLambda', { + code: lambdaCode, handler: 'index.lambda_handler', runtime: lambda.Runtime.PYTHON_3_7, vpc, filesystem: lambda.FileSystem.fromEfsAccessPoint(accessPoint, '/mnt/msg'), }); +let importedFileSystem = efs.FileSystem.fromFileSystemAttributes(stack, 'fileSystemImported', { + fileSystemId: fileSystem.fileSystemId, + securityGroup: ec2.SecurityGroup.fromSecurityGroupId( + stack, + 'securityGroup', + fileSystem.connections.securityGroups[0].securityGroupId, + ), +}); + +let importedAccessPoint = efs.AccessPoint.fromAccessPointAttributes(stack, 'AccessPointImported', { + accessPointId: accessPoint.accessPointId, + fileSystem: importedFileSystem, +}); + +// this function will mount the access point to '/mnt/msg' and write content onto /mnt/msg/content +const lambda2 = new lambda.Function(stack, 'MyLambda2', { + code: lambdaCode, + handler: 'index.lambda_handler', + runtime: lambda.Runtime.PYTHON_3_7, + vpc, + filesystem: lambda.FileSystem.fromEfsAccessPoint( + importedAccessPoint, + '/mnt/msg', + ), +}); + +// lambda2 doesn't have dependencies on MountTargets because the fileSystem is imported. +// Ideally, lambda2 would be deployed in another stack but integ doesn't support it. +// We are adding a dependency on the first lambda to simulate this situation. +lambda2.node.addDependency(lambda1); + app.synth(); From 8c17a35746271d38289f6e200aea35b201b8a93d Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Wed, 11 Nov 2020 19:27:10 +0100 Subject: [PATCH 04/41] feat(cfnspec): cloudformation spec v20.0.0 (#11319) Following are open issues for missing properties that will be added with the update: - Closes https://github.com/aws/aws-cdk/issues/11275 --- packages/@aws-cdk/aws-ec2/lib/vpc.ts | 7 + .../@aws-cdk/aws-iotsitewise/.eslintrc.js | 3 + packages/@aws-cdk/aws-iotsitewise/.gitignore | 19 + packages/@aws-cdk/aws-iotsitewise/.npmignore | 28 + packages/@aws-cdk/aws-iotsitewise/LICENSE | 201 ++ packages/@aws-cdk/aws-iotsitewise/NOTICE | 2 + packages/@aws-cdk/aws-iotsitewise/README.md | 16 + .../@aws-cdk/aws-iotsitewise/jest.config.js | 2 + .../@aws-cdk/aws-iotsitewise/lib/index.ts | 2 + .../@aws-cdk/aws-iotsitewise/package.json | 96 + .../aws-iotsitewise/test/iotsitewise.test.ts | 6 + packages/@aws-cdk/aws-ivs/.eslintrc.js | 3 + packages/@aws-cdk/aws-ivs/.gitignore | 19 + packages/@aws-cdk/aws-ivs/.npmignore | 28 + packages/@aws-cdk/aws-ivs/LICENSE | 201 ++ packages/@aws-cdk/aws-ivs/NOTICE | 2 + packages/@aws-cdk/aws-ivs/README.md | 16 + packages/@aws-cdk/aws-ivs/jest.config.js | 2 + packages/@aws-cdk/aws-ivs/lib/index.ts | 2 + packages/@aws-cdk/aws-ivs/package.json | 96 + packages/@aws-cdk/aws-ivs/test/ivs.test.ts | 6 + .../@aws-cdk/aws-mediapackage/.eslintrc.js | 3 + packages/@aws-cdk/aws-mediapackage/.gitignore | 19 + packages/@aws-cdk/aws-mediapackage/.npmignore | 28 + packages/@aws-cdk/aws-mediapackage/LICENSE | 201 ++ packages/@aws-cdk/aws-mediapackage/NOTICE | 2 + packages/@aws-cdk/aws-mediapackage/README.md | 16 + .../@aws-cdk/aws-mediapackage/jest.config.js | 2 + .../@aws-cdk/aws-mediapackage/lib/index.ts | 2 + .../@aws-cdk/aws-mediapackage/package.json | 96 + .../test/mediapackage.test.ts | 6 + packages/@aws-cdk/cfnspec/CHANGELOG.md | 152 ++ packages/@aws-cdk/cfnspec/cfn.version | 2 +- ...0_CloudFormationResourceSpecification.json | 2350 ++++++++++++++++- ...aPackage_PackagingConfiguration_patch.json | 29 + ...80_AutoScaling_AutoScalingGroup_patch.json | 31 + .../680_MediaPackage_Channel_patch.json | 15 + .../cloudformation-include/package.json | 6 + packages/aws-cdk-lib/package.json | 3 + packages/decdk/package.json | 3 + packages/monocdk/package.json | 5 +- 41 files changed, 3587 insertions(+), 141 deletions(-) create mode 100644 packages/@aws-cdk/aws-iotsitewise/.eslintrc.js create mode 100644 packages/@aws-cdk/aws-iotsitewise/.gitignore create mode 100644 packages/@aws-cdk/aws-iotsitewise/.npmignore create mode 100644 packages/@aws-cdk/aws-iotsitewise/LICENSE create mode 100644 packages/@aws-cdk/aws-iotsitewise/NOTICE create mode 100644 packages/@aws-cdk/aws-iotsitewise/README.md create mode 100644 packages/@aws-cdk/aws-iotsitewise/jest.config.js create mode 100644 packages/@aws-cdk/aws-iotsitewise/lib/index.ts create mode 100644 packages/@aws-cdk/aws-iotsitewise/package.json create mode 100644 packages/@aws-cdk/aws-iotsitewise/test/iotsitewise.test.ts create mode 100644 packages/@aws-cdk/aws-ivs/.eslintrc.js create mode 100644 packages/@aws-cdk/aws-ivs/.gitignore create mode 100644 packages/@aws-cdk/aws-ivs/.npmignore create mode 100644 packages/@aws-cdk/aws-ivs/LICENSE create mode 100644 packages/@aws-cdk/aws-ivs/NOTICE create mode 100644 packages/@aws-cdk/aws-ivs/README.md create mode 100644 packages/@aws-cdk/aws-ivs/jest.config.js create mode 100644 packages/@aws-cdk/aws-ivs/lib/index.ts create mode 100644 packages/@aws-cdk/aws-ivs/package.json create mode 100644 packages/@aws-cdk/aws-ivs/test/ivs.test.ts create mode 100644 packages/@aws-cdk/aws-mediapackage/.eslintrc.js create mode 100644 packages/@aws-cdk/aws-mediapackage/.gitignore create mode 100644 packages/@aws-cdk/aws-mediapackage/.npmignore create mode 100644 packages/@aws-cdk/aws-mediapackage/LICENSE create mode 100644 packages/@aws-cdk/aws-mediapackage/NOTICE create mode 100644 packages/@aws-cdk/aws-mediapackage/README.md create mode 100644 packages/@aws-cdk/aws-mediapackage/jest.config.js create mode 100644 packages/@aws-cdk/aws-mediapackage/lib/index.ts create mode 100644 packages/@aws-cdk/aws-mediapackage/package.json create mode 100644 packages/@aws-cdk/aws-mediapackage/test/mediapackage.test.ts create mode 100644 packages/@aws-cdk/cfnspec/spec-source/670_MediaPackage_PackagingConfiguration_patch.json create mode 100644 packages/@aws-cdk/cfnspec/spec-source/680_AutoScaling_AutoScalingGroup_patch.json create mode 100644 packages/@aws-cdk/cfnspec/spec-source/680_MediaPackage_Channel_patch.json diff --git a/packages/@aws-cdk/aws-ec2/lib/vpc.ts b/packages/@aws-cdk/aws-ec2/lib/vpc.ts index f73a3b4c08c2a..e46113b14c89a 100644 --- a/packages/@aws-cdk/aws-ec2/lib/vpc.ts +++ b/packages/@aws-cdk/aws-ec2/lib/vpc.ts @@ -1485,6 +1485,12 @@ export class Subnet extends Resource implements ISubnet { */ public readonly subnetIpv6CidrBlocks: string[]; + /** + * The Amazon Resource Name (ARN) of the Outpost for this subnet (if one exists). + * @attribute + */ + public readonly subnetOutpostArn: string; + /** * @attribute */ @@ -1525,6 +1531,7 @@ export class Subnet extends Resource implements ISubnet { this.subnetVpcId = subnet.attrVpcId; this.subnetAvailabilityZone = subnet.attrAvailabilityZone; this.subnetIpv6CidrBlocks = subnet.attrIpv6CidrBlocks; + this.subnetOutpostArn = subnet.attrOutpostArn; // subnet.attrNetworkAclAssociationId is the default ACL after the subnet // was just created. However, the ACL can be replaced at a later time. diff --git a/packages/@aws-cdk/aws-iotsitewise/.eslintrc.js b/packages/@aws-cdk/aws-iotsitewise/.eslintrc.js new file mode 100644 index 0000000000000..61dd8dd001f63 --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/.eslintrc.js @@ -0,0 +1,3 @@ +const baseConfig = require('cdk-build-tools/config/eslintrc'); +baseConfig.parserOptions.project = __dirname + '/tsconfig.json'; +module.exports = baseConfig; diff --git a/packages/@aws-cdk/aws-iotsitewise/.gitignore b/packages/@aws-cdk/aws-iotsitewise/.gitignore new file mode 100644 index 0000000000000..62ebc95d75ce6 --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/.gitignore @@ -0,0 +1,19 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js +!.eslintrc.js +!jest.config.js +junit.xml diff --git a/packages/@aws-cdk/aws-iotsitewise/.npmignore b/packages/@aws-cdk/aws-iotsitewise/.npmignore new file mode 100644 index 0000000000000..e4486030fcb17 --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/.npmignore @@ -0,0 +1,28 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json + +.eslintrc.js +jest.config.js + +# exclude cdk artifacts +**/cdk.out +junit.xml +test/ diff --git a/packages/@aws-cdk/aws-iotsitewise/LICENSE b/packages/@aws-cdk/aws-iotsitewise/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-iotsitewise/NOTICE b/packages/@aws-cdk/aws-iotsitewise/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-iotsitewise/README.md b/packages/@aws-cdk/aws-iotsitewise/README.md new file mode 100644 index 0000000000000..c92df247f85b4 --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/README.md @@ -0,0 +1,16 @@ +## AWS::IoTSiteWise Construct Library + +--- + +![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge) + +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import iotsitewise = require('@aws-cdk/aws-iotsitewise'); +``` diff --git a/packages/@aws-cdk/aws-iotsitewise/jest.config.js b/packages/@aws-cdk/aws-iotsitewise/jest.config.js new file mode 100644 index 0000000000000..54e28beb9798b --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/jest.config.js @@ -0,0 +1,2 @@ +const baseConfig = require('cdk-build-tools/config/jest.config'); +module.exports = baseConfig; diff --git a/packages/@aws-cdk/aws-iotsitewise/lib/index.ts b/packages/@aws-cdk/aws-iotsitewise/lib/index.ts new file mode 100644 index 0000000000000..c31b4b7c13647 --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::IoTSiteWise CloudFormation Resources: +export * from './iotsitewise.generated'; diff --git a/packages/@aws-cdk/aws-iotsitewise/package.json b/packages/@aws-cdk/aws-iotsitewise/package.json new file mode 100644 index 0000000000000..8291616094fca --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/package.json @@ -0,0 +1,96 @@ +{ + "name": "@aws-cdk/aws-iotsitewise", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::IoTSiteWise", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "projectReferences": true, + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.IoTSiteWise", + "packageId": "Amazon.CDK.AWS.IoTSiteWise", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.iotsitewise", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "iotsitewise" + } + }, + "python": { + "classifiers": [ + "Framework :: AWS CDK", + "Framework :: AWS CDK :: 1" + ], + "distName": "aws-cdk.aws-iotsitewise", + "module": "aws_cdk.aws_iotsitewise" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-iotsitewise" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat", + "gen": "cfn2ts" + }, + "cdk-build": { + "cloudformation": "AWS::IoTSiteWise", + "jest": true, + "env": { + "AWSLINT_BASE_CONSTRUCT": "true" + } + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::IoTSiteWise", + "aws-iotsitewise" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "stability": "experimental", + "maturity": "cfn-only", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-iotsitewise/test/iotsitewise.test.ts b/packages/@aws-cdk/aws-iotsitewise/test/iotsitewise.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-iotsitewise/test/iotsitewise.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/aws-ivs/.eslintrc.js b/packages/@aws-cdk/aws-ivs/.eslintrc.js new file mode 100644 index 0000000000000..61dd8dd001f63 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/.eslintrc.js @@ -0,0 +1,3 @@ +const baseConfig = require('cdk-build-tools/config/eslintrc'); +baseConfig.parserOptions.project = __dirname + '/tsconfig.json'; +module.exports = baseConfig; diff --git a/packages/@aws-cdk/aws-ivs/.gitignore b/packages/@aws-cdk/aws-ivs/.gitignore new file mode 100644 index 0000000000000..62ebc95d75ce6 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/.gitignore @@ -0,0 +1,19 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js +!.eslintrc.js +!jest.config.js +junit.xml diff --git a/packages/@aws-cdk/aws-ivs/.npmignore b/packages/@aws-cdk/aws-ivs/.npmignore new file mode 100644 index 0000000000000..e4486030fcb17 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/.npmignore @@ -0,0 +1,28 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json + +.eslintrc.js +jest.config.js + +# exclude cdk artifacts +**/cdk.out +junit.xml +test/ diff --git a/packages/@aws-cdk/aws-ivs/LICENSE b/packages/@aws-cdk/aws-ivs/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-ivs/NOTICE b/packages/@aws-cdk/aws-ivs/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-ivs/README.md b/packages/@aws-cdk/aws-ivs/README.md new file mode 100644 index 0000000000000..0e8b591f39c21 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/README.md @@ -0,0 +1,16 @@ +## AWS::IVS Construct Library + +--- + +![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge) + +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import ivs = require('@aws-cdk/aws-ivs'); +``` diff --git a/packages/@aws-cdk/aws-ivs/jest.config.js b/packages/@aws-cdk/aws-ivs/jest.config.js new file mode 100644 index 0000000000000..54e28beb9798b --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/jest.config.js @@ -0,0 +1,2 @@ +const baseConfig = require('cdk-build-tools/config/jest.config'); +module.exports = baseConfig; diff --git a/packages/@aws-cdk/aws-ivs/lib/index.ts b/packages/@aws-cdk/aws-ivs/lib/index.ts new file mode 100644 index 0000000000000..418b7c6157e85 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::IVS CloudFormation Resources: +export * from './ivs.generated'; diff --git a/packages/@aws-cdk/aws-ivs/package.json b/packages/@aws-cdk/aws-ivs/package.json new file mode 100644 index 0000000000000..ea872b6960b3f --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/package.json @@ -0,0 +1,96 @@ +{ + "name": "@aws-cdk/aws-ivs", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::IVS", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "projectReferences": true, + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.IVS", + "packageId": "Amazon.CDK.AWS.IVS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.ivs", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "ivs" + } + }, + "python": { + "classifiers": [ + "Framework :: AWS CDK", + "Framework :: AWS CDK :: 1" + ], + "distName": "aws-cdk.aws-ivs", + "module": "aws_cdk.aws_ivs" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-ivs" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat", + "gen": "cfn2ts" + }, + "cdk-build": { + "cloudformation": "AWS::IVS", + "jest": true, + "env": { + "AWSLINT_BASE_CONSTRUCT": "true" + } + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::IVS", + "aws-ivs" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "stability": "experimental", + "maturity": "cfn-only", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-ivs/test/ivs.test.ts b/packages/@aws-cdk/aws-ivs/test/ivs.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs/test/ivs.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/aws-mediapackage/.eslintrc.js b/packages/@aws-cdk/aws-mediapackage/.eslintrc.js new file mode 100644 index 0000000000000..61dd8dd001f63 --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/.eslintrc.js @@ -0,0 +1,3 @@ +const baseConfig = require('cdk-build-tools/config/eslintrc'); +baseConfig.parserOptions.project = __dirname + '/tsconfig.json'; +module.exports = baseConfig; diff --git a/packages/@aws-cdk/aws-mediapackage/.gitignore b/packages/@aws-cdk/aws-mediapackage/.gitignore new file mode 100644 index 0000000000000..62ebc95d75ce6 --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/.gitignore @@ -0,0 +1,19 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js +!.eslintrc.js +!jest.config.js +junit.xml diff --git a/packages/@aws-cdk/aws-mediapackage/.npmignore b/packages/@aws-cdk/aws-mediapackage/.npmignore new file mode 100644 index 0000000000000..e4486030fcb17 --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/.npmignore @@ -0,0 +1,28 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json + +.eslintrc.js +jest.config.js + +# exclude cdk artifacts +**/cdk.out +junit.xml +test/ diff --git a/packages/@aws-cdk/aws-mediapackage/LICENSE b/packages/@aws-cdk/aws-mediapackage/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-mediapackage/NOTICE b/packages/@aws-cdk/aws-mediapackage/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-mediapackage/README.md b/packages/@aws-cdk/aws-mediapackage/README.md new file mode 100644 index 0000000000000..11d84261af563 --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/README.md @@ -0,0 +1,16 @@ +## AWS::MediaPackage Construct Library + +--- + +![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge) + +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import mediapackage = require('@aws-cdk/aws-mediapackage'); +``` diff --git a/packages/@aws-cdk/aws-mediapackage/jest.config.js b/packages/@aws-cdk/aws-mediapackage/jest.config.js new file mode 100644 index 0000000000000..54e28beb9798b --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/jest.config.js @@ -0,0 +1,2 @@ +const baseConfig = require('cdk-build-tools/config/jest.config'); +module.exports = baseConfig; diff --git a/packages/@aws-cdk/aws-mediapackage/lib/index.ts b/packages/@aws-cdk/aws-mediapackage/lib/index.ts new file mode 100644 index 0000000000000..730abc4ac52fc --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::MediaPackage CloudFormation Resources: +export * from './mediapackage.generated'; diff --git a/packages/@aws-cdk/aws-mediapackage/package.json b/packages/@aws-cdk/aws-mediapackage/package.json new file mode 100644 index 0000000000000..c3561ae1027bf --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/package.json @@ -0,0 +1,96 @@ +{ + "name": "@aws-cdk/aws-mediapackage", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::MediaPackage", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "projectReferences": true, + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.MediaPackage", + "packageId": "Amazon.CDK.AWS.MediaPackage", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.mediapackage", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "mediapackage" + } + }, + "python": { + "classifiers": [ + "Framework :: AWS CDK", + "Framework :: AWS CDK :: 1" + ], + "distName": "aws-cdk.aws-mediapackage", + "module": "aws_cdk.aws_mediapackage" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-mediapackage" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat", + "gen": "cfn2ts" + }, + "cdk-build": { + "cloudformation": "AWS::MediaPackage", + "jest": true, + "env": { + "AWSLINT_BASE_CONSTRUCT": "true" + } + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::MediaPackage", + "aws-mediapackage" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "stability": "experimental", + "maturity": "cfn-only", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-mediapackage/test/mediapackage.test.ts b/packages/@aws-cdk/aws-mediapackage/test/mediapackage.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-mediapackage/test/mediapackage.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/cfnspec/CHANGELOG.md b/packages/@aws-cdk/cfnspec/CHANGELOG.md index 80dcd61c194ee..9c3b7d9e1e6d0 100644 --- a/packages/@aws-cdk/cfnspec/CHANGELOG.md +++ b/packages/@aws-cdk/cfnspec/CHANGELOG.md @@ -1,3 +1,155 @@ +# CloudFormation Resource Specification v20.0.0 + +## New Resource Types + +* AWS::IVS::Channel +* AWS::IVS::PlaybackKeyPair +* AWS::IVS::StreamKey +* AWS::IoTSiteWise::Asset +* AWS::IoTSiteWise::AssetModel +* AWS::IoTSiteWise::Gateway +* AWS::MediaPackage::Asset +* AWS::MediaPackage::Channel +* AWS::MediaPackage::OriginEndpoint +* AWS::MediaPackage::PackagingConfiguration +* AWS::MediaPackage::PackagingGroup + +## Attribute Changes + +* AWS::AutoScaling::AutoScalingGroup LaunchConfigurationName (__added__) +* AWS::AutoScaling::AutoScalingGroup LaunchTemplateSpecification (__added__) +* AWS::AutoScaling::AutoScalingGroup MixedInstancesPolicy (__added__) +* AWS::AutoScaling::AutoScalingGroup PlacementGroup (__added__) +* AWS::AutoScaling::AutoScalingGroup VPCZoneIdentifier (__added__) +* AWS::EC2::Subnet OutpostArn (__added__) + +## Property Changes + +* AWS::AmazonMQ::Broker LdapMetadata (__deleted__) +* AWS::AppSync::ApiKey ApiKeyId (__added__) +* AWS::AppSync::FunctionConfiguration SyncConfig (__added__) +* AWS::Athena::NamedQuery WorkGroup (__added__) +* AWS::AutoScaling::AutoScalingGroup CapacityRebalance (__added__) +* AWS::AutoScaling::LaunchConfiguration MetadataOptions (__added__) +* AWS::Batch::ComputeEnvironment Tags (__added__) +* AWS::Batch::JobDefinition Tags (__added__) +* AWS::Batch::JobQueue Tags (__added__) +* AWS::EC2::ClientVpnEndpoint SelfServicePortal (__added__) +* AWS::EC2::Route CarrierGatewayId (__added__) +* AWS::EC2::Route LocalGatewayId (__added__) +* AWS::EC2::Route VpcEndpointId (__added__) +* AWS::EC2::Subnet OutpostArn (__added__) +* AWS::EC2::VPCEndpointService ApplianceLoadBalancerArns (__deleted__) +* AWS::EMR::Cluster LogEncryptionKmsKeyId (__added__) +* AWS::EMR::Cluster ManagedScalingPolicy (__added__) +* AWS::EMR::Cluster StepConcurrencyLevel (__added__) +* AWS::ElastiCache::ReplicationGroup GlobalReplicationGroupId (__added__) +* AWS::ElastiCache::ReplicationGroup MultiAZEnabled.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::ElasticLoadBalancingV2::Listener Port.Required (__changed__) + * Old: true + * New: false +* AWS::ElasticLoadBalancingV2::Listener Protocol.Required (__changed__) + * Old: true + * New: false +* AWS::ElasticLoadBalancingV2::LoadBalancer SubnetMappings.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::GameLift::MatchmakingConfiguration FlexMatchMode (__added__) +* AWS::GameLift::MatchmakingConfiguration GameSessionQueueArns.Required (__changed__) + * Old: true + * New: false +* AWS::GlobalAccelerator::EndpointGroup PortOverrides (__added__) +* AWS::KinesisFirehose::DeliveryStream DeliveryStreamEncryptionConfigurationInput (__added__) +* AWS::KinesisFirehose::DeliveryStream Tags (__added__) +* AWS::KinesisFirehose::DeliveryStream KinesisStreamSourceConfiguration.UpdateType (__changed__) + * Old: Mutable + * New: Immutable +* AWS::LakeFormation::DataLakeSettings TrustedResourceOwners (__added__) +* AWS::Lambda::EventSourceMapping Queues (__added__) +* AWS::Lambda::EventSourceMapping SourceAccessConfigurations (__added__) +* AWS::Logs::LogGroup KmsKeyId (__added__) +* AWS::Logs::LogGroup LogGroupName.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-loggroupname + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-loggroupname +* AWS::Logs::LogGroup RetentionInDays.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-retentionindays + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays +* AWS::RDS::DBCluster GlobalClusterIdentifier (__added__) +* AWS::RDS::DBCluster Engine.UpdateType (__changed__) + * Old: Immutable + * New: Conditional +* AWS::RDS::DBCluster EngineVersion.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::RDS::DBInstance Engine.UpdateType (__changed__) + * Old: Immutable + * New: Conditional +* AWS::SNS::Subscription SubscriptionRoleArn (__added__) +* AWS::SNS::Topic FifoTopic (__added__) + +## Property Type Changes + +* AWS::AmazonMQ::Broker.InterBrokerCred (__removed__) +* AWS::AmazonMQ::Broker.LdapMetadata (__removed__) +* AWS::AmazonMQ::Broker.ServerMetadata (__removed__) +* AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig (__added__) +* AWS::AppSync::FunctionConfiguration.SyncConfig (__added__) +* AWS::AutoScaling::LaunchConfiguration.MetadataOption (__added__) +* AWS::CloudFront::Distribution.OriginShield (__added__) +* AWS::EMR::Cluster.ComputeLimits (__added__) +* AWS::EMR::Cluster.ManagedScalingPolicy (__added__) +* AWS::EMR::Cluster.OnDemandProvisioningSpecification (__added__) +* AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification (__added__) +* AWS::Events::Rule.DeadLetterConfig (__added__) +* AWS::Events::Rule.RedshiftDataParameters (__added__) +* AWS::Events::Rule.RetryPolicy (__added__) +* AWS::GlobalAccelerator::EndpointGroup.PortOverride (__added__) +* AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput (__added__) +* AWS::Lambda::EventSourceMapping.SourceAccessConfiguration (__added__) +* AWS::SageMaker::Model.ImageConfig (__added__) +* AWS::Transfer::Server.SecurityGroupId (__added__) +* AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides LaunchTemplateSpecification (__added__) +* AWS::CloudFront::Distribution.Origin OriginShield (__added__) +* AWS::DLM::LifecyclePolicy.Parameters NoReboot (__added__) +* AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest SelfServiceSAMLProviderArn (__added__) +* AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications OnDemandSpecification (__added__) +* AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications SpotSpecification.Required (__changed__) + * Old: true + * New: false +* AWS::EMR::Cluster.SpotProvisioningSpecification AllocationStrategy (__added__) +* AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications OnDemandSpecification (__added__) +* AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications SpotSpecification.Required (__changed__) + * Old: true + * New: false +* AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification AllocationStrategy (__added__) +* AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping IPv6Address (__added__) +* AWS::ElasticLoadBalancingV2::TargetGroup.Matcher HttpCode.Required (__changed__) + * Old: true + * New: false +* AWS::Elasticsearch::Domain.ElasticsearchClusterConfig WarmCount (__added__) +* AWS::Elasticsearch::Domain.ElasticsearchClusterConfig WarmEnabled (__added__) +* AWS::Elasticsearch::Domain.ElasticsearchClusterConfig WarmType (__added__) +* AWS::Events::Rule.Target DeadLetterConfig (__added__) +* AWS::Events::Rule.Target RedshiftDataParameters (__added__) +* AWS::Events::Rule.Target RetryPolicy (__added__) +* AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration KinesisStreamARN.UpdateType (__changed__) + * Old: Mutable + * New: Immutable +* AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration RoleARN.UpdateType (__changed__) + * Old: Mutable + * New: Immutable +* AWS::S3::Bucket.Metrics EventThreshold.Required (__changed__) + * Old: true + * New: false +* AWS::S3::Bucket.SourceSelectionCriteria SseKmsEncryptedObjects.Required (__changed__) + * Old: true + * New: false +* AWS::SageMaker::Model.ContainerDefinition ImageConfig (__added__) +* AWS::Transfer::Server.EndpointDetails SecurityGroupIds (__added__) + + # CloudFormation Resource Specification v18.7.0 ## New Resource Types diff --git a/packages/@aws-cdk/cfnspec/cfn.version b/packages/@aws-cdk/cfnspec/cfn.version index fb67e3d517039..e88320d7c3862 100644 --- a/packages/@aws-cdk/cfnspec/cfn.version +++ b/packages/@aws-cdk/cfnspec/cfn.version @@ -1 +1 @@ -18.7.0 +20.0.0 diff --git a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json index a118251db1d89..e5bb42cdaee87 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json +++ b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json @@ -236,41 +236,6 @@ } } }, - "AWS::AmazonMQ::Broker.InterBrokerCred": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-interbrokercred.html", - "Properties": { - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-interbrokercred.html#cfn-amazonmq-broker-interbrokercred-password", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Username": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-interbrokercred.html#cfn-amazonmq-broker-interbrokercred-username", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AmazonMQ::Broker.LdapMetadata": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapmetadata.html", - "Properties": { - "InterBrokerCreds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapmetadata.html#cfn-amazonmq-broker-ldapmetadata-interbrokercreds", - "ItemType": "InterBrokerCred", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ServerMetadata": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapmetadata.html#cfn-amazonmq-broker-ldapmetadata-servermetadata", - "Required": true, - "Type": "ServerMetadata", - "UpdateType": "Mutable" - } - } - }, "AWS::AmazonMQ::Broker.LdapServerMetadata": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html", "Properties": { @@ -383,78 +348,6 @@ } } }, - "AWS::AmazonMQ::Broker.ServerMetadata": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html", - "Properties": { - "Hosts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-hosts", - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "RoleBase": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolebase", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleSearchMatching": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolesearchmatching", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleSearchSubtree": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolesearchsubtree", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ServiceAccountPassword": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-serviceaccountpassword", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ServiceAccountUsername": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-serviceaccountusername", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "UserBase": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-userbase", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "UserRoleName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-userrolename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "UserSearchMatching": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-usersearchmatching", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "UserSearchSubtree": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-usersearchsubtree", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, "AWS::AmazonMQ::Broker.TagsEntry": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html", "Properties": { @@ -5284,6 +5177,40 @@ } } }, + "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html", + "Properties": { + "LambdaConflictHandlerArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html#cfn-appsync-functionconfiguration-lambdaconflicthandlerconfig-lambdaconflicthandlerarn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html", + "Properties": { + "ConflictDetection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-conflictdetection", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ConflictHandler": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-conflicthandler", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "LambdaConflictHandlerConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-lambdaconflicthandlerconfig", + "Required": false, + "Type": "LambdaConflictHandlerConfig", + "UpdateType": "Mutable" + } + } + }, "AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html", "Properties": { @@ -6255,6 +6182,12 @@ "Required": false, "UpdateType": "Mutable" }, + "LaunchTemplateSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-launchtemplatespecification", + "Required": false, + "Type": "LaunchTemplateSpecification", + "UpdateType": "Mutable" + }, "WeightedCapacity": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-weightedcapacity", "PrimitiveType": "String", @@ -6481,6 +6414,29 @@ } } }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html", + "Properties": { + "HttpEndpoint": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httpendpoint", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "HttpPutResponseHopLimit": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httpputresponsehoplimit", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "HttpTokens": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httptokens", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html", "Properties": { @@ -8812,6 +8768,12 @@ "Required": false, "UpdateType": "Mutable" }, + "OriginShield": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originshield", + "Required": false, + "Type": "OriginShield", + "UpdateType": "Mutable" + }, "S3OriginConfig": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-s3originconfig", "Required": false, @@ -8918,6 +8880,23 @@ } } }, + "AWS::CloudFront::Distribution.OriginShield": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html", + "Properties": { + "Enabled": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-enabled", + "PrimitiveType": "Boolean", + "Required": true, + "UpdateType": "Mutable" + }, + "OriginShieldRegion": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-originshieldregion", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::CloudFront::Distribution.Restrictions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html", "Properties": { @@ -12194,6 +12173,12 @@ "PrimitiveType": "Boolean", "Required": false, "UpdateType": "Mutable" + }, + "NoReboot": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html#cfn-dlm-lifecyclepolicy-parameters-noreboot", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" } } }, @@ -13016,6 +13001,12 @@ "PrimitiveType": "String", "Required": true, "UpdateType": "Mutable" + }, + "SelfServiceSAMLProviderArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-selfservicesamlproviderarn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" } } }, @@ -16824,6 +16815,41 @@ } } }, + "AWS::EMR::Cluster.ComputeLimits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html", + "Properties": { + "MaximumCapacityUnits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumcapacityunits", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + }, + "MaximumCoreCapacityUnits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumcorecapacityunits", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MaximumOnDemandCapacityUnits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumondemandcapacityunits", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MinimumCapacityUnits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-minimumcapacityunits", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + }, + "UnitType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-unittype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::EMR::Cluster.Configuration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html", "Properties": { @@ -16960,9 +16986,15 @@ "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html", "Properties": { + "OnDemandSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-ondemandspecification", + "Required": false, + "Type": "OnDemandProvisioningSpecification", + "UpdateType": "Mutable" + }, "SpotSpecification": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-spotspecification", - "Required": true, + "Required": false, "Type": "SpotProvisioningSpecification", "UpdateType": "Mutable" } @@ -17225,6 +17257,17 @@ } } }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html", + "Properties": { + "ComputeLimits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html#cfn-elasticmapreduce-cluster-managedscalingpolicy-computelimits", + "Required": false, + "Type": "ComputeLimits", + "UpdateType": "Mutable" + } + } + }, "AWS::EMR::Cluster.MetricDimension": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html", "Properties": { @@ -17242,6 +17285,17 @@ } } }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html", + "Properties": { + "AllocationStrategy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html#cfn-elasticmapreduce-cluster-ondemandprovisioningspecification-allocationstrategy", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::EMR::Cluster.PlacementType": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html", "Properties": { @@ -17372,6 +17426,12 @@ "AWS::EMR::Cluster.SpotProvisioningSpecification": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html", "Properties": { + "AllocationStrategy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-allocationstrategy", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "BlockDurationMinutes": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-blockdurationminutes", "PrimitiveType": "Integer", @@ -17504,9 +17564,15 @@ "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html", "Properties": { + "OnDemandSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-ondemandspecification", + "Required": false, + "Type": "OnDemandProvisioningSpecification", + "UpdateType": "Mutable" + }, "SpotSpecification": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-spotspecification", - "Required": true, + "Required": false, "Type": "SpotProvisioningSpecification", "UpdateType": "Mutable" } @@ -17555,9 +17621,26 @@ } } }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html", + "Properties": { + "AllocationStrategy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification-allocationstrategy", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html", "Properties": { + "AllocationStrategy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-allocationstrategy", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "BlockDurationMinutes": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-blockdurationminutes", "PrimitiveType": "Integer", @@ -19173,6 +19256,12 @@ "Required": false, "UpdateType": "Mutable" }, + "IPv6Address": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-ipv6address", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "PrivateIPv4Address": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-privateipv4address", "PrimitiveType": "String", @@ -19193,7 +19282,7 @@ "HttpCode": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html#cfn-elasticloadbalancingv2-targetgroup-matcher-httpcode", "PrimitiveType": "String", - "Required": true, + "Required": false, "UpdateType": "Mutable" } } @@ -19369,6 +19458,24 @@ "Required": false, "UpdateType": "Mutable" }, + "WarmCount": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmcount", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "WarmEnabled": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmenabled", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "WarmType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmtype", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "ZoneAwarenessConfig": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-zoneawarenessconfig", "Required": false, @@ -19646,6 +19753,17 @@ } } }, + "AWS::Events::Rule.DeadLetterConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html", + "Properties": { + "Arn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::Events::Rule.EcsParameters": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html", "Properties": { @@ -19757,6 +19875,64 @@ } } }, + "AWS::Events::Rule.RedshiftDataParameters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html", + "Properties": { + "Database": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-database", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "DbUser": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-dbuser", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SecretManagerArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-secretmanagerarn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Sql": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-sql", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "StatementName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-statementname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "WithEvent": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-withevent", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::Events::Rule.RetryPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html", + "Properties": { + "MaximumEventAgeInSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html#cfn-events-rule-retrypolicy-maximumeventageinseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MaximumRetryAttempts": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html#cfn-events-rule-retrypolicy-maximumretryattempts", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::Events::Rule.RunCommandParameters": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html", "Properties": { @@ -19815,6 +19991,12 @@ "Type": "BatchParameters", "UpdateType": "Mutable" }, + "DeadLetterConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig", + "Required": false, + "Type": "DeadLetterConfig", + "UpdateType": "Mutable" + }, "EcsParameters": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters", "Required": false, @@ -19857,6 +20039,18 @@ "Type": "KinesisParameters", "UpdateType": "Mutable" }, + "RedshiftDataParameters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-redshiftdataparameters", + "Required": false, + "Type": "RedshiftDataParameters", + "UpdateType": "Mutable" + }, + "RetryPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy", + "Required": false, + "Type": "RetryPolicy", + "UpdateType": "Mutable" + }, "RoleArn": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-rolearn", "PrimitiveType": "String", @@ -20460,6 +20654,23 @@ } } }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html", + "Properties": { + "EndpointPort": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html#cfn-globalaccelerator-endpointgroup-portoverride-endpointport", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + }, + "ListenerPort": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html#cfn-globalaccelerator-endpointgroup-portoverride-listenerport", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::GlobalAccelerator::Listener.PortRange": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html", "Properties": { @@ -25378,6 +25589,281 @@ } } }, + "AWS::IoTSiteWise::Asset.AssetHierarchy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html", + "Properties": { + "ChildAssetId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-childassetid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "LogicalId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-logicalid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::Asset.AssetProperty": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html", + "Properties": { + "Alias": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-alias", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "LogicalId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-logicalid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "NotificationState": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-notificationstate", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html", + "Properties": { + "ChildAssetModelId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-childassetmodelid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "LogicalId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-logicalid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-name", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html", + "Properties": { + "DataType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-datatype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "LogicalId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-logicalid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-name", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Type": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-type", + "Required": true, + "Type": "PropertyType", + "UpdateType": "Mutable" + }, + "Unit": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-unit", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html", + "Properties": { + "DefaultValue": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html#cfn-iotsitewise-assetmodel-attribute-defaultvalue", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html", + "Properties": { + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html#cfn-iotsitewise-assetmodel-expressionvariable-name", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Value": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html#cfn-iotsitewise-assetmodel-expressionvariable-value", + "Required": true, + "Type": "VariableValue", + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html", + "Properties": { + "Expression": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-expression", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Variables": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-variables", + "ItemType": "ExpressionVariable", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Window": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-window", + "Required": true, + "Type": "MetricWindow", + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html", + "Properties": { + "Tumbling": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html#cfn-iotsitewise-assetmodel-metricwindow-tumbling", + "Required": false, + "Type": "TumblingWindow", + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html", + "Properties": { + "Attribute": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-attribute", + "Required": false, + "Type": "Attribute", + "UpdateType": "Mutable" + }, + "Metric": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-metric", + "Required": false, + "Type": "Metric", + "UpdateType": "Mutable" + }, + "Transform": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-transform", + "Required": false, + "Type": "Transform", + "UpdateType": "Mutable" + }, + "TypeName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-typename", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html", + "Properties": { + "Expression": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html#cfn-iotsitewise-assetmodel-transform-expression", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Variables": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html#cfn-iotsitewise-assetmodel-transform-variables", + "ItemType": "ExpressionVariable", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html", + "Properties": { + "Interval": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html#cfn-iotsitewise-assetmodel-tumblingwindow-interval", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html", + "Properties": { + "HierarchyLogicalId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchylogicalid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "PropertyLogicalId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertylogicalid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html", + "Properties": { + "CapabilityConfiguration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html#cfn-iotsitewise-gateway-gatewaycapabilitysummary-capabilityconfiguration", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "CapabilityNamespace": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html#cfn-iotsitewise-gateway-gatewaycapabilitysummary-capabilitynamespace", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html", + "Properties": { + "Greengrass": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html#cfn-iotsitewise-gateway-gatewayplatform-greengrass", + "Required": true, + "Type": "Greengrass", + "UpdateType": "Immutable" + } + } + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html", + "Properties": { + "GroupArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html#cfn-iotsitewise-gateway-greengrass-grouparn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html", "Properties": { @@ -27728,6 +28214,23 @@ } } }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html", + "Properties": { + "KeyARN": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput-keyarn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "KeyType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput-keytype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::KinesisFirehose::DeliveryStream.Deserializer": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html", "Properties": { @@ -28110,13 +28613,13 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-kinesisstreamarn", "PrimitiveType": "String", "Required": true, - "UpdateType": "Mutable" + "UpdateType": "Immutable" }, "RoleARN": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-rolearn", "PrimitiveType": "String", "Required": true, - "UpdateType": "Mutable" + "UpdateType": "Immutable" } } }, @@ -28894,6 +29397,23 @@ } } }, + "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html", + "Properties": { + "Type": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-type", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "URI": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-uri", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::Lambda::Function.Code": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html", "Properties": { @@ -33717,6 +34237,832 @@ } } }, + "AWS::MediaPackage::Asset.EgressEndpoint": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html", + "Properties": { + "PackagingConfigurationId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html#cfn-mediapackage-asset-egressendpoint-packagingconfigurationid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Url": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html#cfn-mediapackage-asset-egressendpoint-url", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::Channel.HlsIngest": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-hlsingest.html", + "Properties": { + "ingestEndpoints": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-hlsingest.html#cfn-mediapackage-channel-hlsingest-ingestendpoints", + "ItemType": "IngestEndpoint", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::Channel.IngestEndpoint": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html", + "Properties": { + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-id", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Password": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-password", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Url": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-url", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Username": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-username", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.Authorization": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html", + "Properties": { + "CdnIdentifierSecret": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html#cfn-mediapackage-originendpoint-authorization-cdnidentifiersecret", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "SecretsRoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html#cfn-mediapackage-originendpoint-authorization-secretsrolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html", + "Properties": { + "KeyRotationIntervalSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html#cfn-mediapackage-originendpoint-cmafencryption-keyrotationintervalseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html#cfn-mediapackage-originendpoint-cmafencryption-spekekeyprovider", + "Required": true, + "Type": "SpekeKeyProvider", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html", + "Properties": { + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-encryption", + "Required": false, + "Type": "CmafEncryption", + "UpdateType": "Mutable" + }, + "HlsManifests": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-hlsmanifests", + "ItemType": "HlsManifest", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SegmentPrefix": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-segmentprefix", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html", + "Properties": { + "KeyRotationIntervalSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html#cfn-mediapackage-originendpoint-dashencryption-keyrotationintervalseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html#cfn-mediapackage-originendpoint-dashencryption-spekekeyprovider", + "Required": true, + "Type": "SpekeKeyProvider", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html", + "Properties": { + "AdTriggers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-adtriggers", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "AdsOnDeliveryRestrictions": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-adsondeliveryrestrictions", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-encryption", + "Required": false, + "Type": "DashEncryption", + "UpdateType": "Mutable" + }, + "ManifestLayout": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-manifestlayout", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ManifestWindowSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-manifestwindowseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MinBufferTimeSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-minbuffertimeseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MinUpdatePeriodSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-minupdateperiodseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "PeriodTriggers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-periodtriggers", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Profile": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-profile", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SegmentTemplateFormat": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-segmenttemplateformat", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + }, + "SuggestedPresentationDelaySeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-suggestedpresentationdelayseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html", + "Properties": { + "ConstantInitializationVector": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-constantinitializationvector", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "EncryptionMethod": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-encryptionmethod", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "KeyRotationIntervalSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-keyrotationintervalseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "RepeatExtXKey": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-repeatextxkey", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-spekekeyprovider", + "Required": true, + "Type": "SpekeKeyProvider", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html", + "Properties": { + "AdMarkers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-admarkers", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "AdTriggers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-adtriggers", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "AdsOnDeliveryRestrictions": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-adsondeliveryrestrictions", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "IncludeIframeOnlyStream": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-includeiframeonlystream", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "ManifestName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-manifestname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "PlaylistType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-playlisttype", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "PlaylistWindowSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-playlistwindowseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "ProgramDateTimeIntervalSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-programdatetimeintervalseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "Url": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-url", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html", + "Properties": { + "AdMarkers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-admarkers", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "AdTriggers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-adtriggers", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "AdsOnDeliveryRestrictions": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-adsondeliveryrestrictions", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-encryption", + "Required": false, + "Type": "HlsEncryption", + "UpdateType": "Mutable" + }, + "IncludeIframeOnlyStream": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-includeiframeonlystream", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "PlaylistType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-playlisttype", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "PlaylistWindowSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-playlistwindowseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "ProgramDateTimeIntervalSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-programdatetimeintervalseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + }, + "UseAudioRenditionGroup": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-useaudiorenditiongroup", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html", + "Properties": { + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html#cfn-mediapackage-originendpoint-mssencryption-spekekeyprovider", + "Required": true, + "Type": "SpekeKeyProvider", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html", + "Properties": { + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-encryption", + "Required": false, + "Type": "MssEncryption", + "UpdateType": "Mutable" + }, + "ManifestWindowSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-manifestwindowseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html", + "Properties": { + "CertificateArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-certificatearn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ResourceId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-resourceid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "RoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-rolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "SystemIds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-systemids", + "PrimitiveItemType": "String", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Url": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-url", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html", + "Properties": { + "MaxVideoBitsPerSecond": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html#cfn-mediapackage-originendpoint-streamselection-maxvideobitspersecond", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MinVideoBitsPerSecond": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html#cfn-mediapackage-originendpoint-streamselection-minvideobitspersecond", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamOrder": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html#cfn-mediapackage-originendpoint-streamselection-streamorder", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html", + "Properties": { + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html#cfn-mediapackage-packagingconfiguration-cmafencryption-spekekeyprovider", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html", + "Properties": { + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html#cfn-mediapackage-packagingconfiguration-cmafpackage-encryption", + "Required": false, + "Type": "CmafEncryption", + "UpdateType": "Mutable" + }, + "HlsManifests": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html#cfn-mediapackage-packagingconfiguration-cmafpackage-hlsmanifests", + "ItemType": "HlsManifest", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html#cfn-mediapackage-packagingconfiguration-cmafpackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html", + "Properties": { + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html#cfn-mediapackage-packagingconfiguration-dashencryption-spekekeyprovider", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html", + "Properties": { + "ManifestLayout": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-manifestlayout", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ManifestName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-manifestname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "MinBufferTimeSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-minbuffertimeseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "Profile": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-profile", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html", + "Properties": { + "DashManifests": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-dashmanifests", + "ItemType": "DashManifest", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-encryption", + "Required": false, + "Type": "DashEncryption", + "UpdateType": "Mutable" + }, + "PeriodTriggers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-periodtriggers", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SegmentTemplateFormat": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-segmenttemplateformat", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html", + "Properties": { + "ConstantInitializationVector": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html#cfn-mediapackage-packagingconfiguration-hlsencryption-constantinitializationvector", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "EncryptionMethod": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html#cfn-mediapackage-packagingconfiguration-hlsencryption-encryptionmethod", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html#cfn-mediapackage-packagingconfiguration-hlsencryption-spekekeyprovider", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html", + "Properties": { + "AdMarkers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-admarkers", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "IncludeIframeOnlyStream": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-includeiframeonlystream", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "ManifestName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-manifestname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ProgramDateTimeIntervalSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-programdatetimeintervalseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "RepeatExtXKey": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-repeatextxkey", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html", + "Properties": { + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-encryption", + "Required": false, + "Type": "HlsEncryption", + "UpdateType": "Mutable" + }, + "HlsManifests": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-hlsmanifests", + "ItemType": "HlsManifest", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "UseAudioRenditionGroup": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-useaudiorenditiongroup", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html", + "Properties": { + "SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html#cfn-mediapackage-packagingconfiguration-mssencryption-spekekeyprovider", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html", + "Properties": { + "ManifestName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html#cfn-mediapackage-packagingconfiguration-mssmanifest-manifestname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html#cfn-mediapackage-packagingconfiguration-mssmanifest-streamselection", + "Required": false, + "Type": "StreamSelection", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html", + "Properties": { + "Encryption": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html#cfn-mediapackage-packagingconfiguration-msspackage-encryption", + "Required": false, + "Type": "MssEncryption", + "UpdateType": "Mutable" + }, + "MssManifests": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html#cfn-mediapackage-packagingconfiguration-msspackage-mssmanifests", + "ItemType": "MssManifest", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "SegmentDurationSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html#cfn-mediapackage-packagingconfiguration-msspackage-segmentdurationseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html", + "Properties": { + "RoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html#cfn-mediapackage-packagingconfiguration-spekekeyprovider-rolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "SystemIds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html#cfn-mediapackage-packagingconfiguration-spekekeyprovider-systemids", + "PrimitiveItemType": "String", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Url": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html#cfn-mediapackage-packagingconfiguration-spekekeyprovider-url", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html", + "Properties": { + "MaxVideoBitsPerSecond": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html#cfn-mediapackage-packagingconfiguration-streamselection-maxvideobitspersecond", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MinVideoBitsPerSecond": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html#cfn-mediapackage-packagingconfiguration-streamselection-minvideobitspersecond", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "StreamOrder": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html#cfn-mediapackage-packagingconfiguration-streamselection-streamorder", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingGroup.Authorization": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html", + "Properties": { + "CdnIdentifierSecret": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html#cfn-mediapackage-packaginggroup-authorization-cdnidentifiersecret", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "SecretsRoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html#cfn-mediapackage-packaginggroup-authorization-secretsrolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::MediaStore::Container.CorsRule": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html", "Properties": { @@ -36707,7 +38053,7 @@ "Properties": { "EventThreshold": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-eventthreshold", - "Required": true, + "Required": false, "Type": "ReplicationTimeValue", "UpdateType": "Mutable" }, @@ -37285,7 +38631,7 @@ "Properties": { "SseKmsEncryptedObjects": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-ssekmsencryptedobjects", - "Required": true, + "Required": false, "Type": "SseKmsEncryptedObjects", "UpdateType": "Mutable" } @@ -38478,6 +39824,12 @@ "Required": false, "UpdateType": "Immutable" }, + "ImageConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-imageconfig", + "Required": false, + "Type": "ImageConfig", + "UpdateType": "Immutable" + }, "Mode": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-mode", "PrimitiveType": "String", @@ -38498,6 +39850,17 @@ } } }, + "AWS::SageMaker::Model.ImageConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html", + "Properties": { + "RepositoryAccessMode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html#cfn-sagemaker-model-containerdefinition-imageconfig-repositoryaccessmode", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, "AWS::SageMaker::Model.VpcConfig": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-vpcconfig.html", "Properties": { @@ -39511,6 +40874,13 @@ "Type": "List", "UpdateType": "Conditional" }, + "SecurityGroupIds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-securitygroupids", + "ItemType": "SecurityGroupId", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, "SubnetIds": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-subnetids", "PrimitiveItemType": "String", @@ -39552,6 +40922,9 @@ "AWS::Transfer::Server.Protocol": { "PrimitiveType": "String" }, + "AWS::Transfer::Server.SecurityGroupId": { + "PrimitiveType": "String" + }, "AWS::Transfer::User.HomeDirectoryMapEntry": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-homedirectorymapentry.html", "Properties": { @@ -41698,7 +43071,7 @@ } } }, - "ResourceSpecificationVersion": "18.7.0", + "ResourceSpecificationVersion": "20.0.0", "ResourceTypes": { "AWS::ACMPCA::Certificate": { "Attributes": { @@ -41956,12 +43329,6 @@ "Required": true, "UpdateType": "Mutable" }, - "LdapMetadata": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapmetadata", - "Required": false, - "Type": "LdapMetadata", - "UpdateType": "Mutable" - }, "LdapServerMetadata": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapservermetadata", "Required": false, @@ -45088,6 +46455,12 @@ "Required": true, "UpdateType": "Immutable" }, + "ApiKeyId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "Description": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description", "PrimitiveType": "String", @@ -45245,6 +46618,12 @@ "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" + }, + "SyncConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig", + "Required": false, + "Type": "SyncConfig", + "UpdateType": "Mutable" } } }, @@ -45666,6 +47045,12 @@ "PrimitiveType": "String", "Required": true, "UpdateType": "Immutable" + }, + "WorkGroup": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-workgroup", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" } } }, @@ -45722,6 +47107,23 @@ } }, "AWS::AutoScaling::AutoScalingGroup": { + "Attributes": { + "LaunchConfigurationName": { + "PrimitiveType": "String" + }, + "LaunchTemplateSpecification": { + "PrimitiveType": "String" + }, + "MixedInstancesPolicy": { + "PrimitiveType": "String" + }, + "PlacementGroup": { + "PrimitiveType": "String" + }, + "VPCZoneIdentifier": { + "PrimitiveType": "String" + } + }, "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html", "Properties": { "AutoScalingGroupName": { @@ -45738,6 +47140,12 @@ "Type": "List", "UpdateType": "Mutable" }, + "CapacityRebalance": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-capacityrebalance", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, "Cooldown": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-cooldown", "PrimitiveType": "String", @@ -45973,6 +47381,12 @@ "Required": false, "UpdateType": "Immutable" }, + "MetadataOptions": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-metadataoptions", + "Required": false, + "Type": "MetadataOption", + "UpdateType": "Immutable" + }, "PlacementTenancy": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-placementtenancy", "PrimitiveType": "String", @@ -46323,6 +47737,12 @@ "Required": false, "UpdateType": "Mutable" }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-tags", + "PrimitiveType": "Json", + "Required": false, + "UpdateType": "Immutable" + }, "Type": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-type", "PrimitiveType": "String", @@ -46364,6 +47784,12 @@ "Type": "RetryStrategy", "UpdateType": "Mutable" }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-tags", + "PrimitiveType": "Json", + "Required": false, + "UpdateType": "Immutable" + }, "Timeout": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-timeout", "Required": false, @@ -46405,6 +47831,12 @@ "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-tags", + "PrimitiveType": "Json", + "Required": false, + "UpdateType": "Immutable" } } }, @@ -50651,6 +52083,12 @@ "Type": "List", "UpdateType": "Mutable" }, + "SelfServicePortal": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-selfserviceportal", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "ServerCertificateArn": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-servercertificatearn", "PrimitiveType": "String", @@ -51771,6 +53209,12 @@ "AWS::EC2::Route": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html", "Properties": { + "CarrierGatewayId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-carriergatewayid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "DestinationCidrBlock": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationcidrblock", "PrimitiveType": "String", @@ -51801,6 +53245,12 @@ "Required": false, "UpdateType": "Mutable" }, + "LocalGatewayId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-localgatewayid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "NatGatewayId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-natgatewayid", "PrimitiveType": "String", @@ -51825,6 +53275,12 @@ "Required": false, "UpdateType": "Mutable" }, + "VpcEndpointId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcendpointid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "VpcPeeringConnectionId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcpeeringconnectionid", "PrimitiveType": "String", @@ -52066,6 +53522,9 @@ "NetworkAclAssociationId": { "PrimitiveType": "String" }, + "OutpostArn": { + "PrimitiveType": "String" + }, "VpcId": { "PrimitiveType": "String" } @@ -52102,6 +53561,12 @@ "Required": false, "UpdateType": "Mutable" }, + "OutpostArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-outpostarn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "Tags": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-tags", "DuplicatesAllowed": true, @@ -52727,13 +54192,6 @@ "Required": false, "UpdateType": "Mutable" }, - "ApplianceLoadBalancerArns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-applianceloadbalancerarns", - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, "NetworkLoadBalancerArns": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns", "PrimitiveItemType": "String", @@ -53941,12 +55399,24 @@ "Type": "KerberosAttributes", "UpdateType": "Immutable" }, + "LogEncryptionKmsKeyId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-logencryptionkmskeyid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "LogUri": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-loguri", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" }, + "ManagedScalingPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-managedscalingpolicy", + "Required": false, + "Type": "ManagedScalingPolicy", + "UpdateType": "Mutable" + }, "Name": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-name", "PrimitiveType": "String", @@ -53977,6 +55447,12 @@ "Required": true, "UpdateType": "Immutable" }, + "StepConcurrencyLevel": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-stepconcurrencylevel", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, "Steps": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-steps", "DuplicatesAllowed": false, @@ -54442,6 +55918,12 @@ "Required": false, "UpdateType": "Mutable" }, + "GlobalReplicationGroupId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-globalreplicationgroupid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "KmsKeyId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-kmskeyid", "PrimitiveType": "String", @@ -54452,7 +55934,7 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-multiazenabled", "PrimitiveType": "Boolean", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" }, "NodeGroupConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-nodegroupconfiguration", @@ -54986,13 +56468,13 @@ "Port": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-port", "PrimitiveType": "Integer", - "Required": true, + "Required": false, "UpdateType": "Mutable" }, "Protocol": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-protocol", "PrimitiveType": "String", - "Required": true, + "Required": false, "UpdateType": "Mutable" }, "SslPolicy": { @@ -55116,7 +56598,7 @@ "ItemType": "SubnetMapping", "Required": false, "Type": "List", - "UpdateType": "Immutable" + "UpdateType": "Mutable" }, "Subnets": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnets", @@ -56184,6 +57666,12 @@ "Required": false, "UpdateType": "Mutable" }, + "FlexMatchMode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-flexmatchmode", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "GameProperties": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gameproperties", "ItemType": "GameProperty", @@ -56200,7 +57688,7 @@ "GameSessionQueueArns": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gamesessionqueuearns", "PrimitiveItemType": "String", - "Required": true, + "Required": false, "Type": "List", "UpdateType": "Mutable" }, @@ -56382,6 +57870,13 @@ "Required": true, "UpdateType": "Immutable" }, + "PortOverrides": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-portoverrides", + "ItemType": "PortOverride", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, "ThresholdCount": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-thresholdcount", "PrimitiveType": "Integer", @@ -58096,6 +59591,114 @@ } } }, + "AWS::IVS::Channel": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "IngestEndpoint": { + "PrimitiveType": "String" + }, + "PlaybackUrl": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html", + "Properties": { + "Authorized": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-authorized", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "LatencyMode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-latencymode", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-name", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Type": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-type", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::IVS::PlaybackKeyPair": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "Fingerprint": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html", + "Properties": { + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-name", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "PublicKeyMaterial": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-publickeymaterial", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::IVS::StreamKey": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "Value": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html", + "Properties": { + "ChannelArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html#cfn-ivs-streamkey-channelarn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html#cfn-ivs-streamkey-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::ImageBuilder::Component": { "Attributes": { "Arn": { @@ -59115,6 +60718,137 @@ } } }, + "AWS::IoTSiteWise::Asset": { + "Attributes": { + "AssetArn": { + "PrimitiveType": "String" + }, + "AssetId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html", + "Properties": { + "AssetHierarchies": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assethierarchies", + "ItemType": "AssetHierarchy", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "AssetModelId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetmodelid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "AssetName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetname", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "AssetProperties": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetproperties", + "ItemType": "AssetProperty", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-tags", + "DuplicatesAllowed": true, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::AssetModel": { + "Attributes": { + "AssetModelArn": { + "PrimitiveType": "String" + }, + "AssetModelId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html", + "Properties": { + "AssetModelDescription": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeldescription", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "AssetModelHierarchies": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelhierarchies", + "ItemType": "AssetModelHierarchy", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "AssetModelName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelname", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "AssetModelProperties": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelproperties", + "ItemType": "AssetModelProperty", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::IoTSiteWise::Gateway": { + "Attributes": { + "GatewayId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html", + "Properties": { + "GatewayCapabilitySummaries": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewaycapabilitysummaries", + "DuplicatesAllowed": false, + "ItemType": "GatewayCapabilitySummary", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "GatewayName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewayname", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "GatewayPlatform": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewayplatform", + "Required": true, + "Type": "GatewayPlatform", + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-tags", + "DuplicatesAllowed": true, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::IoTThingsGraph::FlowTemplate": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html", "Properties": { @@ -59623,6 +61357,12 @@ }, "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html", "Properties": { + "DeliveryStreamEncryptionConfigurationInput": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput", + "Required": false, + "Type": "DeliveryStreamEncryptionConfigurationInput", + "UpdateType": "Mutable" + }, "DeliveryStreamName": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamname", "PrimitiveType": "String", @@ -59657,7 +61397,7 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration", "Required": false, "Type": "KinesisStreamSourceConfiguration", - "UpdateType": "Mutable" + "UpdateType": "Immutable" }, "RedshiftDestinationConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration", @@ -59676,6 +61416,13 @@ "Required": false, "Type": "SplunkDestinationConfiguration", "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" } } }, @@ -59687,6 +61434,13 @@ "Required": false, "Type": "Admins", "UpdateType": "Mutable" + }, + "TrustedResourceOwners": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html#cfn-lakeformation-datalakesettings-trustedresourceowners", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" } } }, @@ -59888,6 +61642,22 @@ "Required": false, "UpdateType": "Mutable" }, + "Queues": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues", + "DuplicatesAllowed": false, + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "SourceAccessConfigurations": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations", + "DuplicatesAllowed": false, + "ItemType": "SourceAccessConfiguration", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, "StartingPosition": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition", "PrimitiveType": "String", @@ -60204,14 +61974,20 @@ }, "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html", "Properties": { + "KmsKeyId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-kmskeyid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-loggroupname", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-loggroupname", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" }, "RetentionInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-retentionindays", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" @@ -60899,6 +62675,284 @@ } } }, + "AWS::MediaPackage::Asset": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "CreatedAt": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html", + "Properties": { + "EgressEndpoints": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-egressendpoints", + "ItemType": "EgressEndpoint", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "PackagingGroupId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-packaginggroupid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ResourceId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-resourceid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SourceArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-sourcearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "SourceRoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-sourcerolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::Channel": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "HlsIngest": { + "Type": "HlsIngest" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html", + "Properties": { + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html#cfn-mediapackage-channel-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html#cfn-mediapackage-channel-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html#cfn-mediapackage-channel-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Immutable" + } + } + }, + "AWS::MediaPackage::OriginEndpoint": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "Url": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html", + "Properties": { + "Authorization": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-authorization", + "Required": false, + "Type": "Authorization", + "UpdateType": "Mutable" + }, + "ChannelId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-channelid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "CmafPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-cmafpackage", + "Required": false, + "Type": "CmafPackage", + "UpdateType": "Mutable" + }, + "DashPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-dashpackage", + "Required": false, + "Type": "DashPackage", + "UpdateType": "Mutable" + }, + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "HlsPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-hlspackage", + "Required": false, + "Type": "HlsPackage", + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ManifestName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-manifestname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "MssPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-msspackage", + "Required": false, + "Type": "MssPackage", + "UpdateType": "Mutable" + }, + "Origination": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-origination", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "StartoverWindowSeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-startoverwindowseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "TimeDelaySeconds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-timedelayseconds", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "Whitelist": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-whitelist", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingConfiguration": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html", + "Properties": { + "CmafPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-cmafpackage", + "Required": false, + "Type": "CmafPackage", + "UpdateType": "Mutable" + }, + "DashPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-dashpackage", + "Required": false, + "Type": "DashPackage", + "UpdateType": "Mutable" + }, + "HlsPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-hlspackage", + "Required": false, + "Type": "HlsPackage", + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "MssPackage": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-msspackage", + "Required": false, + "Type": "MssPackage", + "UpdateType": "Mutable" + }, + "PackagingGroupId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-packaginggroupid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::MediaPackage::PackagingGroup": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "DomainName": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html", + "Properties": { + "Authorization": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html#cfn-mediapackage-packaginggroup-authorization", + "Required": false, + "Type": "Authorization", + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html#cfn-mediapackage-packaginggroup-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html#cfn-mediapackage-packaginggroup-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Immutable" + } + } + }, "AWS::MediaStore::Container": { "Attributes": { "Endpoint": { @@ -63466,7 +65520,7 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine", "PrimitiveType": "String", "Required": true, - "UpdateType": "Immutable" + "UpdateType": "Conditional" }, "EngineMode": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode", @@ -63478,7 +65532,13 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engineversion", "PrimitiveType": "String", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" + }, + "GlobalClusterIdentifier": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-globalclusteridentifier", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Conditional" }, "KmsKeyId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-kmskeyid", @@ -63778,7 +65838,7 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engine", "PrimitiveType": "String", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Conditional" }, "EngineVersion": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engineversion", @@ -65594,6 +67654,12 @@ "Required": false, "UpdateType": "Mutable" }, + "SubscriptionRoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-subscriptionrolearn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "TopicArn": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn", "PrimitiveType": "String", @@ -65622,6 +67688,12 @@ "Required": false, "UpdateType": "Mutable" }, + "FifoTopic": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-fifotopic", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Immutable" + }, "KmsMasterKeyId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-kmsmasterkeyid", "PrimitiveType": "String", diff --git a/packages/@aws-cdk/cfnspec/spec-source/670_MediaPackage_PackagingConfiguration_patch.json b/packages/@aws-cdk/cfnspec/spec-source/670_MediaPackage_PackagingConfiguration_patch.json new file mode 100644 index 0000000000000..ed0f382b5ba59 --- /dev/null +++ b/packages/@aws-cdk/cfnspec/spec-source/670_MediaPackage_PackagingConfiguration_patch.json @@ -0,0 +1,29 @@ +{ + "PropertyTypes": { + "patch": { + "description": "missing type information for SpekeKeyProvider - mirrors patch in cfn-lint (https://github.com/aws-cloudformation/cfn-python-lint/pull/1751)", + "operations": [ + { + "op": "add", + "path": "/AWS::MediaPackage::PackagingConfiguration.CmafEncryption/Properties/SpekeKeyProvider/Type", + "value": "SpekeKeyProvider" + }, + { + "op": "add", + "path": "/AWS::MediaPackage::PackagingConfiguration.DashEncryption/Properties/SpekeKeyProvider/Type", + "value": "SpekeKeyProvider" + }, + { + "op": "add", + "path": "/AWS::MediaPackage::PackagingConfiguration.HlsEncryption/Properties/SpekeKeyProvider/Type", + "value": "SpekeKeyProvider" + }, + { + "op": "add", + "path": "/AWS::MediaPackage::PackagingConfiguration.MssEncryption/Properties/SpekeKeyProvider/Type", + "value": "SpekeKeyProvider" + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/cfnspec/spec-source/680_AutoScaling_AutoScalingGroup_patch.json b/packages/@aws-cdk/cfnspec/spec-source/680_AutoScaling_AutoScalingGroup_patch.json new file mode 100644 index 0000000000000..c79b21da417e1 --- /dev/null +++ b/packages/@aws-cdk/cfnspec/spec-source/680_AutoScaling_AutoScalingGroup_patch.json @@ -0,0 +1,31 @@ +{ + "ResourceTypes": { + "AWS::AutoScaling::AutoScalingGroup": { + "patch": { + "description": "remove (presumed accidentally included) new autoscaling group attributes", + "operations": [ + { + "op": "remove", + "path": "/Attributes/LaunchConfigurationName" + }, + { + "op": "remove", + "path": "/Attributes/LaunchTemplateSpecification" + }, + { + "op": "remove", + "path": "/Attributes/MixedInstancesPolicy" + }, + { + "op": "remove", + "path": "/Attributes/PlacementGroup" + }, + { + "op": "remove", + "path": "/Attributes/VPCZoneIdentifier" + } + ] + } + } + } +} diff --git a/packages/@aws-cdk/cfnspec/spec-source/680_MediaPackage_Channel_patch.json b/packages/@aws-cdk/cfnspec/spec-source/680_MediaPackage_Channel_patch.json new file mode 100644 index 0000000000000..5eb3d2a657645 --- /dev/null +++ b/packages/@aws-cdk/cfnspec/spec-source/680_MediaPackage_Channel_patch.json @@ -0,0 +1,15 @@ +{ + "ResourceTypes": { + "AWS::MediaPackage::Channel": { + "patch": { + "description": "remove the unusable attribute HlsIngest, which represents a complex type and cannot be directly converted to a primitive type", + "operations": [ + { + "op": "remove", + "path": "/Attributes/HlsIngest" + } + ] + } + } + } +} diff --git a/packages/@aws-cdk/cloudformation-include/package.json b/packages/@aws-cdk/cloudformation-include/package.json index 5504214ff2f62..a62d181f8243a 100644 --- a/packages/@aws-cdk/cloudformation-include/package.json +++ b/packages/@aws-cdk/cloudformation-include/package.json @@ -141,7 +141,9 @@ "@aws-cdk/aws-iot1click": "0.0.0", "@aws-cdk/aws-iotanalytics": "0.0.0", "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-ivs": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", "@aws-cdk/aws-kinesisfirehose": "0.0.0", @@ -154,6 +156,7 @@ "@aws-cdk/aws-managedblockchain": "0.0.0", "@aws-cdk/aws-mediaconvert": "0.0.0", "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediapackage": "0.0.0", "@aws-cdk/aws-mediastore": "0.0.0", "@aws-cdk/aws-msk": "0.0.0", "@aws-cdk/aws-neptune": "0.0.0", @@ -271,7 +274,9 @@ "@aws-cdk/aws-iot1click": "0.0.0", "@aws-cdk/aws-iotanalytics": "0.0.0", "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-ivs": "@aws-cdk/aws-ivs", "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", @@ -284,6 +289,7 @@ "@aws-cdk/aws-managedblockchain": "0.0.0", "@aws-cdk/aws-mediaconvert": "0.0.0", "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediapackage": "0.0.0", "@aws-cdk/aws-mediastore": "0.0.0", "@aws-cdk/aws-msk": "0.0.0", "@aws-cdk/aws-neptune": "0.0.0", diff --git a/packages/aws-cdk-lib/package.json b/packages/aws-cdk-lib/package.json index 113df7a9afce8..c1b5e38a89280 100644 --- a/packages/aws-cdk-lib/package.json +++ b/packages/aws-cdk-lib/package.json @@ -190,7 +190,9 @@ "@aws-cdk/aws-iot1click": "0.0.0", "@aws-cdk/aws-iotanalytics": "0.0.0", "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-ivs": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", "@aws-cdk/aws-kinesisfirehose": "0.0.0", @@ -208,6 +210,7 @@ "@aws-cdk/aws-managedblockchain": "0.0.0", "@aws-cdk/aws-mediaconvert": "0.0.0", "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediapackage": "0.0.0", "@aws-cdk/aws-mediastore": "0.0.0", "@aws-cdk/aws-msk": "0.0.0", "@aws-cdk/aws-neptune": "0.0.0", diff --git a/packages/decdk/package.json b/packages/decdk/package.json index 0871274f0b016..adc9732761f1f 100644 --- a/packages/decdk/package.json +++ b/packages/decdk/package.json @@ -117,7 +117,9 @@ "@aws-cdk/aws-iot1click": "0.0.0", "@aws-cdk/aws-iotanalytics": "0.0.0", "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-ivs": "0.0.0", "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", @@ -135,6 +137,7 @@ "@aws-cdk/aws-managedblockchain": "0.0.0", "@aws-cdk/aws-mediaconvert": "0.0.0", "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediapackage": "0.0.0", "@aws-cdk/aws-mediastore": "0.0.0", "@aws-cdk/aws-msk": "0.0.0", "@aws-cdk/aws-neptune": "0.0.0", diff --git a/packages/monocdk/package.json b/packages/monocdk/package.json index f6b5dc263a9fb..7123a4b0469e8 100644 --- a/packages/monocdk/package.json +++ b/packages/monocdk/package.json @@ -189,11 +189,13 @@ "@aws-cdk/aws-iot1click": "0.0.0", "@aws-cdk/aws-iotanalytics": "0.0.0", "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-ivs": "0.0.0", + "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-lakeformation": "0.0.0", "@aws-cdk/aws-lambda": "0.0.0", @@ -207,6 +209,7 @@ "@aws-cdk/aws-managedblockchain": "0.0.0", "@aws-cdk/aws-mediaconvert": "0.0.0", "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediapackage": "0.0.0", "@aws-cdk/aws-mediastore": "0.0.0", "@aws-cdk/aws-msk": "0.0.0", "@aws-cdk/aws-neptune": "0.0.0", From 62baa7b51b49c1a669c7144e5883375fe9ab5d35 Mon Sep 17 00:00:00 2001 From: Shivam Verma <68244110+sshver@users.noreply.github.com> Date: Wed, 11 Nov 2020 10:56:46 -0800 Subject: [PATCH 05/41] feat(appmesh): add listener timeout to Virtual Nodes (#10793) Adds listener timeout to Virtual Nodes. BREAKING CHANGE: `IVirtualNode` no longer has the `addBackends()` method. A backend can be added to `VirtualNode` using the `addBackend()` method which accepts a single `IVirtualService` * **appmesh**: `IVirtualNode` no longer has the `addListeners()` method. A listener can be added to `VirtualNode` using the `addListener()` method which accepts a single `VirtualNodeListener` * **appmesh**: `VirtualNode` no longer has a default listener. It is valid to have a `VirtualNode` without any listeners * **appmesh**: the construction property `listener` of `VirtualNode` has been renamed to `listeners`, and its type changed to an array of listeners * **appmesh**: the struct `VirtualNodeListener` has been removed. To create Virtual Node listeners, use the static factory methods of the `VirtualNodeListener` class ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../lib/extensions/appmesh.ts | 25 +- packages/@aws-cdk/aws-appmesh/README.md | 25 +- packages/@aws-cdk/aws-appmesh/lib/index.ts | 1 + .../aws-appmesh/lib/shared-interfaces.ts | 38 --- .../aws-appmesh/lib/virtual-node-listener.ts | 219 +++++++++++++++++ .../@aws-cdk/aws-appmesh/lib/virtual-node.ts | 105 +++----- packages/@aws-cdk/aws-appmesh/package.json | 7 +- .../@aws-cdk/aws-appmesh/test/integ.mesh.ts | 14 +- .../aws-appmesh/test/test.health-check.ts | 30 +-- .../@aws-cdk/aws-appmesh/test/test.mesh.ts | 38 +-- .../aws-appmesh/test/test.virtual-node.ts | 228 +++++++++++++++--- .../aws-appmesh/test/test.virtual-router.ts | 50 ++-- 12 files changed, 524 insertions(+), 256 deletions(-) create mode 100644 packages/@aws-cdk/aws-appmesh/lib/virtual-node-listener.ts diff --git a/packages/@aws-cdk-containers/ecs-service-extensions/lib/extensions/appmesh.ts b/packages/@aws-cdk-containers/ecs-service-extensions/lib/extensions/appmesh.ts index 583ca06435c09..614a1eeea2312 100644 --- a/packages/@aws-cdk-containers/ecs-service-extensions/lib/extensions/appmesh.ts +++ b/packages/@aws-cdk-containers/ecs-service-extensions/lib/extensions/appmesh.ts @@ -259,17 +259,28 @@ export class AppMeshExtension extends ServiceExtension { throw new Error('You must add a CloudMap namespace to the ECS cluster in order to use the AppMesh extension'); } + function addListener(protocol: appmesh.Protocol, port: number): appmesh.VirtualNodeListener { + switch (protocol) { + case appmesh.Protocol.HTTP : + return appmesh.VirtualNodeListener.http({ port }); + + case appmesh.Protocol.HTTP2 : + return appmesh.VirtualNodeListener.http2({ port }); + + case appmesh.Protocol.GRPC : + return appmesh.VirtualNodeListener.grpc({ port }); + + case appmesh.Protocol.TCP : + return appmesh.VirtualNodeListener.tcp({ port }); + } + } + // Create a virtual node for the name service this.virtualNode = new appmesh.VirtualNode(this.scope, `${this.parentService.id}-virtual-node`, { mesh: this.mesh, virtualNodeName: this.parentService.id, cloudMapService: service.cloudMapService, - listener: { - portMapping: { - port: containerextension.trafficPort, - protocol: this.protocol, - }, - }, + listeners: [addListener(this.protocol, containerextension.trafficPort)], }); // Create a virtual router for this service. This allows for retries @@ -326,7 +337,7 @@ export class AppMeshExtension extends ServiceExtension { // Next update the app mesh config so that the local Envoy // proxy on this service knows how to route traffic to // nodes from the other service. - this.virtualNode.addBackends(otherAppMesh.virtualService); + this.virtualNode.addBackend(otherAppMesh.virtualService); } private virtualRouterListener(port: number): appmesh.VirtualRouterListener { diff --git a/packages/@aws-cdk/aws-appmesh/README.md b/packages/@aws-cdk/aws-appmesh/README.md index 9c0a4b7f1da2e..dff8a6808c701 100644 --- a/packages/@aws-cdk/aws-appmesh/README.md +++ b/packages/@aws-cdk/aws-appmesh/README.md @@ -139,11 +139,8 @@ const service = namespace.createService('Svc'); const node = mesh.addVirtualNode('virtual-node', { cloudMapService: service, - listener: { - portMapping: { - port: 8081, - protocol: Protocol.HTTP, - }, + listeners: [appmesh.VirtualNodeListener.httpNodeListener({ + port: 8081, healthCheck: { healthyThreshold: 3, interval: Duration.seconds(5), // minimum @@ -153,9 +150,9 @@ const node = mesh.addVirtualNode('virtual-node', { timeout: Duration.seconds(2), // minimum unhealthyThreshold: 2, }, - }, + })], accessLog: appmesh.AccessLog.fromFilePath('/dev/stdout'), -}) +}); ``` Create a `VirtualNode` with the the constructor and add tags. @@ -164,11 +161,8 @@ Create a `VirtualNode` with the the constructor and add tags. const node = new VirtualNode(this, 'node', { mesh, cloudMapService: service, - listener: { - portMapping: { - port: 8080, - protocol: Protocol.HTTP, - }, + listeners: [appmesh.VirtualNodeListener.httpNodeListener({ + port: 8080, healthCheck: { healthyThreshold: 3, interval: Duration.seconds(5), // min @@ -177,15 +171,18 @@ const node = new VirtualNode(this, 'node', { protocol: Protocol.HTTP, timeout: Duration.seconds(2), // min unhealthyThreshold: 2, + }, + timeout: { + idle: cdk.Duration.seconds(5), }, - }, + })], accessLog: appmesh.AccessLog.fromFilePath('/dev/stdout'), }); cdk.Tag.add(node, 'Environment', 'Dev'); ``` -The listeners property can be left blank and added later with the `node.addListeners()` method. The `healthcheck` property is optional but if specifying a listener, the `portMappings` must contain at least one property. +The `listeners` property can be left blank and added later with the `node.addListener()` method. The `healthcheck` and `timeout` properties are optional but if specifying a listener, the `port` must be added. ## Adding a Route diff --git a/packages/@aws-cdk/aws-appmesh/lib/index.ts b/packages/@aws-cdk/aws-appmesh/lib/index.ts index d95c017c2071e..4c09b13ba730c 100644 --- a/packages/@aws-cdk/aws-appmesh/lib/index.ts +++ b/packages/@aws-cdk/aws-appmesh/lib/index.ts @@ -7,6 +7,7 @@ export * from './virtual-node'; export * from './virtual-router'; export * from './virtual-router-listener'; export * from './virtual-service'; +export * from './virtual-node-listener'; export * from './virtual-gateway'; export * from './virtual-gateway-listener'; export * from './gateway-route'; diff --git a/packages/@aws-cdk/aws-appmesh/lib/shared-interfaces.ts b/packages/@aws-cdk/aws-appmesh/lib/shared-interfaces.ts index 39111389b0a03..21ab96b6ce56a 100644 --- a/packages/@aws-cdk/aws-appmesh/lib/shared-interfaces.ts +++ b/packages/@aws-cdk/aws-appmesh/lib/shared-interfaces.ts @@ -68,44 +68,6 @@ export interface HealthCheck { readonly unhealthyThreshold?: number; } -/** - * Port mappings for resources that require these attributes, such as VirtualNodes and Routes - */ -export interface PortMapping { - /** - * Port mapped to the VirtualNode / Route - * - * @default 8080 - */ - readonly port: number; - - /** - * Protocol for the VirtualNode / Route, only GRPC, HTTP, HTTP2, or TCP is supported - * - * @default HTTP - */ - readonly protocol: Protocol; -} - -/** - * Represents the properties needed to define healthy and active listeners for nodes - */ -export interface VirtualNodeListener { - /** - * Array of PortMappingProps for the listener - * - * @default - HTTP port 8080 - */ - readonly portMapping?: PortMapping; - - /** - * Health checking strategy upstream nodes should use when communicating with the listener - * - * @default - no healthcheck - */ - readonly healthCheck?: HealthCheck; -} - /** * All Properties for Envoy Access logs for mesh endpoints */ diff --git a/packages/@aws-cdk/aws-appmesh/lib/virtual-node-listener.ts b/packages/@aws-cdk/aws-appmesh/lib/virtual-node-listener.ts new file mode 100644 index 0000000000000..e3e433d8e25d8 --- /dev/null +++ b/packages/@aws-cdk/aws-appmesh/lib/virtual-node-listener.ts @@ -0,0 +1,219 @@ +import * as cdk from '@aws-cdk/core'; +import { CfnVirtualNode } from './appmesh.generated'; +import { validateHealthChecks } from './private/utils'; +import { HealthCheck, Protocol } from './shared-interfaces'; + +/** + * Properties for a VirtualNode listener + */ +export interface VirtualNodeListenerConfig { + /** + * Single listener config for a VirtualNode + */ + readonly listener: CfnVirtualNode.ListenerProperty, +} + +/** + * Represents the properties needed to define a Listeners for a VirtualNode + */ +interface VirtualNodeListenerCommonOptions { + /** + * Port to listen for connections on + * + * @default - 8080 + */ + readonly port?: number + + /** + * The health check information for the listener + * + * @default - no healthcheck + */ + readonly healthCheck?: HealthCheck; +} + +/** + * Represent the HTTP Node Listener prorperty + */ +export interface HttpVirtualNodeListenerOptions extends VirtualNodeListenerCommonOptions { + /** + * Timeout for HTTP protocol + * + * @default - None + */ + readonly timeout?: HttpTimeout; +} + +/** + * Represent the GRPC Node Listener prorperty + */ +export interface GrpcVirtualNodeListenerOptions extends VirtualNodeListenerCommonOptions { + /** + * Timeout for GRPC protocol + * + * @default - None + */ + readonly timeout?: GrpcTimeout; +} + +/** + * Represent the TCP Node Listener prorperty + */ +export interface TcpVirtualNodeListenerOptions extends VirtualNodeListenerCommonOptions { + /** + * Timeout for TCP protocol + * + * @default - None + */ + readonly timeout?: TcpTimeout; +} + +/** + * Represents timeouts for HTTP protocols. + */ +export interface HttpTimeout { + /** + * Represents an idle timeout. The amount of time that a connection may be idle. + * + * @default - none + */ + readonly idle?: cdk.Duration; + + /** + * Represents per request timeout. + * + * @default - 15 s + */ + readonly perRequest?: cdk.Duration; +} + +/** + * Represents timeouts for GRPC protocols. + */ +export interface GrpcTimeout { + /** + * Represents an idle timeout. The amount of time that a connection may be idle. + * + * @default - none + */ + readonly idle?: cdk.Duration; + + /** + * Represents per request timeout. + * + * @default - 15 s + */ + readonly perRequest?: cdk.Duration; +} + +/** + * Represents timeouts for TCP protocols. + */ +export interface TcpTimeout { + /** + * Represents an idle timeout. The amount of time that a connection may be idle. + * + * @default - none + */ + readonly idle?: cdk.Duration; +} + +/** + * Defines listener for a VirtualNode + */ +export abstract class VirtualNodeListener { + /** + * Returns an HTTP Listener for a VirtualNode + */ + public static http(props: HttpVirtualNodeListenerOptions = {}): VirtualNodeListener { + return new VirtualNodeListenerImpl(Protocol.HTTP, props.healthCheck, props.timeout, props.port); + } + + /** + * Returns an HTTP2 Listener for a VirtualNode + */ + public static http2(props: HttpVirtualNodeListenerOptions = {}): VirtualNodeListener { + return new VirtualNodeListenerImpl(Protocol.HTTP2, props.healthCheck, props.timeout, props.port); + } + + /** + * Returns an GRPC Listener for a VirtualNode + */ + public static grpc(props: GrpcVirtualNodeListenerOptions = {}): VirtualNodeListener { + return new VirtualNodeListenerImpl(Protocol.GRPC, props.healthCheck, props.timeout, props.port); + } + + /** + * Returns an TCP Listener for a VirtualNode + */ + public static tcp(props: TcpVirtualNodeListenerOptions = {}): VirtualNodeListener { + return new VirtualNodeListenerImpl(Protocol.TCP, props.healthCheck, props.timeout, props.port); + } + + /** + * Binds the current object when adding Listener to a VirtualNode + */ + public abstract bind(scope: cdk.Construct): VirtualNodeListenerConfig; + +} + +class VirtualNodeListenerImpl extends VirtualNodeListener { + constructor(private readonly protocol: Protocol, + private readonly healthCheck: HealthCheck | undefined, + private readonly timeout: HttpTimeout | undefined, + private readonly port: number = 8080) { super(); } + + public bind(_scope: cdk.Construct): VirtualNodeListenerConfig { + return { + listener: { + portMapping: { + port: this.port, + protocol: this.protocol, + }, + healthCheck: this.healthCheck ? this.renderHealthCheck(this.healthCheck) : undefined, + timeout: this.timeout ? this.renderTimeout(this.timeout) : undefined, + }, + }; + } + + private renderHealthCheck(hc: HealthCheck): CfnVirtualNode.HealthCheckProperty | undefined { + if (hc === undefined) { return undefined; } + + if (hc.protocol === Protocol.TCP && hc.path) { + throw new Error('The path property cannot be set with Protocol.TCP'); + } + + if (hc.protocol === Protocol.GRPC && hc.path) { + throw new Error('The path property cannot be set with Protocol.GRPC'); + } + + const healthCheck: CfnVirtualNode.HealthCheckProperty = { + healthyThreshold: hc.healthyThreshold || 2, + intervalMillis: (hc.interval || cdk.Duration.seconds(5)).toMilliseconds(), // min + path: hc.path || (hc.protocol === Protocol.HTTP ? '/' : undefined), + port: hc.port || this.port, + protocol: hc.protocol || this.protocol, + timeoutMillis: (hc.timeout || cdk.Duration.seconds(2)).toMilliseconds(), + unhealthyThreshold: hc.unhealthyThreshold || 2, + }; + + validateHealthChecks(healthCheck); + + return healthCheck; + } + + private renderTimeout(timeout: HttpTimeout): CfnVirtualNode.ListenerTimeoutProperty { + return ({ + [this.protocol]: { + idle: timeout?.idle !== undefined ? { + unit: 'ms', + value: timeout?.idle.toMilliseconds(), + } : undefined, + perRequest: timeout?.perRequest !== undefined ? { + unit: 'ms', + value: timeout?.perRequest.toMilliseconds(), + } : undefined, + }, + }); + } +} diff --git a/packages/@aws-cdk/aws-appmesh/lib/virtual-node.ts b/packages/@aws-cdk/aws-appmesh/lib/virtual-node.ts index b8b9da2026715..fd8b2cadc87db 100644 --- a/packages/@aws-cdk/aws-appmesh/lib/virtual-node.ts +++ b/packages/@aws-cdk/aws-appmesh/lib/virtual-node.ts @@ -3,8 +3,8 @@ import * as cdk from '@aws-cdk/core'; import { Construct } from 'constructs'; import { CfnVirtualNode } from './appmesh.generated'; import { IMesh, Mesh } from './mesh'; -import { validateHealthChecks } from './private/utils'; -import { AccessLog, HealthCheck, PortMapping, Protocol, VirtualNodeListener } from './shared-interfaces'; +import { AccessLog } from './shared-interfaces'; +import { VirtualNodeListener, VirtualNodeListenerConfig } from './virtual-node-listener'; import { IVirtualService } from './virtual-service'; /** @@ -34,15 +34,6 @@ export interface IVirtualNode extends cdk.IResource { */ readonly mesh: IMesh; - /** - * Utility method to add backends for existing or new VirtualNodes - */ - addBackends(...props: IVirtualService[]): void; - - /** - * Utility method to add Node Listeners for new or existing VirtualNodes - */ - addListeners(...listeners: VirtualNodeListener[]): void; } /** @@ -95,7 +86,7 @@ export interface VirtualNodeBaseProps { * * @default - No listeners */ - readonly listener?: VirtualNodeListener; + readonly listeners?: VirtualNodeListener[]; /** * Access Logging Configuration for the virtual node @@ -130,71 +121,10 @@ abstract class VirtualNodeBase extends cdk.Resource implements IVirtualNode { * The Mesh which the VirtualNode belongs to */ public abstract readonly mesh: IMesh; - - protected readonly backends = new Array(); - protected readonly listeners = new Array(); - - /** - * Add a VirtualServices that this node is expected to send outbound traffic to - */ - public addBackends(...props: IVirtualService[]) { - for (const s of props) { - this.backends.push({ - virtualService: { - virtualServiceName: s.virtualServiceName, - }, - }); - } - } - - /** - * Utility method to add an inbound listener for this virtual node - */ - public addListeners(...listeners: VirtualNodeListener[]) { - if (this.listeners.length + listeners.length > 1) { - throw new Error('VirtualNode may have at most one listener'); - } - - for (const listener of listeners) { - const portMapping = listener.portMapping || { port: 8080, protocol: Protocol.HTTP }; - this.listeners.push({ - portMapping, - healthCheck: renderHealthCheck(listener.healthCheck, portMapping), - }); - } - } -} - -function renderHealthCheck(hc: HealthCheck | undefined, pm: PortMapping): CfnVirtualNode.HealthCheckProperty | undefined { - if (hc === undefined) { return undefined; } - - if (hc.protocol === Protocol.TCP && hc.path) { - throw new Error('The path property cannot be set with Protocol.TCP'); - } - - if (hc.protocol === Protocol.GRPC && hc.path) { - throw new Error('The path property cannot be set with Protocol.GRPC'); - } - - const protocol = hc.protocol ?? pm.protocol; - - const healthCheck: CfnVirtualNode.HealthCheckProperty = { - healthyThreshold: hc.healthyThreshold || 2, - intervalMillis: (hc.interval || cdk.Duration.seconds(5)).toMilliseconds(), // min - path: hc.path || (protocol === Protocol.HTTP ? '/' : undefined), - port: hc.port || pm.port, - protocol: hc.protocol || pm.protocol, - timeoutMillis: (hc.timeout || cdk.Duration.seconds(2)).toMilliseconds(), - unhealthyThreshold: hc.unhealthyThreshold || 2, - }; - - validateHealthChecks(healthCheck); - - return healthCheck; } /** - * VirtualNode represents a newly defined App Mesh VirtualNode + * VirtualNode represents a newly defined AppMesh VirtualNode * * Any inbound traffic that your virtual node expects should be specified as a * listener. Any outbound traffic that your virtual node expects to reach @@ -245,6 +175,9 @@ export class VirtualNode extends VirtualNodeBase { */ public readonly mesh: IMesh; + private readonly backends = new Array(); + private readonly listeners = new Array(); + constructor(scope: Construct, id: string, props: VirtualNodeProps) { super(scope, id, { physicalName: props.virtualNodeName || cdk.Lazy.stringValue({ produce: () => cdk.Names.uniqueId(this) }), @@ -252,8 +185,8 @@ export class VirtualNode extends VirtualNodeBase { this.mesh = props.mesh; - this.addBackends(...props.backends || []); - this.addListeners(...props.listener ? [props.listener] : []); + props.backends?.forEach(backend => this.addBackend(backend)); + props.listeners?.forEach(listener => this.addListener(listener)); const accessLogging = props.accessLog?.bind(this); const node = new CfnVirtualNode(this, 'Resource', { @@ -261,7 +194,7 @@ export class VirtualNode extends VirtualNodeBase { meshName: this.mesh.meshName, spec: { backends: cdk.Lazy.anyValue({ produce: () => this.backends }, { omitEmptyArray: true }), - listeners: cdk.Lazy.anyValue({ produce: () => this.listeners }, { omitEmptyArray: true }), + listeners: cdk.Lazy.anyValue({ produce: () => this.listeners.map(listener => listener.listener) }, { omitEmptyArray: true }), serviceDiscovery: { dns: props.dnsHostName !== undefined ? { hostname: props.dnsHostName } : undefined, awsCloudMap: props.cloudMapService !== undefined ? { @@ -283,6 +216,24 @@ export class VirtualNode extends VirtualNodeBase { resourceName: this.physicalName, }); } + + /** + * Utility method to add an inbound listener for this VirtualNode + */ + public addListener(listener: VirtualNodeListener) { + this.listeners.push(listener.bind(this)); + } + + /** + * Add a Virtual Services that this node is expected to send outbound traffic to + */ + public addBackend(virtualService: IVirtualService) { + this.backends.push({ + virtualService: { + virtualServiceName: virtualService.virtualServiceName, + }, + }); + } } function renderAttributes(attrs?: {[key: string]: string}) { diff --git a/packages/@aws-cdk/aws-appmesh/package.json b/packages/@aws-cdk/aws-appmesh/package.json index 2789d9085284c..6b58c9981965a 100644 --- a/packages/@aws-cdk/aws-appmesh/package.json +++ b/packages/@aws-cdk/aws-appmesh/package.json @@ -153,6 +153,7 @@ "resource-attribute:@aws-cdk/aws-appmesh.VirtualGateway.virtualGatewayResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.VirtualGateway.virtualGatewayUid", "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeMeshName", + "duration-prop-type:@aws-cdk/aws-appmesh.VirtualNodeListener.timeout", "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeMeshOwner", "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeUid", @@ -172,7 +173,11 @@ "props-default-doc:@aws-cdk/aws-appmesh.VirtualRouterAttributes.virtualRouterName", "docs-public-apis:@aws-cdk/aws-appmesh.Protocol.HTTP", "docs-public-apis:@aws-cdk/aws-appmesh.Protocol.HTTP2", - "docs-public-apis:@aws-cdk/aws-appmesh.Protocol.GRPC" + "docs-public-apis:@aws-cdk/aws-appmesh.Protocol.GRPC", + "duration-prop-type:@aws-cdk/aws-appmesh.GrpcVirtualNodeListenerOptions.timeout", + "duration-prop-type:@aws-cdk/aws-appmesh.HttpVirtualNodeListenerOptions.timeout", + "duration-prop-type:@aws-cdk/aws-appmesh.Http2VirtualNodeListenerOptions.timeout", + "duration-prop-type:@aws-cdk/aws-appmesh.TcpVirtualNodeListenerOptions.timeout" ] }, "stability": "experimental", diff --git a/packages/@aws-cdk/aws-appmesh/test/integ.mesh.ts b/packages/@aws-cdk/aws-appmesh/test/integ.mesh.ts index 3de6eb20c77d2..8bad51d706a32 100644 --- a/packages/@aws-cdk/aws-appmesh/test/integ.mesh.ts +++ b/packages/@aws-cdk/aws-appmesh/test/integ.mesh.ts @@ -31,18 +31,18 @@ const virtualService = mesh.addVirtualService('service', { const node = mesh.addVirtualNode('node', { dnsHostName: `node1.${namespace.namespaceName}`, - listener: { + listeners: [appmesh.VirtualNodeListener.http({ healthCheck: { healthyThreshold: 3, path: '/check-path', }, - }, + })], backends: [ virtualService, ], }); -node.addBackends(new appmesh.VirtualService(stack, 'service-2', { +node.addBackend(new appmesh.VirtualService(stack, 'service-2', { virtualServiceName: 'service2.domain.local', mesh, }), @@ -60,7 +60,7 @@ router.addRoute('route-1', { const node2 = mesh.addVirtualNode('node2', { dnsHostName: `node2.${namespace.namespaceName}`, - listener: { + listeners: [appmesh.VirtualNodeListener.http({ healthCheck: { healthyThreshold: 3, interval: cdk.Duration.seconds(5), @@ -70,7 +70,7 @@ const node2 = mesh.addVirtualNode('node2', { timeout: cdk.Duration.seconds(2), unhealthyThreshold: 2, }, - }, + })], backends: [ new appmesh.VirtualService(stack, 'service-3', { virtualServiceName: 'service3.domain.local', @@ -81,7 +81,7 @@ const node2 = mesh.addVirtualNode('node2', { const node3 = mesh.addVirtualNode('node3', { dnsHostName: `node3.${namespace.namespaceName}`, - listener: { + listeners: [appmesh.VirtualNodeListener.http({ healthCheck: { healthyThreshold: 3, interval: cdk.Duration.seconds(5), @@ -91,7 +91,7 @@ const node3 = mesh.addVirtualNode('node3', { timeout: cdk.Duration.seconds(2), unhealthyThreshold: 2, }, - }, + })], accessLog: appmesh.AccessLog.fromFilePath('/dev/stdout'), }); diff --git a/packages/@aws-cdk/aws-appmesh/test/test.health-check.ts b/packages/@aws-cdk/aws-appmesh/test/test.health-check.ts index 6f33658598efa..d65177a124b70 100644 --- a/packages/@aws-cdk/aws-appmesh/test/test.health-check.ts +++ b/packages/@aws-cdk/aws-appmesh/test/test.health-check.ts @@ -21,9 +21,9 @@ export = { const [min, max] = [5000, 300000]; // WHEN - const toThrow = (millis: number) => getNode(stack).addListeners({ + const toThrow = (millis: number) => getNode(stack).addListener(appmesh.VirtualNodeListener.http2({ healthCheck: { interval: cdk.Duration.millis(millis) }, - }); + })); // THEN test.doesNotThrow(() => toThrow(min)); @@ -40,9 +40,9 @@ export = { const [min, max] = [2000, 60000]; // WHEN - const toThrow = (millis: number) => getNode(stack).addListeners({ + const toThrow = (millis: number) => getNode(stack).addListener(appmesh.VirtualNodeListener.http2({ healthCheck: { timeout: cdk.Duration.millis(millis) }, - }); + })); // THEN test.doesNotThrow(() => toThrow(min)); @@ -59,9 +59,9 @@ export = { const [min, max] = [1, 65535]; // WHEN - const toThrow = (port: number) => getNode(stack).addListeners({ + const toThrow = (port: number) => getNode(stack).addListener(appmesh.VirtualNodeListener.http({ healthCheck: { port }, - }); + })); // THEN test.doesNotThrow(() => toThrow(min)); @@ -79,9 +79,9 @@ export = { const [min, max] = [2, 10]; // WHEN - const toThrow = (healthyThreshold: number) => getNode(stack).addListeners({ + const toThrow = (healthyThreshold: number) => getNode(stack).addListener(appmesh.VirtualNodeListener.http({ healthCheck: { healthyThreshold }, - }); + })); // THEN test.doesNotThrow(() => toThrow(min)); @@ -98,9 +98,9 @@ export = { const [min, max] = [2, 10]; // WHEN - const toThrow = (unhealthyThreshold: number) => getNode(stack).addListeners({ + const toThrow = (unhealthyThreshold: number) => getNode(stack).addListener(appmesh.VirtualNodeListener.http({ healthCheck: { unhealthyThreshold }, - }); + })); // THEN test.doesNotThrow(() => toThrow(min)); @@ -115,12 +115,12 @@ export = { const stack = new cdk.Stack(); // WHEN - const toThrow = (protocol: appmesh.Protocol) => getNode(stack).addListeners({ + const toThrow = (protocol: appmesh.Protocol) => getNode(stack).addListener(appmesh.VirtualNodeListener.http({ healthCheck: { protocol, path: '/', }, - }); + })); // THEN test.doesNotThrow(() => toThrow(appmesh.Protocol.HTTP)); @@ -134,12 +134,12 @@ export = { const stack = new cdk.Stack(); // WHEN - const toThrow = (protocol: appmesh.Protocol) => getNode(stack).addListeners({ + const toThrow = (protocol: appmesh.Protocol) => getNode(stack).addListener(appmesh.VirtualNodeListener.http({ healthCheck: { protocol, path: '/', }, - }); + })); // THEN test.doesNotThrow(() => toThrow(appmesh.Protocol.HTTP)); @@ -148,4 +148,4 @@ export = { test.done(); }, -}; +}; \ No newline at end of file diff --git a/packages/@aws-cdk/aws-appmesh/test/test.mesh.ts b/packages/@aws-cdk/aws-appmesh/test/test.mesh.ts index 690dce4a08ddc..1f67c708e561a 100644 --- a/packages/@aws-cdk/aws-appmesh/test/test.mesh.ts +++ b/packages/@aws-cdk/aws-appmesh/test/test.mesh.ts @@ -57,7 +57,7 @@ export = { 'When adding a Virtual Router to existing mesh': { 'with at least one complete port mappings': { - 'shoulld create proper router'(test: Test) { + 'should create proper router'(test: Test) { // GIVEN const stack = new cdk.Stack(); @@ -208,12 +208,9 @@ export = { const node = mesh.addVirtualNode('test-node', { dnsHostName: 'test.domain.local', - listener: { - portMapping: { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], }); mesh.addVirtualService('service2', { @@ -287,12 +284,9 @@ export = { mesh.addVirtualNode('test-node', { dnsHostName: 'test.domain.local', - listener: { - portMapping: { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], }); // THEN @@ -329,11 +323,8 @@ export = { mesh.addVirtualNode('test-node', { dnsHostName: 'test.domain.local', - listener: { - portMapping: { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, healthCheck: { healthyThreshold: 3, path: '/', @@ -341,7 +332,7 @@ export = { timeout: cdk.Duration.seconds(2), // min unhealthyThreshold: 2, }, - }, + })], }); // THEN @@ -388,12 +379,9 @@ export = { mesh.addVirtualNode('test-node', { dnsHostName: 'test.domain.local', - listener: { - portMapping: { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], backends: [ service1, ], diff --git a/packages/@aws-cdk/aws-appmesh/test/test.virtual-node.ts b/packages/@aws-cdk/aws-appmesh/test/test.virtual-node.ts index 06928a4a25351..75c7d0579e71b 100644 --- a/packages/@aws-cdk/aws-appmesh/test/test.virtual-node.ts +++ b/packages/@aws-cdk/aws-appmesh/test/test.virtual-node.ts @@ -28,41 +28,39 @@ export = { const node = new appmesh.VirtualNode(stack, 'test-node', { mesh, dnsHostName: 'test', - listener: {}, backends: [service1], }); - node.addBackends(service2); + node.addBackend(service2); // THEN - expect(stack).to( - haveResourceLike('AWS::AppMesh::VirtualNode', { - Spec: { - Backends: [ - { - VirtualService: { - VirtualServiceName: { - 'Fn::GetAtt': ['service1A48078CF', 'VirtualServiceName'], - }, + expect(stack).to(haveResourceLike('AWS::AppMesh::VirtualNode', { + Spec: { + Backends: [ + { + VirtualService: { + VirtualServiceName: { + 'Fn::GetAtt': ['service1A48078CF', 'VirtualServiceName'], }, }, - { - VirtualService: { - VirtualServiceName: { - 'Fn::GetAtt': ['service27C65CF7D', 'VirtualServiceName'], - }, + }, + { + VirtualService: { + VirtualServiceName: { + 'Fn::GetAtt': ['service27C65CF7D', 'VirtualServiceName'], }, }, - ], - }, - }), - ); + }, + ], + }, + })); test.done(); }, }, + 'when a single portmapping is added': { - 'should add the portmapping to the resoource'(test: Test) { + 'should add the portmapping to the resource'(test: Test) { // GIVEN const stack = new cdk.Stack(); @@ -75,28 +73,184 @@ export = { dnsHostName: 'test', }); - node.addListeners({ - portMapping: { - port: 8081, - protocol: appmesh.Protocol.TCP, + node.addListener(appmesh.VirtualNodeListener.tcp({ + port: 8081, + })); + + // THEN + expect(stack).to(haveResourceLike('AWS::AppMesh::VirtualNode', { + Spec: { + Listeners: [ + { + PortMapping: { + Port: 8081, + Protocol: 'tcp', + }, + }, + ], }, + })); + + test.done(); + }, + }, + + 'when a listener is added with timeout': { + 'should add the listener timeout to the resource'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + + // WHEN + const mesh = new appmesh.Mesh(stack, 'mesh', { + meshName: 'test-mesh', + }); + + new appmesh.VirtualNode(stack, 'test-node', { + mesh, + dnsHostName: 'test', + listeners: [appmesh.VirtualNodeListener.grpc({ + port: 80, + timeout: { + idle: cdk.Duration.seconds(10), + perRequest: cdk.Duration.seconds(10), + }, + })], }); // THEN - expect(stack).to( - haveResourceLike('AWS::AppMesh::VirtualNode', { - Spec: { - Listeners: [ - { - PortMapping: { - Port: 8081, - Protocol: 'tcp', + expect(stack).to(haveResourceLike('AWS::AppMesh::VirtualNode', { + Spec: { + Listeners: [ + { + PortMapping: { + Port: 80, + Protocol: 'grpc', + }, + Timeout: { + GRPC: { + Idle: { + Unit: 'ms', + Value: 10000, + }, + PerRequest: { + Unit: 'ms', + Value: 10000, + }, }, }, - ], - }, - }), - ); + }, + ], + }, + })); + + test.done(); + }, + }, + + 'when a listener is added with healthcheck ': { + 'should add a default listener healthcheck to the resource'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + + // WHEN + const mesh = new appmesh.Mesh(stack, 'mesh', { + meshName: 'test-mesh', + }); + + new appmesh.VirtualNode(stack, 'test-node', { + mesh, + dnsHostName: 'test', + listeners: [appmesh.VirtualNodeListener.http2({ + port: 80, + healthCheck: {}, + timeout: { idle: cdk.Duration.seconds(10) }, + })], + }); + + // THEN + expect(stack).to(haveResourceLike('AWS::AppMesh::VirtualNode', { + Spec: { + Listeners: [ + { + HealthCheck: { + HealthyThreshold: 2, + IntervalMillis: 5000, + Port: 80, + Protocol: 'http2', + TimeoutMillis: 2000, + UnhealthyThreshold: 2, + }, + PortMapping: { + Port: 80, + Protocol: 'http2', + }, + Timeout: { + HTTP2: { + Idle: { + Unit: 'ms', + Value: 10000, + }, + }, + }, + }, + ], + }, + })); + + test.done(); + }, + }, + + 'when a listener is added with healthcheck with user defined props': { + 'should add a listener healthcheck to the resource'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + + // WHEN + const mesh = new appmesh.Mesh(stack, 'mesh', { + meshName: 'test-mesh', + }); + + const node = new appmesh.VirtualNode(stack, 'test-node', { + mesh, + dnsHostName: 'test', + }); + + node.addListener(appmesh.VirtualNodeListener.tcp({ + port: 80, + healthCheck: { timeout: cdk.Duration.seconds(3) }, + timeout: { idle: cdk.Duration.seconds(10) }, + })); + + // THEN + expect(stack).to(haveResourceLike('AWS::AppMesh::VirtualNode', { + Spec: { + Listeners: [ + { + HealthCheck: { + HealthyThreshold: 2, + IntervalMillis: 5000, + Port: 80, + Protocol: 'tcp', + TimeoutMillis: 3000, + UnhealthyThreshold: 2, + }, + PortMapping: { + Port: 80, + Protocol: 'tcp', + }, + Timeout: { + TCP: { + Idle: { + Unit: 'ms', + Value: 10000, + }, + }, + }, + }, + ], + }, + })); test.done(); }, diff --git a/packages/@aws-cdk/aws-appmesh/test/test.virtual-router.ts b/packages/@aws-cdk/aws-appmesh/test/test.virtual-router.ts index 72510c83c4de2..56960564d6981 100644 --- a/packages/@aws-cdk/aws-appmesh/test/test.virtual-router.ts +++ b/packages/@aws-cdk/aws-appmesh/test/test.virtual-router.ts @@ -106,13 +106,9 @@ export = { const node = mesh.addVirtualNode('test-node', { dnsHostName: 'test', - listener: { - portMapping: - { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], backends: [service1], }); @@ -179,39 +175,27 @@ export = { const node = mesh.addVirtualNode('test-node', { dnsHostName: 'test', - listener: { - portMapping: - { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], backends: [ service1, ], }); const node2 = mesh.addVirtualNode('test-node2', { dnsHostName: 'test', - listener: { - portMapping: - { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], backends: [ service2, ], }); const node3 = mesh.addVirtualNode('test-node3', { dnsHostName: 'test', - listener: { - portMapping: - { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], backends: [ service1, ], @@ -337,13 +321,9 @@ export = { const node = mesh.addVirtualNode('test-node', { dnsHostName: 'test', - listener: { - portMapping: - { - port: 8080, - protocol: appmesh.Protocol.HTTP, - }, - }, + listeners: [appmesh.VirtualNodeListener.http({ + port: 8080, + })], backends: [ service1, ], From 544e80274a307df9009798aed928b90faf4554dc Mon Sep 17 00:00:00 2001 From: Nick Lynch Date: Wed, 11 Nov 2020 19:35:24 +0000 Subject: [PATCH 06/41] chore: automatically add missing libraries to more packages (#11428) The `create-missing-packages` script currently adds new libraries to `decdk`; this change does the same for our other "mega" packages that need some kind of dependency on each new service construct library. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../build-tools/create-missing-libraries.ts | 28 +++++++++++++------ .../cloudformation-include/package.json | 4 +-- packages/aws-cdk-lib/package.json | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts b/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts index 2bf2b707b6a09..55863ee5f8e13 100644 --- a/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts +++ b/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts @@ -298,19 +298,31 @@ async function main() { await fs.copy(path.join(templateDir, file), path.join(packagePath, file)); } - // update decdk - const decdkPkgJsonPath = path.join(__dirname, '..', '..', '..', 'decdk', 'package.json'); - const decdkPkg = JSON.parse(await fs.readFile(decdkPkgJsonPath, 'utf8')); + await addDependencyToMegaPackage(path.join('@aws-cdk', 'cloudformation-include'), packageName, version, ['dependencies', 'peerDependencies']); + await addDependencyToMegaPackage('aws-cdk-lib', packageName, version, ['devDependencies']); + await addDependencyToMegaPackage('monocdk', packageName, version, ['devDependencies']); + await addDependencyToMegaPackage('decdk', packageName, version, ['dependencies']); + } +} + +/** + * A few of our packages (e.g., decdk, aws-cdk-lib) require a dependency on every service package. + * This automates adding the dependency (and peer dependency) to the package.json. + */ +async function addDependencyToMegaPackage(megaPackageName: string, packageName: string, version: string, dependencyTypes: string[]) { + const packageJsonPath = path.join(__dirname, '..', '..', '..', megaPackageName, 'package.json'); + const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8')); + dependencyTypes.forEach(dependencyType => { const unorderedDeps = { - ...decdkPkg.dependencies, + ...packageJson[dependencyType], [packageName]: version, }; - decdkPkg.dependencies = {}; + packageJson[dependencyType] = {}; Object.keys(unorderedDeps).sort().forEach(k => { - decdkPkg.dependencies[k] = unorderedDeps[k]; + packageJson[dependencyType][k] = unorderedDeps[k]; }); - await fs.writeFile(decdkPkgJsonPath, JSON.stringify(decdkPkg, null, 2) + '\n'); - } + }); + await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n'); } main().catch(e => { diff --git a/packages/@aws-cdk/cloudformation-include/package.json b/packages/@aws-cdk/cloudformation-include/package.json index a62d181f8243a..787e999447b0c 100644 --- a/packages/@aws-cdk/cloudformation-include/package.json +++ b/packages/@aws-cdk/cloudformation-include/package.json @@ -144,10 +144,10 @@ "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", "@aws-cdk/aws-ivs": "0.0.0", + "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-lakeformation": "0.0.0", "@aws-cdk/aws-lambda": "0.0.0", @@ -276,7 +276,7 @@ "@aws-cdk/aws-iotevents": "0.0.0", "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", - "@aws-cdk/aws-ivs": "@aws-cdk/aws-ivs", + "@aws-cdk/aws-ivs": "0.0.0", "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", diff --git a/packages/aws-cdk-lib/package.json b/packages/aws-cdk-lib/package.json index c1b5e38a89280..9ab275a5198ba 100644 --- a/packages/aws-cdk-lib/package.json +++ b/packages/aws-cdk-lib/package.json @@ -193,10 +193,10 @@ "@aws-cdk/aws-iotsitewise": "0.0.0", "@aws-cdk/aws-iotthingsgraph": "0.0.0", "@aws-cdk/aws-ivs": "0.0.0", + "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kinesis": "0.0.0", "@aws-cdk/aws-kinesisanalytics": "0.0.0", "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-kendra": "0.0.0", "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-lakeformation": "0.0.0", "@aws-cdk/aws-lambda": "0.0.0", From 6967f7da3b072196f11cccc2cd1d34d8f2975598 Mon Sep 17 00:00:00 2001 From: Matt Simpson Date: Thu, 12 Nov 2020 09:04:11 +1300 Subject: [PATCH 07/41] docs(lamba-event-sources): Fix code example in README.md (#11411) Fix missing parenthesis in Kinesis code example ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-lambda-event-sources/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-lambda-event-sources/README.md b/packages/@aws-cdk/aws-lambda-event-sources/README.md index b1fec3c4c78a7..656d09f56f448 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/README.md +++ b/packages/@aws-cdk/aws-lambda-event-sources/README.md @@ -202,7 +202,7 @@ const stream = new kinesis.Stream(this, 'MyStream'); myFunction.addEventSource(new KinesisEventSource(stream, { batchSize: 100, // default startingPosition: lambda.StartingPosition.TRIM_HORIZON -}); +})); ``` ## Roadmap From 5f3d646d9b7709becb6a033aae01cb09f8604c86 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 11 Nov 2020 22:29:14 +0000 Subject: [PATCH 08/41] chore(deps): bump aws-sdk from 2.789.0 to 2.790.0 (#11432) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.789.0 to 2.790.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.789.0...v2.790.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .../aws-cloudfront-origins/package.json | 2 +- packages/@aws-cdk/aws-cloudfront/package.json | 2 +- packages/@aws-cdk/aws-cloudtrail/package.json | 2 +- packages/@aws-cdk/aws-codebuild/package.json | 2 +- packages/@aws-cdk/aws-codecommit/package.json | 2 +- packages/@aws-cdk/aws-dynamodb/package.json | 2 +- packages/@aws-cdk/aws-eks/package.json | 2 +- .../@aws-cdk/aws-events-targets/package.json | 2 +- packages/@aws-cdk/aws-logs/package.json | 2 +- packages/@aws-cdk/aws-route53/package.json | 2 +- packages/@aws-cdk/aws-sqs/package.json | 2 +- .../@aws-cdk/custom-resources/package.json | 2 +- packages/aws-cdk/package.json | 2 +- packages/cdk-assets/package.json | 2 +- yarn.lock | 100 ++---------------- 15 files changed, 20 insertions(+), 108 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudfront-origins/package.json b/packages/@aws-cdk/aws-cloudfront-origins/package.json index 06e954237cdf8..3a2f8da53bcee 100644 --- a/packages/@aws-cdk/aws-cloudfront-origins/package.json +++ b/packages/@aws-cdk/aws-cloudfront-origins/package.json @@ -72,7 +72,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-ec2": "0.0.0", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "pkglint": "0.0.0" diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 587776d1d4edb..cbe98e36ec2cb 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index 3146f7f682988..265bc78a5133d 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index 001cec43f99fd..fd8384c9da842 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -79,7 +79,7 @@ "@aws-cdk/aws-sns": "0.0.0", "@aws-cdk/aws-sqs": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index 53beb4f72810b..df66b2582f1e4 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -79,7 +79,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-sns": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index d4de8e8e1d2a0..3ff3fa0d1a859 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -74,7 +74,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.15", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index f23de775f4ba2..dcbb43dceb5cb 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", "@types/yaml": "1.9.6", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-events-targets/package.json b/packages/@aws-cdk/aws-events-targets/package.json index c9d8e2fd475b9..a0ba41f0e6682 100644 --- a/packages/@aws-cdk/aws-events-targets/package.json +++ b/packages/@aws-cdk/aws-events-targets/package.json @@ -75,7 +75,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index 9034ee8214849..b64ccc157d4f1 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index c2ae9cfcb68b6..2d71393f32bd8 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index f1a5ee11d78bb..ccd18a54f2ac9 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index b8942190103fe..cdae20b2b13e1 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -79,7 +79,7 @@ "@types/aws-lambda": "^8.10.64", "@types/fs-extra": "^8.1.1", "@types/sinon": "^9.0.8", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 375fe4b4f9ff6..dc7c21a9bd21e 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -71,7 +71,7 @@ "@aws-cdk/region-info": "0.0.0", "@aws-cdk/yaml-cfn": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "camelcase": "^6.2.0", "cdk-assets": "0.0.0", "colors": "^1.4.0", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 6d82300abeb4d..0359545c0768b 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -47,7 +47,7 @@ "@aws-cdk/cloud-assembly-schema": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.789.0", + "aws-sdk": "^2.790.0", "glob": "^7.1.6", "yargs": "^16.1.0" }, diff --git a/yarn.lock b/yarn.lock index d401cd2040c16..a0e71abdf5ee2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3575,11 +3575,6 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" -app-root-path@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" - integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== - append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -3847,10 +3842,10 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.596.0, aws-sdk@^2.637.0, aws-sdk@^2.789.0: - version "2.789.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.789.0.tgz#a1b0a8b8b4227a7947c04e8d75239ba27d2deb93" - integrity sha512-Jqq+M4N0EgkyS4OPf05UHa7IWUcpuBdnpwMRgBnu4Ju6PxpOTh1UQcmYepVmIN3m6YVpLwFctEYzAMJFM3LT1A== +aws-sdk@^2.637.0, aws-sdk@^2.790.0: + version "2.790.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.790.0.tgz#0c01634e59ff2a761e889808bee26dfd1ea28a2d" + integrity sha512-L278KsE+g/LsXIjLhpdtbvMcEZzZ/5dTBLIh6VIcNF0z63xlnDJQ4IWTDZ3Op5fK9B6vwQxlPT7XD5+egu+qoA== dependencies: buffer "4.9.2" events "1.1.1" @@ -5965,21 +5960,11 @@ dotenv-expand@^5.1.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv-json@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dotenv-json/-/dotenv-json-1.0.0.tgz#fc7f672aafea04bed33818733b9f94662332815c" - integrity sha512-jAssr+6r4nKhKRudQ0HOzMskOFFi9+ubXWwmrSGJFgTvpjyPXCXsCsYbjif6mXp7uxA7xY3/LGaiTQukZzSbOQ== - dotenv@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== -dotenv@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - dotgitignore@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" @@ -6249,11 +6234,6 @@ escodegen@^1.11.0, escodegen@^1.14.1, escodegen@^1.8.1: optionalDependencies: source-map "~0.6.1" -eslint-config-standard@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" - integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== - eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" @@ -6281,14 +6261,6 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - eslint-plugin-import@^2.22.1: version "2.22.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" @@ -6308,33 +6280,11 @@ eslint-plugin-import@^2.22.1: resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-promise@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" - integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== - eslint-plugin-rulesdir@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-rulesdir/-/eslint-plugin-rulesdir-0.1.0.tgz#ad144d7e98464fda82963eff3fab331aecb2bf08" integrity sha1-rRRNfphGT9qClj7/P6szGuyyvwg= -eslint-plugin-standard@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== - eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -7646,7 +7596,7 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -7878,13 +7828,6 @@ is-core-module@^2.0.0: dependencies: has "^1.0.3" -is-core-module@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" - integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9061,24 +9004,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -lambda-leak@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lambda-leak/-/lambda-leak-2.0.0.tgz#771985d3628487f6e885afae2b54510dcfb2cd7e" - integrity sha1-dxmF02KEh/boha+uK1RRDc+yzX4= - -lambda-tester@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/lambda-tester/-/lambda-tester-3.6.0.tgz#ceb7d4f4f0da768487a05cff37dcd088508b5247" - integrity sha512-F2ZTGWCLyIR95o/jWK46V/WnOCFAEUG/m/V7/CLhPJ7PCM+pror1rZ6ujP3TkItSGxUfpJi0kqwidw+M/nEqWw== - dependencies: - app-root-path "^2.2.1" - dotenv "^8.0.0" - dotenv-json "^1.0.0" - lambda-leak "^2.0.0" - semver "^6.1.1" - uuid "^3.3.2" - vandium-utils "^1.1.1" - lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" @@ -12024,14 +11949,6 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13 dependencies: path-parse "^1.0.6" -resolve@^1.10.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" - resolve@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" @@ -12232,7 +12149,7 @@ semver@7.x, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -13845,11 +13762,6 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -vandium-utils@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vandium-utils/-/vandium-utils-1.2.0.tgz#44735de4b7641a05de59ebe945f174e582db4f59" - integrity sha1-RHNd5LdkGgXeWevpRfF05YLbT1k= - vendors@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" From e5c2e589f2e4f5f1d680b7df9e5a2da5ade01780 Mon Sep 17 00:00:00 2001 From: Nathan Peck Date: Wed, 11 Nov 2020 18:06:03 -0500 Subject: [PATCH 09/41] chore(ecs-service-extensions): Promoting the ecs-service-extensions package to stable (#11431) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../@aws-cdk-containers/ecs-service-extensions/README.md | 4 +--- .../@aws-cdk-containers/ecs-service-extensions/package.json | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/@aws-cdk-containers/ecs-service-extensions/README.md b/packages/@aws-cdk-containers/ecs-service-extensions/README.md index 9302b90e5d9a3..cbca327f0ee12 100644 --- a/packages/@aws-cdk-containers/ecs-service-extensions/README.md +++ b/packages/@aws-cdk-containers/ecs-service-extensions/README.md @@ -2,9 +2,7 @@ --- -![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge) - -> The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package. +![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge) --- diff --git a/packages/@aws-cdk-containers/ecs-service-extensions/package.json b/packages/@aws-cdk-containers/ecs-service-extensions/package.json index 4b1da71dd86fe..e33dc561b65b8 100644 --- a/packages/@aws-cdk-containers/ecs-service-extensions/package.json +++ b/packages/@aws-cdk-containers/ecs-service-extensions/package.json @@ -99,6 +99,6 @@ "awscdkio": { "announce": false }, - "maturity": "experimental", - "stability": "experimental" -} + "maturity": "stable", + "stability": "stable" +} \ No newline at end of file From cc28485fd6333377258d0506bcaa63fb79d1da19 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 12 Nov 2020 00:51:22 +0000 Subject: [PATCH 10/41] chore(deps-dev): bump parcel from 2.0.0-nightly.443 to 2.0.0-nightly.444 (#11435) Bumps [parcel](https://github.com/parcel-bundler/parcel) from 2.0.0-nightly.443 to 2.0.0-nightly.444. - [Release notes](https://github.com/parcel-bundler/parcel/releases) - [Changelog](https://github.com/parcel-bundler/parcel/blob/v2/CHANGELOG.md) - [Commits](https://github.com/parcel-bundler/parcel/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .../@aws-cdk/aws-lambda-nodejs/package.json | 2 +- yarn.lock | 920 +++++++++--------- 2 files changed, 461 insertions(+), 461 deletions(-) diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index de6ea3d7b31a8..cf929a95db74c 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "delay": "4.4.0", - "parcel": "2.0.0-nightly.443", + "parcel": "2.0.0-nightly.444", "pkglint": "0.0.0" }, "dependencies": { diff --git a/yarn.lock b/yarn.lock index a0e71abdf5ee2..4dc926663112b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2159,128 +2159,128 @@ dependencies: "@types/node" ">= 8" -"@parcel/babel-ast-utils@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2067.tgz#bbb65a31eb2531a8d8bec1416b5d0047a74b57ac" - integrity sha512-1oWLszHqibl9giNCzzwd9DVePmivPridrcOlX+txSAkuQ2FG0mVSutv25XturJ6g/B6z78pL2tNV/fdVjf6lkA== +"@parcel/babel-ast-utils@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2068.tgz#3671e1a2fecfd521414e992cbdd9a60552b3a174" + integrity sha512-5tAgLraq10c8GY7iInEUAQbxGigWAM6+X6K4L5hgns4pw6QgD5+XtDsAbQ4r5x6cHsxXDsPpJWtRPUNrVPBoyQ== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/babel-preset-env@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.445.tgz#93ecf8ed29179c99e5e6d7e1534fcfae7a72a73e" - integrity sha512-fkYiZocLAsEyjz50nibkVIHULP0hwV9K2Qjl+/tqA1WJYh6/TMb1/EsaQ4T1CTY+zVsCh3TgRY4a+WqQ+OCu/A== +"@parcel/babel-preset-env@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.446.tgz#2a2718e9245762b1444970571fb373e5e419db92" + integrity sha512-vW18hGRxSw/Lul9GFm5p6+yJt7OIW6opCSIakza7Ed/D+fgCmCtrb1v+B0phpB9CgK/Q19BXY3INemELF/1G+w== dependencies: "@babel/preset-env" "^7.4.0" semver "^5.4.1" -"@parcel/babylon-walk@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2067.tgz#102349d4f52d8046868429cb70f5fd4fe544957e" - integrity sha512-PlFGav6fC8HIsA1pS7moWTWgXuwL4OI+xH50Wee5Dc0Q3KNmfyqCJpnhRhCJTGmVe8KGYEgXF6MNwrvjVWUCbg== +"@parcel/babylon-walk@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2068.tgz#4e825d931124c340c4031964236942b50093287c" + integrity sha512-f5jj0MRGMR78whdcDKIRQ5mmhv0mJCRcrTAUibYz7qzaAdZaVR5uOQ0N+AzSN4v5S2F4uw7AtwWph5YnWCJKcA== dependencies: "@babel/types" "^7.0.0" lodash.clone "^4.5.0" -"@parcel/bundler-default@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.445.tgz#bac962673e7ebe6c8314e5cab7e89f03a00fca77" - integrity sha512-v6zhPfvte103vtZkAUh4mJkVLCLvX9ZjI8p6ZP3fDSI1Y5F8akWe4LWXOo1ATMjfELcwbcb317rOAKgwvV6fiQ== +"@parcel/bundler-default@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.446.tgz#e993ed9904771d517bb1b574eab3f668883e9828" + integrity sha512-MWeDM2i9SY5qgbtogzPeaWmR0lgBH+jyYlEjzPPb5QLEB3vPBAZxLOp2s8d7EHy/nNHmKy22znzHg7lsftCkqg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" -"@parcel/cache@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.445.tgz#ade1c56a3b8064223b5b4004d0f3a76116290617" - integrity sha512-HhOkWCCNRs8zdKRyiWUiYI63BZc4MjrgFCiNv00KxyDCtDXtZrD5yjzRdVbVMmJvoth8iAtNoSCrJ2hGsouPBQ== +"@parcel/cache@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.446.tgz#0cbcd98dc7c2896bc190809ced9bdb1a159b7f3c" + integrity sha512-Hqs+tA7pFm4EekHAv+QxUvqhwXclbafqTTYZKf1FXC3erQmhXeMdXBcpEeP6yZjJ1ZM5FEqjK+L8LOTcHoriWQ== dependencies: - "@parcel/logger" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/logger" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/codeframe@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.445.tgz#4a89d283e26a0e24eb91954e499ecd80cf4472a2" - integrity sha512-lptg9/JUko0GXe4dbG39w7sIVyOhT414qVem6mOC7P7Fy0Us7Qat23nAlWGLICZ4iYavOO44B9yIRbwUv/WB7g== +"@parcel/codeframe@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.446.tgz#c017240ad1868ef3d68a62510fe6c1795da40ba2" + integrity sha512-78jYfjl7qWIsltPUTfdvhzZCQtrP2e4IKiKItc3ToJgBIfkFnA0RT6EXKqlaecZQsJxsD/L5aNMpMVtCc70Zag== dependencies: chalk "^2.4.2" emphasize "^2.1.0" slice-ansi "^4.0.0" string-width "^4.2.0" -"@parcel/config-default@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.445.tgz#d48b91629ccf3b065702ce1b893fd7011a3cb494" - integrity sha512-v7l35yN+KYLzuzMEGxdHr8WSaTXhZlY7FQKeoZ7XupFRXAB2QsOyoIpm74LMkSsRLAWZ3JOQej3Ii79bbTvFHQ== - dependencies: - "@parcel/bundler-default" "2.0.0-nightly.445+adb92ee0" - "@parcel/namer-default" "2.0.0-nightly.445+adb92ee0" - "@parcel/optimizer-cssnano" "2.0.0-nightly.445+adb92ee0" - "@parcel/optimizer-data-url" "2.0.0-nightly.445+adb92ee0" - "@parcel/optimizer-htmlnano" "2.0.0-nightly.445+adb92ee0" - "@parcel/optimizer-terser" "2.0.0-nightly.445+adb92ee0" - "@parcel/packager-css" "2.0.0-nightly.445+adb92ee0" - "@parcel/packager-html" "2.0.0-nightly.445+adb92ee0" - "@parcel/packager-js" "2.0.0-nightly.445+adb92ee0" - "@parcel/packager-raw" "2.0.0-nightly.445+adb92ee0" - "@parcel/packager-raw-url" "2.0.0-nightly.2067+adb92ee0" - "@parcel/packager-ts" "2.0.0-nightly.445+adb92ee0" - "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2067+adb92ee0" - "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2067+adb92ee0" - "@parcel/reporter-cli" "2.0.0-nightly.445+adb92ee0" - "@parcel/reporter-dev-server" "2.0.0-nightly.445+adb92ee0" - "@parcel/resolver-default" "2.0.0-nightly.445+adb92ee0" - "@parcel/runtime-browser-hmr" "2.0.0-nightly.445+adb92ee0" - "@parcel/runtime-js" "2.0.0-nightly.445+adb92ee0" - "@parcel/runtime-react-refresh" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-babel" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-coffeescript" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-css" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-glsl" "2.0.0-nightly.2067+adb92ee0" - "@parcel/transformer-graphql" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-html" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-image" "2.0.0-nightly.2067+adb92ee0" - "@parcel/transformer-inline-string" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-js" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-json" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-jsonld" "2.0.0-nightly.2067+adb92ee0" - "@parcel/transformer-less" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-mdx" "2.0.0-nightly.2067+adb92ee0" - "@parcel/transformer-postcss" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-posthtml" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-pug" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-raw" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-sass" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-stylus" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-sugarss" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-toml" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-typescript-types" "2.0.0-nightly.445+adb92ee0" - "@parcel/transformer-vue" "2.0.0-nightly.2067+adb92ee0" - "@parcel/transformer-yaml" "2.0.0-nightly.445+adb92ee0" - -"@parcel/core@2.0.0-nightly.443+adb92ee0": - version "2.0.0-nightly.443" - resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.443.tgz#2aadb331972f97738d74e1032d8894cdd7b08fa1" - integrity sha512-tjxlSYwrR4X4244PvdKYQslAQf1jqsBSjVtb19tD+5r/B+nmWrZtVe3/S1JEu8rFVt54TGsgifrO4RyOOlvqVA== - dependencies: - "@parcel/cache" "2.0.0-nightly.445+adb92ee0" - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/events" "2.0.0-nightly.445+adb92ee0" - "@parcel/fs" "2.0.0-nightly.445+adb92ee0" - "@parcel/logger" "2.0.0-nightly.445+adb92ee0" - "@parcel/package-manager" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" +"@parcel/config-default@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.446.tgz#b0e51e62144add5da02e6ecd00ab7740b632f15b" + integrity sha512-VZPqQ1E43DxYzs5eYD9V/h4QtWLENaP6oOiFUtKDVRUftBfPXHP43TldKaIYHcKcWFTRTz16D3rrvzCw3DYGOw== + dependencies: + "@parcel/bundler-default" "2.0.0-nightly.446+3bfef282" + "@parcel/namer-default" "2.0.0-nightly.446+3bfef282" + "@parcel/optimizer-cssnano" "2.0.0-nightly.446+3bfef282" + "@parcel/optimizer-data-url" "2.0.0-nightly.446+3bfef282" + "@parcel/optimizer-htmlnano" "2.0.0-nightly.446+3bfef282" + "@parcel/optimizer-terser" "2.0.0-nightly.446+3bfef282" + "@parcel/packager-css" "2.0.0-nightly.446+3bfef282" + "@parcel/packager-html" "2.0.0-nightly.446+3bfef282" + "@parcel/packager-js" "2.0.0-nightly.446+3bfef282" + "@parcel/packager-raw" "2.0.0-nightly.446+3bfef282" + "@parcel/packager-raw-url" "2.0.0-nightly.2068+3bfef282" + "@parcel/packager-ts" "2.0.0-nightly.446+3bfef282" + "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2068+3bfef282" + "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2068+3bfef282" + "@parcel/reporter-cli" "2.0.0-nightly.446+3bfef282" + "@parcel/reporter-dev-server" "2.0.0-nightly.446+3bfef282" + "@parcel/resolver-default" "2.0.0-nightly.446+3bfef282" + "@parcel/runtime-browser-hmr" "2.0.0-nightly.446+3bfef282" + "@parcel/runtime-js" "2.0.0-nightly.446+3bfef282" + "@parcel/runtime-react-refresh" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-babel" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-coffeescript" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-css" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-glsl" "2.0.0-nightly.2068+3bfef282" + "@parcel/transformer-graphql" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-html" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-image" "2.0.0-nightly.2068+3bfef282" + "@parcel/transformer-inline-string" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-js" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-json" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-jsonld" "2.0.0-nightly.2068+3bfef282" + "@parcel/transformer-less" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-mdx" "2.0.0-nightly.2068+3bfef282" + "@parcel/transformer-postcss" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-posthtml" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-pug" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-raw" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-sass" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-stylus" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-sugarss" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-toml" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-typescript-types" "2.0.0-nightly.446+3bfef282" + "@parcel/transformer-vue" "2.0.0-nightly.2068+3bfef282" + "@parcel/transformer-yaml" "2.0.0-nightly.446+3bfef282" + +"@parcel/core@2.0.0-nightly.444+3bfef282": + version "2.0.0-nightly.444" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.444.tgz#cc652b318155cd3d228583efc2a607a05910af3c" + integrity sha512-zAOBus2xVDOcOebHBOHW7MEX7nvDUfBKWe3dSvgSu71STHQOU7rDvl/jTOx9fJ5JsQ7rD87xIhEmzvLXCOdfgw== + dependencies: + "@parcel/cache" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/events" "2.0.0-nightly.446+3bfef282" + "@parcel/fs" "2.0.0-nightly.446+3bfef282" + "@parcel/logger" "2.0.0-nightly.446+3bfef282" + "@parcel/package-manager" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/types" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" - "@parcel/workers" "2.0.0-nightly.445+adb92ee0" + "@parcel/types" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/workers" "2.0.0-nightly.446+3bfef282" abortcontroller-polyfill "^1.1.9" base-x "^3.0.8" browserslist "^4.6.6" @@ -2294,72 +2294,72 @@ querystring "^0.2.0" semver "^5.4.1" -"@parcel/diagnostic@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.445.tgz#9ee4346683445c7e6c05695d0c1e105dbc4a81ce" - integrity sha512-uURmdKGPQn5ZGHzJbuPTnTYDFWzsYlt6SBysVU5/OGoWXDlsW7nQ+MU7rfIQl9D5pgFtC9G+orwSPvjDmBi83w== +"@parcel/diagnostic@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.446.tgz#f0c0136bc9bf7e45491fe5789f4463a2a7922658" + integrity sha512-NPJNcbO5D1rpdiD57AJy77CmqgODq+Adjvk8ntt8yD/jVpzUp1ju21Ql3HbsuHDT5XFu8xEh2xUYgwuUy9KGAg== dependencies: json-source-map "^0.6.1" nullthrows "^1.1.1" -"@parcel/events@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.445.tgz#f8c7b0ab75bc9c2676bb65c428780467378f31ee" - integrity sha512-4w1NoPtP4lAl2IC0B3dNKEJgukSSArdnd/+D33Y57S6C9Ninw6nTrEQtfePmoZqNVcmEk/ztSBxixn484NE+IA== +"@parcel/events@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.446.tgz#82557b5f067b0adf17a391f028012ab6f21d7866" + integrity sha512-yShzChGKaDscBBIKcyy6eXX3/vXjne3pYkcBE+26vXATcDLhZr7ntN/LvBsgJ+/4a40lszymkc06aKDusBhCEA== -"@parcel/fs-write-stream-atomic@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2067.tgz#e868a6d75e791f66477f9fbc6b65763c0cd9f16c" - integrity sha512-zIKF9CfZQPi7iwbHTaulTY2k8ZUcnSj4tVeHKrd2XiX+5yv7Q80Kuk5GbpcnMw/FxSubxNvHX/x7oxbtFCiXeA== +"@parcel/fs-write-stream-atomic@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2068.tgz#a28e376bda170365665f681127715bc1b16b294e" + integrity sha512-HtBdsaMrXMOFzE+5k/Hsji4IGGmuVhvEBKBGjqFo5FYvrlaYsqT3fX7rFIxg5su4qFMMEZU24RI6IXVlFSoAKw== dependencies: graceful-fs "^4.1.2" iferr "^1.0.2" imurmurhash "^0.1.4" readable-stream "1 || 2" -"@parcel/fs@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.445.tgz#28bc385de0dc9ab7a776a0329fad92a33c5bc074" - integrity sha512-iQL/gAC7PfS8N1Vt6GZeb7b6zjtr0umEFlyC7uQ6lyV/Ln2syqTJWQ+OKCdpURdi2PY3dqzqD9OyNqVFpp5+IA== +"@parcel/fs@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.446.tgz#82cf51e6d48e207661ecb93a4847cf02d8f2a87f" + integrity sha512-K5k+j/DPG9EP0XOr2LJp0mQAodrpscIwSjWGMOvdEvGbY25FP4NB8Sg2Xs00KCaZVNlsKsrMpOsJyohP3ePpbg== dependencies: - "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2067+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2068+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" "@parcel/watcher" "2.0.0-alpha.8" - "@parcel/workers" "2.0.0-nightly.445+adb92ee0" + "@parcel/workers" "2.0.0-nightly.446+3bfef282" graceful-fs "^4.2.4" mkdirp "^0.5.1" ncp "^2.0.0" nullthrows "^1.1.1" rimraf "^3.0.2" -"@parcel/logger@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.445.tgz#5085896f9f4cd398b94ce2956e74a497886825f6" - integrity sha512-AtTE3ciR/xrqDSaEqEBgFd0zhUK5mCq+G7tXYeCu71+OphnCo30vSVe9NhsoZmWHoFvtOjCZ0M9ECfTJzVXRuw== +"@parcel/logger@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.446.tgz#38e46be237872d57d8a240776a478e576285b6bd" + integrity sha512-q3/yovljZeYMWfG9/ThC0z8RwUDzKVvJaYislfVt1k/BGVrvBy8Z3M65iut4ub0hTzTSzZKLTwHwmYbPU+pquQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/events" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/events" "2.0.0-nightly.446+3bfef282" -"@parcel/markdown-ansi@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.445.tgz#5a271162f65e2a2a3c5de5a2a95999d72336c01e" - integrity sha512-CoVZYc5JsdQfsgt3BVlR9u+36I6EBAwQOo7y4iR4nNiF/MWb8s30PGLTNjykYxyNxBI92YfHl8RTMgyeGuHCqw== +"@parcel/markdown-ansi@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.446.tgz#23538d1116393ff15e0de85300a5ae2e1e2c5fd7" + integrity sha512-FHXlTFPq9Iu6kuTOjrs0qMNFQ8REFBE96kFuSeTQ5omcOHL6eNIBO9VCIxima2Cz+9pQSNXhNlaUAUVRPCXJ2Q== dependencies: chalk "^2.4.2" -"@parcel/namer-default@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.445.tgz#19bd7440ac7c9510cf8b321838e39e5549d83dfb" - integrity sha512-hsYj0OCkh8LSshTSuW6HKR6O0YbHTPJydZ+5+XrV5v87PDOp1QBLeuDCR6hporRqx7KWBp20PROWrrXgjcvJmQ== +"@parcel/namer-default@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.446.tgz#3c43cabff1ea6615af53454a32d1ab9ea0eb69e0" + integrity sha512-DmqpV/GpgjtQerbVSO3rOW3gT+AaxslJWPqa9diFbtAQSrnzbJcuENnaxJzKWyGLT7TgMFoG86iqTiIWFnqfNA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" -"@parcel/node-libs-browser@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2067.tgz#8b6195a0013f2c4018d637bcd9de7b778aaf6e42" - integrity sha512-0Q5ZwBM3bZM3tYsMvh7SEc3iMc5d3AgSkn5MG6+rRbLnFP3dwRQws/2qpCghX9//2ifTa9jNwU7cSqlMdVN/Ng== +"@parcel/node-libs-browser@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2068.tgz#6178b587cdb236126b26a53bdbf4376b47bb4ebc" + integrity sha512-BNTYCeaBKyLUUeEaB4NNiV4b86VaJRcpzm1ykBpZRGsDSi4ts4KE1dzxJPm6Pe9N9NkMEXYdZX4VQA9CpxHXjA== dependencies: assert "^2.0.0" browserify-zlib "^0.2.0" @@ -2384,71 +2384,71 @@ util "^0.12.3" vm-browserify "^1.1.2" -"@parcel/node-resolver-core@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2067.tgz#27b083414d0a6f4ec532c67441f4b844bffde5c7" - integrity sha512-pXh5flmV49zo25nhZPxDzeIdQmuUNCX5okXELQC7aCbbSInLHZNwCAks0PaGCMXo+Cx5nWtzRaC50URn2LnJVA== +"@parcel/node-resolver-core@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2068.tgz#98537a4242537ed93aa0b1489c1a0870e57b1c49" + integrity sha512-BKa43I/Xi1j8TGn0XjvsM+BKPZeaJS7oLTy8GgZlA2Fk8cf5JFUem/t2iulF51qEb4B/CDQWHu63sEoC1IxarQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/node-libs-browser" "2.0.0-nightly.2067+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/node-libs-browser" "2.0.0-nightly.2068+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" micromatch "^3.0.4" nullthrows "^1.1.1" querystring "^0.2.0" -"@parcel/optimizer-cssnano@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.445.tgz#b4e3e8a42dfbbfee6f3e93bfa794ea575ee17f6f" - integrity sha512-jD4AEtloLMmEN2kJ7wGD+bN6krv/7MFifNSQTLSjuHR4X5yE68LYanUDiFwZFLoA5PS6IN0k2MPV5uQx5b/Iag== +"@parcel/optimizer-cssnano@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.446.tgz#73700f47036776d2b51fed6615468f1d9f05e3fc" + integrity sha512-pSqJFhnE3SjNhDmqbmEu5EPfMDY4Ghx2W6FSgAohk6FJy8wd4tS2ghlVavUHKOZopbcvAia3+OHJXqhl2K802w== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" cssnano "^4.1.10" postcss "^8.0.5" -"@parcel/optimizer-data-url@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.445.tgz#ecf601c69be85a343d4d7889048163c9b06f71da" - integrity sha512-6aCjXaEBHcMtr9u/7FBNRd0v2de27CdG+AKcDUopHOeT7algwlam59dvFQK/cGqTFYjuoTRQcEZaC3R6tmLqwg== +"@parcel/optimizer-data-url@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.446.tgz#d2feaf6e7cf40c21aae8d00758113b43ea611f3a" + integrity sha512-dCAutIyY0+shiTGFUfpTKTnixOg13sgjz/AAml6/iJHKWYcp4rvW6ilzXX2egi529OmfQkYq1hBFPaAMk5fcDA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" isbinaryfile "^4.0.2" mime "^2.4.4" -"@parcel/optimizer-htmlnano@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.445.tgz#d056a71c0f5e29a9a7c3103579a5cb977733fa2d" - integrity sha512-RiPJEStbZ4OtQYvTPd8KKuXANsgy86viA76u4mnadInupxsM+MRlxj/7eUt7t+kSqE/z6yoH1HTF69kpUgwXYw== +"@parcel/optimizer-htmlnano@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.446.tgz#fcd42db64dd9736470baebe844f27e4f294d885a" + integrity sha512-GeUEx5QTcxcvGrWVnVwSDbCgCaGqrQtvTVUndGaAJAYPnGzTzPZH3KzubD7WvBXYARXrrpjEvWCXmEN6hNsfSA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" htmlnano "^0.2.2" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/optimizer-terser@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.445.tgz#3e48db6cc5725151b6ef2ed12c65b904a2422bfb" - integrity sha512-DH+0UZCcFmeBEwLlY64ZZWyvoHi1bjVnKW7WLaRauHPBwrT3xGVkIa+hN7QHQ+E2t4jDCQd7IpfoswzBqGohvA== +"@parcel/optimizer-terser@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.446.tgz#9282e0a168b9b76b0380cc5aa32192ec4a38a6a0" + integrity sha512-lZXKeZLCTwTWf9aerhpENr5edc1xz8FmEGnyRPyqaln3VF1dJW7lLp/cCENh+8KyXwKvyxroZuIU+zTrNO0UDQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" terser "^5.2.0" -"@parcel/package-manager@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.445.tgz#5eaa68935f96ac11a92ccea99323aaa218f721b7" - integrity sha512-DhGslnPGIk/jd1DS5sNL3JLxk59GqvDn9Q+gAicB6QvKjF2Lq3GQLlnl6bi4bXetZwOYjdRBdaXikweJmKBs4A== +"@parcel/package-manager@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.446.tgz#56abd6a81be4a67e227bdc8ca1e49ff0bfb66eec" + integrity sha512-k0DD0AN2plk6NzwIIBWF+8uGxYWMp4kp9hfzE3ERmoLl6VKN77PEINCq2aGkcENhiXF4omO8u2A5K5Ns+I8QaA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/fs" "2.0.0-nightly.445+adb92ee0" - "@parcel/logger" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" - "@parcel/workers" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/fs" "2.0.0-nightly.446+3bfef282" + "@parcel/logger" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/workers" "2.0.0-nightly.446+3bfef282" command-exists "^1.2.6" cross-spawn "^6.0.4" nullthrows "^1.1.1" @@ -2456,91 +2456,91 @@ semver "^5.4.1" split2 "^3.1.1" -"@parcel/packager-css@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.445.tgz#688c2f1c96bd698325d8765c7acf3ebb049027ef" - integrity sha512-p1V4yBeF3RSds/o0e8V+Qs4/z+rDY32yakgdzBBYAtSYhPIIXUNaZMw0/DWqq7ClALeM6Xs+UQwFtT95worcIA== +"@parcel/packager-css@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.446.tgz#88d745452695bc09eb7e32039d61b196a928ff83" + integrity sha512-3SXRjRx5DD9QlcrICHINAWMaDxB/5Ki33eT4camu/1xDblpTvFcv7hRgYj37d1fXbyebKSUBKEzaUDjAUcwxOA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/packager-html@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.445.tgz#53fd08f3c9bd838940441a5098c2f70ac04a5099" - integrity sha512-LwOJELmGXX0yT0///njuzEzHSygjMZMDuDcJLMnMoiyA5MivoYWeVU/MTZvorTU8dzZ61SqiUIS1NbjDORp4vg== +"@parcel/packager-html@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.446.tgz#a2d4f92b69e1b0580a37515629fb18bcab70bc8b" + integrity sha512-qhNs0fcvSTsA6kNpjQq4MZYWFjTQETpDIXL9YSlSwgTAUwa7UEvn3a3C0W2X2OpgXaM+zqj/WifLuZQjrY0Qpg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/types" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/types" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/packager-js@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.445.tgz#7ce928ed783c924457395d1a1adc48e56490dda4" - integrity sha512-ePZzrgLJgZW+RUDiX/qZLDme2UmkIsFUr/4Rhdyc2S/QBMDAHcmBgXb61bavItw9CdzmyWdabqSx7jDr6RqzMw== +"@parcel/packager-js@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.446.tgz#2fa64b00dd946c14eb14c01cae9fea2fbb4c4b35" + integrity sha512-UN/J+xGh2uGamxVb5NRYlsfQUkUeEClo7Mzm+mj9OFjTEbCKc768qhTPf1X2cEG5WtrD5xxIToYTPbdArAB/nw== dependencies: "@babel/traverse" "^7.2.3" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/scope-hoisting" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/scope-hoisting" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" -"@parcel/packager-raw-url@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2067.tgz#5b93d627266ae4bd859c00c19da21a67cad56549" - integrity sha512-bCcOOrNAx17tOXMI5PJ1FtjJYj/idZokjmmeHZzrOmOjvppbGTNsDW92EyL3iBzB4aX0l9Dn9MSwV52/tWCVRA== +"@parcel/packager-raw-url@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2068.tgz#7359309410e1115ad820df0c33d3e45fbad8f8ad" + integrity sha512-nQfoCPewW57EjQRvHXXVhBqpU3qo8r4cpSmltKDb+7Mdb9KctYMy7AdO/bipXdIgvqk8H3k/KRvmhSi17MLBcw== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/packager-raw@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.445.tgz#a02bda8f218a03bcca9660e88f14e91e48c1830e" - integrity sha512-ZxZoWc9+5Bs+FXD6Kw2EP3DRp6F+Ya3qq4R2Jd+9EjjnfuH8leYOKwPghUio/G+AkSQEeOmBYgjhsE18o8ZpvA== +"@parcel/packager-raw@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.446.tgz#0d07aa9d453a5d00d2ead0e0a63bfe464b68c911" + integrity sha512-YrUwZDap0iwWYEvu2wYPp9gZw9eggnAt0r46s1+KvTWdSdJaB1M1Ctm+sF3BQvPuzvT3li69idVeMFA2T1Zodw== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/packager-ts@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.445.tgz#04110a5ade9682fe90b26f6f547ff0da47f50af4" - integrity sha512-adNSvw8A736QEhjI7quvo5RzZOZW3Q14d/vmP86qx1nBrCSeHy/MFl/CyjeebQpJuZeGXnoiIHX8aWhz96kshQ== +"@parcel/packager-ts@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.446.tgz#2f062227ee2e436c5a51a463a9d94c6358f34a04" + integrity sha512-DdCaZk8kZpzdAIIbxoHia5ga8swe535lYiuAbrbKBB4O1lmzXAtDy3ko3yV4rSPjTDG49PAQD26r5Q8pVApZ2Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/plugin@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.445.tgz#c9f5a2ed3ad214d78744d761d4c3301ab2ff9fa2" - integrity sha512-qxcX+BiKRdHyCYTpEjjMOzjzLjpZmhdXdmL6PwAESg0PjqA7KCx1pL6zVJHaR68mQ/WBXE2lX7hl++Nfg2vtbw== +"@parcel/plugin@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.446.tgz#7881c9a01a9641a0113925a6ec5e86ca7d7b115f" + integrity sha512-Rzi7MH5EeanlWdssuWXUx3wztdh1TApOFAP+XHDft+sBhlhdcuazywGyk6vzILAr1hIdKxO5DkUxnHR9Db1biQ== dependencies: - "@parcel/types" "2.0.0-nightly.445+adb92ee0" + "@parcel/types" "2.0.0-nightly.446+3bfef282" -"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2067.tgz#ddf3984b2e088d33b2332c6e8b07b8286172e74c" - integrity sha512-GitRUuMGk4cf2Jais2mSVNUH2R3hmojCUMS9zrxmK9zu+W9Okl1V4yhEX6NbwSmuzKXEUOU2utMlqUYN12z1dg== +"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2068.tgz#cfd47198f4e608812c6aa06be26b0a41657a8c9b" + integrity sha512-rG2UhcbCQ/F32FzEGX/CnD0kNGz5+cUn9ZAZoQJgn6Rrsafv2Edh6TGWtRK4znj8l77h4E0Rc/yYMqfFzKCdCQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" -"@parcel/reporter-bundle-buddy@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2067.tgz#38e05ca74d0c8c342a7269dc1a1bb65c064599d8" - integrity sha512-DEazr+ZzSTnDoP/kOamsPmD77IqwE8Fbp/HvDIDA4DQvkobxHLIt0w0Qr8lJ2tAgwzLRuAxA6UAHOvX6qVB1IQ== +"@parcel/reporter-bundle-buddy@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2068.tgz#dabae907e36fedc14218644b7bdd42a25cffc983" + integrity sha512-GrF0CXwmsB/T8jafDeMpEmOfaab6/YVe+JPsBGcvz7qlLUhtw7+Os4yhFyC9fkHDEHQxEGE1s5aeKGIvEQ0URg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/reporter-cli@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.445.tgz#135ad99e1568ec2534d1d4553857b241537a6b9b" - integrity sha512-88oGRxN2Eimi3BqzEHb1fdITCh0XPRHf79EFxY7jUoxJobJwBIu967BzG+yy7NvARgYkm8aBa9+f+KyASrXPpw== +"@parcel/reporter-cli@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.446.tgz#7a8259fcbefebf1e62090938e3bd83f6aed0e9ff" + integrity sha512-aVTDkX5ID8pcSqjm+soA2urRgkpsraMC37k6dAKqO4IZQFyrOr1J8ZSTFboZkJpls4A3msdd6aKkpNSAniSpzQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/types" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/types" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" chalk "^3.0.0" filesize "^3.6.0" nullthrows "^1.1.1" @@ -2549,13 +2549,13 @@ strip-ansi "^6.0.0" term-size "^2.1.1" -"@parcel/reporter-dev-server@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.445.tgz#45b7d8d2bcf17609e4542e5c7b6872fa5aa15189" - integrity sha512-mYJ+t9KMCA52AaYvg0dxIMqdSZbnckxxunIM/uPe+J7Nd71ImfSNMv7K/xVx67RrSm/YD0gSgbGI4yfWX2/kGQ== +"@parcel/reporter-dev-server@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.446.tgz#675b4f68be8841e9c5b7806bf08905c2bed8f01c" + integrity sha512-/KF1QiNtEbwlCFl6+1hQNznKyt0npwvfgreo9ZJEgX9IWj04Sbdz0JhaPjESq5+3Kb/e3N94RZWc7+pysdgEYg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" connect "^3.7.0" ejs "^2.6.1" http-proxy-middleware "^1.0.0" @@ -2563,54 +2563,54 @@ serve-handler "^6.0.0" ws "^6.2.0" -"@parcel/resolver-default@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.445.tgz#3aeff1e04f6005f019e93304ffbf29e01e38903a" - integrity sha512-A5hpAqtvFeA4AifeMSRBvUuJcKI5AnXotPXJ+ZoP6H8GjRcUbdkGSpObc+B6W4ZmMuYEtojGSHFA+eHcyVgQsg== +"@parcel/resolver-default@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.446.tgz#527780f91fd932e1a62d0e5742edf777ff046719" + integrity sha512-8ECX0H4g0KvEjgtnpP2BPNl+Ios0FEqUeg8/6pntsVKbFlKT6mfVsTwH2iXVq/96qCBfn/kuZUlKONrIzXbQ8A== dependencies: - "@parcel/node-resolver-core" "2.0.0-nightly.2067+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/node-resolver-core" "2.0.0-nightly.2068+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/runtime-browser-hmr@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.445.tgz#04f2863e4a82a16a3f31f69535757d0077418899" - integrity sha512-kqUdNGh0oxHOM8UcMzxXW6EiDq6rSaAR3TGXam+HcLPyid9U5rPGUn0+476vtoiwH/mOrjKXRWEZJ0DsdfhnFw== +"@parcel/runtime-browser-hmr@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.446.tgz#8ae59b67cedbdf6070d98967ca1de44259192823" + integrity sha512-J4kfVfbmfVugL66Ttl1Ma9iCbY11cXEu3TzMg6SWxps2RV33gTBOhrkZ4b0BMKL7M5rHF9++DZkUpB2t1PJq3Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/runtime-js@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.445.tgz#da86efc2f7c05ce0b6fd1f2d7c7935434f088b9c" - integrity sha512-/8HEZVm9Kc/mXM/wS3vyQxU3XLwKq/zEMiX8dKmWIrgFyqHBnKg06Xru1665mj1vhgpw1Viwr5DfrdjYVbuVVg== +"@parcel/runtime-js@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.446.tgz#39a93aec6c2e3d5f72b6391ab1e199c8bf86e112" + integrity sha512-R9BbQliTU09WR+r0Py2iPuaPvq3wyyl6LWVVM0RB0Ccn1QuVOEwng3Nk7Vn6wTLejARsgLs2koVHln35pX1JGg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" -"@parcel/runtime-react-refresh@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.445.tgz#ef0edf335e69c0c659213de7445242373fa62390" - integrity sha512-4V8Hf3XumyPcfKRehf8/3mfTZduuWWN/tz+A4fh/9WRh9u6Hz1ozAbTjS/fpd78HnzK5BUIglUkvMyD5inhxoQ== +"@parcel/runtime-react-refresh@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.446.tgz#5666360f5dba7db41716d5199ce40a438aeb394f" + integrity sha512-wXKmWbdFmlER3NHqoM8Rh+ObfAUNQZOMIxMWjVZE9W6bcRdfId4bGv5APHgn2Aed56oPKjbC2FOx3UYThCJOwQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" react-refresh "^0.9.0" -"@parcel/scope-hoisting@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.445.tgz#bfe8f3bc4b5020e71df0d5845944c00136783277" - integrity sha512-+S9Ud91ONAQzG/F6LTOyrZwNGXeT394vrI6/FqAtVVqnHWZXK6JmN26kPnou+8SB8oxkMbzGhMxzoft7mORQVQ== +"@parcel/scope-hoisting@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.446.tgz#f350b4650b84af0ede793fbc280ee48039b6de00" + integrity sha512-mmT7WqSEIRXYP4ChHai0fEXqofruAEQTWC9GwwEPE2iFjTgpGmF0NQW9H+PG/RQkeCbzG6rdYAZlIlJkhvuXKg== dependencies: "@babel/generator" "^7.3.3" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/traverse" "^7.2.3" "@babel/types" "^7.3.3" - "@parcel/babel-ast-utils" "2.0.0-nightly.2067+adb92ee0" - "@parcel/babylon-walk" "2.0.0-nightly.2067+adb92ee0" - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" + "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" + "@parcel/babylon-walk" "2.0.0-nightly.2068+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" "@parcel/source-map@2.0.0-alpha.4.16": @@ -2621,10 +2621,10 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -"@parcel/transformer-babel@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.445.tgz#b12affbcd5df92597d91e8d404698fd7add574b0" - integrity sha512-+vf48c1BLe/4GAz7XXARc9+O92yhQVELmmFOX5uV1dnNy1bdSg6Ek7Ln/uHe3iabcMJF4YbYKBKXJMWiUdalWw== +"@parcel/transformer-babel@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.446.tgz#778dd03df21206e23032cafa867e67f362c74240" + integrity sha512-CB5qQZZl0YA+vqnRQq+5huVhWDEe2xd6BNSz8U6K55ez/O9PRSaRosxRkkVIcQJr2jGAI7YTXC4zC3relcvMWA== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2634,85 +2634,85 @@ "@babel/preset-env" "^7.0.0" "@babel/preset-react" "^7.0.0" "@babel/traverse" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2067+adb92ee0" - "@parcel/babel-preset-env" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" + "@parcel/babel-preset-env" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" browserslist "^4.6.6" core-js "^3.2.1" nullthrows "^1.1.1" semver "^5.7.0" -"@parcel/transformer-coffeescript@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.445.tgz#b109291ec5d289cc3c02b3897aef64cb00a43358" - integrity sha512-81z83poTX4ZsoA7QnW0RqIsP7WXHsIz9X3+IXW78Gm12lmgXOXGD/cSY6QtlBi4oqFxtiE9gVgEWety4j8qcgw== +"@parcel/transformer-coffeescript@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.446.tgz#9315acf80e8a41726b0e8a9f7569e85895902a27" + integrity sha512-yJI5LvN9pVAv474Oz0OqbezegSzi+USMk7KLv9s7f+lCz870hoGXoxSX3u1WIvYT4j3VXblwDd895nBZ5KfV9g== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" coffeescript "^2.0.3" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-css@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.445.tgz#5c443563ae8e005af6be424b0de9ec5f81560ed6" - integrity sha512-g0tCf/U5PDVjbttEfS0OipXYkcJ9AgibkWt4K4BtP8q6t+lctB71eyinHamcNHFJoi/mKW0EzlObBER9pIV+4w== +"@parcel/transformer-css@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.446.tgz#5a904695c6f11bc68decfa06a5243b4582c484d1" + integrity sha512-mT6LJExHLeon7OXwfKpcxz1ATl1dsuAKYlDMo6F4pU82FcxdMFZD7dLUmvvsQ7rG43/ZPMermR5xlNPjfed+pA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" postcss "^8.0.5" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-glsl@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2067.tgz#11599d0f5804e1503f8e28e750b260c8bbc08cd1" - integrity sha512-IG0dggCM8R3EycMmMgT3BAhtIENfLf2FsaMGFlTiKcF71IXn9JPLjjbx+Yn5yASJyAHP0dWgycw4xCjrxxg5yA== +"@parcel/transformer-glsl@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2068.tgz#55fce558f9b1ce40ed16a76c0f96b52088fc2ef0" + integrity sha512-Azf/840wQ/6R1uJV05+QxywA6cUdBDaqa9tU+LPNhonfvX1Cg8RyUMW3Guzs/Jrchuv1dW/YSDLFnNw5k6cepg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-graphql@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.445.tgz#fe311396f080a605810625fcaaa5a2238c2a74f6" - integrity sha512-i+lkzhzUp7DAOZeCWZbsa83+abzLRmijxMYVkMRKer8yaDNDlcqWfCVbzAcVFBI/wc6/mQ2nA/1erhePjqwfTA== +"@parcel/transformer-graphql@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.446.tgz#344270a83f7ccce671bf76ec2062df8430b5f74e" + integrity sha512-UrpBUzhnainKKUqauDAR1C7g5D6tHHNSz+226ZfoNJEVKCJ0C+dMH492yk4UqIU4PcPKCR6zRJCNA353G7x2NA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-html@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.445.tgz#561136797d7c6c476ab607f881dab34ca1b89d9e" - integrity sha512-sL1clzjug9xs25HN8VKyUnxKc1/wDfa9GBZNPUN7cysmbCCWGvPNiYd7LWp8EihMj+vEbyZ27rMF/hz6iN77UA== +"@parcel/transformer-html@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.446.tgz#ab9f94effe5e16ad3eaa0744440525ed92b33f96" + integrity sha512-5PIuqRj+CbqVeLFfSwbmaaDD6seRypNmp1A/+qxVgmz8ya/Wt7XwEHTT+4Mw2OAJykWl12Adp9qoRpWJCa20fw== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-image@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2067.tgz#2ed9c82340861742466235e3adef342f61b2c553" - integrity sha512-9b/539/IUMu/JAAzrwRP+1rZ5c1jcrobOY3hfT6gPc9dYsZPg6GAI5Zgri8k+D769Y/nxVzT3wHjx4asjOTy1g== +"@parcel/transformer-image@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2068.tgz#bc41cf314cb20639014c264c194f84cc1a056481" + integrity sha512-BFYM4eFn75RzSNt4t6Pmj33q6rcNypH+iExB5do1EB0Xv8he/s9O1ujO5nCy5AKJVdrR42ABjIR5/pl30ZRpLQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-inline-string@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.445.tgz#4646777d25bad1964ceef442d45e2d1701a31d25" - integrity sha512-5q4+7gMhDMDXZrrDFGc7BSAr59bE9Mh6lYfqF4pPK70Gr5L5+ntUMGtscySnRl7IoIMd2T59SuHWZjxHdfNWHg== +"@parcel/transformer-inline-string@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.446.tgz#bcfbbbec8544a0c6c3a90a1cb05067ae5d0890a6" + integrity sha512-d7H1kxB7Qy0MW5tYnTjzA3dNpCaxNUSQjJqvWvBpYwn9vct0PzS/YHM3b36tku76p5mk7+YP4ZxC2aT6i3yq+g== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-js@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.445.tgz#8fbae7bfb3b2a9a76a47219dcafd38948e4311c1" - integrity sha512-6/FN3GyBJAAsI5qR5rL1GNxdRCvnQli4p3lGvT2CGQZvy6FpScSw4KrtAKUzcGSTuJJM7P1fXkN0RYeR5RpD8w== +"@parcel/transformer-js@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.446.tgz#60af6368f0df6af66e0c9164567dfa9548f8143d" + integrity sha512-jO1dFhOHgwEb4nZ1lpBikPmM/3Nm/GXaqj3MbdTM3y8pSTGMUaLNZpzjJeL3NC8Ykqk1fjKA6cyLqjPlTPoisQ== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2721,193 +2721,193 @@ "@babel/template" "^7.4.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2067+adb92ee0" - "@parcel/babylon-walk" "2.0.0-nightly.2067+adb92ee0" - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/scope-hoisting" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" + "@parcel/babylon-walk" "2.0.0-nightly.2068+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/scope-hoisting" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" micromatch "^4.0.2" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-json@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.445.tgz#7a2218d38d392ef125f938c6093f7ef89d6fcda6" - integrity sha512-skEW2uwFs3NYSv56Nwa16rqKVnApYHbMrjv2DnuiNhlY3JP+f03aTvdYxtvoB8aQni5HzMUm68aRnBH+rEqypg== +"@parcel/transformer-json@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.446.tgz#63461c5537cf0b31edad814146ef397d48dbb570" + integrity sha512-xpyd+astuEqJG23oZzOCJCUd/UnqOPqKgeJ1YgZ7wxc42a8uQE/iObG+WT5HKlqxBOlBu9jEfJZug+fxWKkRGA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" json5 "^2.1.0" -"@parcel/transformer-jsonld@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2067.tgz#b45351918734cd1b8a39ebae224bdc29db47bd9b" - integrity sha512-nppjkCAqGTVyHDUgKmBIfTfKsiARpiVA1TCN9T2QBbW8FNU0duFDZBF+++NfH2pLtOt2KbRk7dRE/fimpMjAxA== +"@parcel/transformer-jsonld@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2068.tgz#5bbac69ccbbc3e89b27368ca1c024cfaa3c73815" + integrity sha512-bO8nK/Oj9uKOwLGGVjOGjBtG1lLIEK9wEqdVfUzJgeyEu6EUEJBy0iU0bKTEaGaGj//ZVChFp7n9vpuGnIATAw== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/types" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/types" "2.0.0-nightly.446+3bfef282" json5 "^2.1.2" -"@parcel/transformer-less@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.445.tgz#400612ba75ca3546b59c56807aaab415b751e27c" - integrity sha512-EjGK2ZsbGHQc5YD6CIVdVZn9hmL7sTM8SjuRU0/CFgKVQh3NI0e8vVjfA4UnMgRAsVAxFKDiyIc10pZuRrTBEQ== +"@parcel/transformer-less@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.446.tgz#b81cf260fe8c81c8e60de06e93766a83e584ff87" + integrity sha512-outojfO4ThAnMaMapVOwFRkJvkuBNQPh6jTUrtVCLeubXh4GdBcYSKWGy8JefbDe5tx2MqJx49JEiJjTlxyqHg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" -"@parcel/transformer-mdx@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2067.tgz#4ac94a9a33c495ede3638d036d493999d6624e96" - integrity sha512-tRIJLA2W6EmxXjjvBc37t8xASNaR0ZmmFc4K0LmJbiO5kuHWfOjuw/npq6p+TShYUUZYTSgeVsN9HolCDw/v4g== +"@parcel/transformer-mdx@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2068.tgz#55a15598d8cb1f7a04ae88650a738b4982abeb12" + integrity sha512-L9Jl8REp3UjKPXJfppNAWmTNxKoLwYuYwd/F09lrQCKe5H0Isnku/yKHugl3wDODItn1aZPThfk7uuxzejoj8A== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-postcss@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.445.tgz#18fd18252b035192ef2b53a4029bd3f29a75e2b3" - integrity sha512-vGfrP0zkbwo7eMLQmWd29K6JAmoyKUMRt3U8fOE3KMxWTR4EwR/jAnv9qwimlz5GoEDne7dsBv1eHcrqpl50uQ== +"@parcel/transformer-postcss@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.446.tgz#383fcc10d59794e85bc1a376cafa8efed00e613e" + integrity sha512-Yrux2pN3rUCkE5oyQmiahzyWmRYjAvEpK2FIYp2qlOsTghaI5ZBRNeduYO+XvZFE9PeeEP416JNsC0yomxXWjg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" css-modules-loader-core "^1.1.0" nullthrows "^1.1.1" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-posthtml@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.445.tgz#49d26ae8bf6f0d210066517972315fbb45a36a2b" - integrity sha512-jTUj+zyXKCTNgnJHNOKgjzmJgpcbmQgPEnac8TEwrW1iENaAxU+6gUChczf9xyzLpsV3WRT/4F8UheSiTqbpvw== +"@parcel/transformer-posthtml@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.446.tgz#d20f4be828f2c91c65c3698affe05176f5516452" + integrity sha512-JM9vWvPIY5twP/w5uhD0VQFe4eZzHQA2pMq3R819euD4wrIyIpuCa6g6r4iI9z/w3ygWcx1Z6cTEbBb+39Y5Hg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-pug@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.445.tgz#a3df420a1bcb441381fb291e8d81b53be61ae3d0" - integrity sha512-0oMbtawueZgnWVRUxUZNBSZipfJ5IpzIDE++PnIkqChSukVHNtCaYuSYrsButDSmJ1R9lcbCfwGD6jKYiNGqtQ== +"@parcel/transformer-pug@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.446.tgz#6d72b8780c6243696fbb11d3abc001fa2866027f" + integrity sha512-HvNJ2vNOxKLka6HNH9asGOECIwASY1jaB1oZn9Z9aQAW7s0+1PeuNVfXH9wwupCUjjziByuOS0fRh1BhoS9pPQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-raw@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.445.tgz#ae26126a6e9100a0c2422f9bfdd205fe78b3b715" - integrity sha512-EpmlvQmEo0Efiq8UXw5zBB7N+cOUP8/2jT+Q3fTRO5dCwhVury/kE1dauApcrCoeUWyWNEyE19cQCirrdeNbZQ== +"@parcel/transformer-raw@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.446.tgz#2383d9d9ce24723e2c5e6306f84ee5953f7ea99e" + integrity sha512-1CMKCE1Lpc7Z9DiaiiGnz1mzpREg3Xa2FcmWoC3RlNWOfaKw6qd/wmucXY4wj5+4qAKYyHxjTZGy1tgcxfzDVw== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-react-refresh-babel@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.445.tgz#742e48f22fc9bb1418bb0e75217f44276b0f6283" - integrity sha512-3bY1JfS2m/4yXQEO5Lu7IAGcWmAyGu5KzGAtNXlC9lQRB2xSkNaSDuuIaj2XdQ3MmJUssnwUNjI2J+BQO+/2HA== +"@parcel/transformer-react-refresh-babel@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.446.tgz#d688703f415ec296dcc6e1ff9faaaee929f4b6db" + integrity sha512-C/QN4lgzukcQWzayEUQqpdP2ijDzADB3yT7P9SfNtXCBocbbOY+NbwGLQtnJ4REcx+5uRbJ9GpKPB8417WnwDQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" react-refresh "^0.9.0" -"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.445.tgz#0290c472f753b2b313dc2d04b75304513bec4911" - integrity sha512-9+97jl4sGdyMXKcVyqEQiHPdPjkyIa5bDWxGCuZ3JuefrTrFcghHTTl7Q/BenFV/m0iBkqmaQ5fFGmAUQWZ1OQ== +"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.446.tgz#670e642972b8d8057dc46f324ebe15711b26ffae" + integrity sha512-8OE0hvbdXHlhExJNQXaecph2QbCjwHNQtgkazSSfqo80lVuZzDOdyQ9h9/c8hn+oj7fnt359Hw3syWLj+2O3OA== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2067+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" react-refresh "^0.9.0" semver "^5.4.1" -"@parcel/transformer-sass@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.445.tgz#8d2e998f637ecb691f6f6c0062ccf2fdc74b04cf" - integrity sha512-Hioyt64523DpDq2dMK1Ww8PFyvnyReuTSuwEi4TCgXeZsUX0cmwZILe0X1e/nhYUsPZMPjnnQL3qnRNoxK3cVg== +"@parcel/transformer-sass@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.446.tgz#46f9ed91e8dea8effeea539054f1e13baacb6d01" + integrity sha512-9ezq2DHw1Qhvm/AAd2l/6Yk10I45osE0prxWa2MkC1xveGllbi14poDfbNhK3gxX0K7TV/S+ibyKc+naHAVEIw== dependencies: - "@parcel/fs" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/fs" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-stylus@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.445.tgz#b1d96c46207300a66e55c37fd9876f9550bc9f45" - integrity sha512-y1/dkOu37IwODQhKo0Bp01ouToO4OwTHO1Ibs6gojqTsc2T7ac0SeX02J20K1bmYvucj9rT/y4yyWuW6xk49KA== +"@parcel/transformer-stylus@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.446.tgz#b628ac5100177968740f204862a0d6709b9023db" + integrity sha512-tYjteN7dnw+g40ODbIGPUX33rdKnHojohAX8NXOtvf5S+eXHxshQLQM9UHTpUFRlZ5Il3hwbOFJFaLzm+EecrQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-sugarss@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.445.tgz#745d8862f895b3a98dc30f4be21f9a043994a639" - integrity sha512-256XNk0p8Kd5tEEVRN7KjGq+NDlNr+CrqFUAuNdr2C4tnxB+DrtNLRXh16UDdfD3jgWOxLHp4rmFjnqpLBHEHA== +"@parcel/transformer-sugarss@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.446.tgz#daa130f7959afb74f6af4b311eb1caa32f3273fb" + integrity sha512-D1mpHwxzA/sxQYA6Uc0nQSHYTUbe2Q6o32F72sABocZvV/ax0guYockl6aNONr+dwu07/5kY5maTyfYAZ/iM/g== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" postcss "^8.0.5" -"@parcel/transformer-toml@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.445.tgz#fd179834e5ff0b8219eeb926e41de0b08b05ce7c" - integrity sha512-wGTqFwVI4is8O3JWEvSDTk7Z/U58DlEHB49C2CwqR0xVSjCQbKuFt+fLOSaEhs7D4lTcr9U1dBwwXRgA38yBJg== +"@parcel/transformer-toml@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.446.tgz#981119cc34ecf49a891f4acce3221a1fa77e633c" + integrity sha512-leLjjKU2xXRw5cbXgFXHuaNKExn4Q3Fzne65nZj1G/3QHk+tiWnTms9msx5wDR2iZuQjWQc7cI1TZia+VRVUKA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/transformer-typescript-types@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.445.tgz#8dc435fdea20a1b8e84e48ce78762c4c5b0dcf45" - integrity sha512-NtcZOYLoSpoV3oVLxEDDGfZhziMKQS/znOxwVrNgy04pens2cQ028Tj42sdjL05V8vUEf3kVXVZlZGSyHFQhQQ== +"@parcel/transformer-typescript-types@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.446.tgz#7f3290031529726e7c768980777af61f45191ee4" + integrity sha512-Hk9sX3LKo21FS0YqeBthg9IiiCawXsuTXHuJj32hjmSacYEIRTTyLnkA3B0YTrjJgmojuoFi6CiSZU2gMR0uzg== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/ts-utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/ts-utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" -"@parcel/transformer-vue@2.0.0-nightly.2067+adb92ee0": - version "2.0.0-nightly.2067" - resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2067.tgz#41bf71f2e6d5189fe40e9eaacf9f7871a51992b9" - integrity sha512-O8Yn74mwz5fiws1vDsc13xtNyFIKL83vebs+SrW6ALZUJzIndQr2J8WRvic5C25WF2NEtnUni+dUlUAUKUqXdg== +"@parcel/transformer-vue@2.0.0-nightly.2068+3bfef282": + version "2.0.0-nightly.2068" + resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2068.tgz#7fd00e4e3524611aa5d313dabfced33649d475d9" + integrity sha512-oPouURopmkOUTwQAMFxOUfcPK3zKsopy5isR7QNyhkmWxsA72Cj2IWWUM/A0rHJPX0+FmxVvyOauIqUzkkcFhw== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-yaml@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.445.tgz#e23988b79c50039d581b1753e32272645ed87771" - integrity sha512-V7kMbEPf5NAjAPWY4c2hezX4D23VhZwiDkFycFKD0f3SuDfnSVa/taZcH15h9cu6mAVl11X3w4X2R/v+RZhA6A== +"@parcel/transformer-yaml@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.446.tgz#18edb6d64351acad5ef811022998c1c89bafbfce" + integrity sha512-HhL/0+wA1bfk7B5EWAlLiI5/Ys0oBIAI7tku3oR9ygbirTCUMvK9rIu+4RxXz60ePobSjRePNHD+QMrH8gt2iA== dependencies: - "@parcel/plugin" "2.0.0-nightly.445+adb92ee0" + "@parcel/plugin" "2.0.0-nightly.446+3bfef282" -"@parcel/ts-utils@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.445.tgz#ff958629a2389184cb37eac5a14ee91fd30da5f2" - integrity sha512-gSsShUlj/zw/Ds9MmcbTkjsFbe0Il2MZhITc1U6ID1dUxdGVaRehhkCgwN8562L+rjS9ZRZUZACR7fTGiacSZA== +"@parcel/ts-utils@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.446.tgz#75c998d0ebe3fdbc8229c070dca10dc2b8ff216d" + integrity sha512-yabMSQRMkZAsW8Mv3ovtS9eyR/mLDB5cw+7m1J8C7t4tNyAoJzKVGF6+7J+VdweJNrblslEKZ3HlcJiJxGZTbw== dependencies: nullthrows "^1.1.1" -"@parcel/types@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.445.tgz#835026da93994a76a12e9066b48956b4a4e7e627" - integrity sha512-sY6fx7C7RAmfB6hSoVayRm2W5+TB04sLw8OK/aRDu5xiwAKX0h4ebUX+2G9EtGYKUF8gfhiQ6njt/f/SevXGdw== +"@parcel/types@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.446.tgz#c35ffc4a6b09f7a8aeb5198615cb668635f7545e" + integrity sha512-wnfp5Yoom7wSWOhjv74/BqFgF4LgM+dpIbwEfBY8h9hwFXKEIpiGLzZm5QtDJ5cF9LjBzHeZfgJ6n9Hs1Dqemg== -"@parcel/utils@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.445.tgz#fdeedba16af79b05ff61ced710ce479f154c4a09" - integrity sha512-srgHWtlvd8Jua7EmVvEBVvzO1ZDB8qIE0u677g39WDIBe7OAJ90ybHyV+zJZVRUD4JSEo4R7AFv3L7L4gkX3Mw== +"@parcel/utils@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.446.tgz#45543a6822e0aadc356d007be0abfa31256435d0" + integrity sha512-TvvNo/bRXGFdV8qNFHwPy9AhhQI9UOX02xBoNIlf8H00hlLnMdWg1blZJikJz9S0o5/l0JbbD/bbyKD65HAPsg== dependencies: "@iarna/toml" "^2.2.0" - "@parcel/codeframe" "2.0.0-nightly.445+adb92ee0" - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/logger" "2.0.0-nightly.445+adb92ee0" - "@parcel/markdown-ansi" "2.0.0-nightly.445+adb92ee0" + "@parcel/codeframe" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/logger" "2.0.0-nightly.446+3bfef282" + "@parcel/markdown-ansi" "2.0.0-nightly.446+3bfef282" "@parcel/source-map" "2.0.0-alpha.4.16" ansi-html "^0.0.7" chalk "^2.4.2" @@ -2932,14 +2932,14 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.1" -"@parcel/workers@2.0.0-nightly.445+adb92ee0": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.445.tgz#b3366b7c4abe4bcfaae954c4e9bb97727523d3c7" - integrity sha512-692D89hFYrqU36UxxA9VtVMzbGH4OXsWJshE1GibjurICJ8L149/pxu8v/oCsE/M8Ng1Hj9iIKdtiCrS6w6Z0w== +"@parcel/workers@2.0.0-nightly.446+3bfef282": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.446.tgz#064827fb164be593de4adaa20a5d7504ad875173" + integrity sha512-xgw3SnURvNLP5f2nJQF9/zWCdWhnvKEIQu9aPznE/MJouVKxeCW5ZQIFt7+dIBu2PzecEBmZOV3iR1TtYxn07A== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/logger" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/logger" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" chrome-trace-event "^1.0.2" nullthrows "^1.1.1" @@ -10587,19 +10587,19 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -parcel@2.0.0-nightly.443: - version "2.0.0-nightly.443" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.443.tgz#40f709a86acf1a6c44db6dd60ef3e9006abe3fb1" - integrity sha512-teFdXNFYWh77eBc86RVHdeKTUJch+mU51/2r2Djn75qqXglgxG5gSn613Ul52YxEjaRjI7MeZzqtY5EeaAaJTA== - dependencies: - "@parcel/config-default" "2.0.0-nightly.445+adb92ee0" - "@parcel/core" "2.0.0-nightly.443+adb92ee0" - "@parcel/diagnostic" "2.0.0-nightly.445+adb92ee0" - "@parcel/events" "2.0.0-nightly.445+adb92ee0" - "@parcel/fs" "2.0.0-nightly.445+adb92ee0" - "@parcel/logger" "2.0.0-nightly.445+adb92ee0" - "@parcel/package-manager" "2.0.0-nightly.445+adb92ee0" - "@parcel/utils" "2.0.0-nightly.445+adb92ee0" +parcel@2.0.0-nightly.444: + version "2.0.0-nightly.444" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.444.tgz#d6ce4f75fbed148dcca60821f9509eba34aeb875" + integrity sha512-T3ZK8QKxt0PHeGQZe1vhFu2KP229BRRH14qn8UkKforaSwIT5BWngaFxAuh7vQulXCc+lNi38xK5MtqH6TQ7zg== + dependencies: + "@parcel/config-default" "2.0.0-nightly.446+3bfef282" + "@parcel/core" "2.0.0-nightly.444+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/events" "2.0.0-nightly.446+3bfef282" + "@parcel/fs" "2.0.0-nightly.446+3bfef282" + "@parcel/logger" "2.0.0-nightly.446+3bfef282" + "@parcel/package-manager" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.446+3bfef282" chalk "^2.1.0" commander "^2.19.0" get-port "^4.2.0" From b5c3f84c8be855107d3ea6738bbf8511f2ecdb8e Mon Sep 17 00:00:00 2001 From: Jan Brauer Date: Thu, 12 Nov 2020 02:50:52 +0100 Subject: [PATCH 11/41] feat(applicationautoscaling): Add KAFKA to ServiceNamespace (#11394) Add `KAFKA` to ServiceNamespace. This allows targeting MSK's autoscaling feature. Fixes https://github.com/aws/aws-cdk/issues/11366 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../aws-applicationautoscaling/lib/scalable-target.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/@aws-cdk/aws-applicationautoscaling/lib/scalable-target.ts b/packages/@aws-cdk/aws-applicationautoscaling/lib/scalable-target.ts index 14bf3f4913b34..9549ff5c6598c 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/lib/scalable-target.ts +++ b/packages/@aws-cdk/aws-applicationautoscaling/lib/scalable-target.ts @@ -274,4 +274,9 @@ export enum ServiceNamespace { * Comprehend */ COMPREHEND = 'comprehend', + + /** + * Kafka + */ + KAFKA = 'kafka', } From 182abfc48228b51e4ce5fd2be1b2dfdbc5c8c9b5 Mon Sep 17 00:00:00 2001 From: Satoru Abe Date: Thu, 12 Nov 2020 13:04:20 +0900 Subject: [PATCH 12/41] docs: fix typo of package name `@aws-cdk/aws-apigatewayv2-integrations` in CHANGELOG (#11436) There is no module named `@aws-cdk/aws-apigatewayv2-integration` (`s` for plural form is missing) - https://github.com/aws/aws-cdk/tree/master/packages/%40aws-cdk/aws-apigatewayv2-integrations - https://www.npmjs.com/package/@aws-cdk/aws-apigatewayv2-integrations ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941f81402e7d2..ed8d8f2fceb1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file. See [standa ### ⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES * **apigatewayv2:** `LambdaProxyIntegration` and `HttpProxyIntegration` -classes have moved to the `@aws-cdk/aws-apigatewayv2-integration` module. +classes have moved to the `@aws-cdk/aws-apigatewayv2-integrations` module. * **appmesh:** VirtualRouter's Listeners are no longer a struct; use the static factory methods of the `VirtualNodeListener` class to obtain instances of them * **appmesh:** VirtualRouter accepts a list of listeners instead of a single listener * **appmesh:** all `fromResourceName()` methods in the AppMesh module have been replaced with `fromResourceAttributes()` From f26a592e609674d528990aad14fb8884112ad64d Mon Sep 17 00:00:00 2001 From: Adam Elmore Date: Thu, 12 Nov 2020 02:32:17 -0600 Subject: [PATCH 13/41] fix(stepfunctions-tasks): encryption is required for AthenaStartQueryExecution (#11355) AthenaStartQueryExecution fails to deploy if resultConfiguration.encryptionConfiguration isn't specified. This configuration should be optional. --- .../lib/athena/start-query-execution.ts | 21 +++++--- .../test/athena/start-query-execution.test.ts | 52 +++++++++++++++++++ 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts index 50dc1b03a24bc..44bccf9b2faca 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts @@ -167,6 +167,17 @@ export class AthenaStartQueryExecution extends sfn.TaskStateBase { return policyStatements; } + private renderEncryption(): any { + const encryptionConfiguration = this.props.resultConfiguration?.encryptionConfiguration !== undefined + ? { + EncryptionOption: this.props.resultConfiguration.encryptionConfiguration.encryptionOption, + KmsKey: this.props.resultConfiguration.encryptionConfiguration.encryptionKey, + } + : undefined; + + return encryptionConfiguration; + } + /** * Provides the Athena start query execution service integration task configuration */ @@ -185,10 +196,7 @@ export class AthenaStartQueryExecution extends sfn.TaskStateBase { Database: this.props.queryExecutionContext?.databaseName, }, ResultConfiguration: { - EncryptionConfiguration: { - EncryptionOption: this.props.resultConfiguration?.encryptionConfiguration?.encryptionOption, - KmsKey: this.props.resultConfiguration?.encryptionConfiguration?.encryptionKey, - }, + EncryptionConfiguration: this.renderEncryption(), OutputLocation: `s3://${this.props.resultConfiguration?.outputLocation?.bucketName}/${this.props.resultConfiguration?.outputLocation?.objectKey}/`, }, WorkGroup: this.props.workGroup, @@ -205,10 +213,7 @@ export class AthenaStartQueryExecution extends sfn.TaskStateBase { Database: this.props.queryExecutionContext?.databaseName, }, ResultConfiguration: { - EncryptionConfiguration: { - EncryptionOption: this.props.resultConfiguration?.encryptionConfiguration?.encryptionOption, - KmsKey: this.props.resultConfiguration?.encryptionConfiguration?.encryptionKey, - }, + EncryptionConfiguration: this.renderEncryption(), }, WorkGroup: this.props.workGroup, }), diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/start-query-execution.test.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/start-query-execution.test.ts index c96e4356c7a11..5742872286167 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/start-query-execution.test.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/start-query-execution.test.ts @@ -101,4 +101,56 @@ describe('Start Query Execution', () => { }, }); }); + + test('no encryptionConfiguration', () => { + // GIVEN + const stack = new cdk.Stack(); + + // WHEN + const task = new AthenaStartQueryExecution(stack, 'Query', { + queryString: 'CREATE DATABASE database', + clientRequestToken: 'unique-client-request-token', + queryExecutionContext: { + databaseName: 'mydatabase', + catalogName: 'AwsDataCatalog', + }, + resultConfiguration: { + outputLocation: { + bucketName: 'query-results-bucket', + objectKey: 'folder', + }, + }, + workGroup: 'primary', + }); + + // THEN + expect(stack.resolve(task.toStateJson())).toEqual({ + Type: 'Task', + Resource: { + 'Fn::Join': [ + '', + [ + 'arn:', + { + Ref: 'AWS::Partition', + }, + ':states:::athena:startQueryExecution', + ], + ], + }, + End: true, + Parameters: { + QueryString: 'CREATE DATABASE database', + ClientRequestToken: 'unique-client-request-token', + QueryExecutionContext: { + Database: 'mydatabase', + Catalog: 'AwsDataCatalog', + }, + ResultConfiguration: { + OutputLocation: 's3://query-results-bucket/folder/', + }, + WorkGroup: 'primary', + }, + }); + }); }); From 025992b0014aca493a669be518f4f423d3f39a57 Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Thu, 12 Nov 2020 13:52:51 +0100 Subject: [PATCH 14/41] feat(cfnspec): cloudformation spec v20.2.0 (#11429) * feat: cloudformation spec v20.2.0 * Fixing Tags type for IoT DomainConfiguration Co-authored-by: AWS CDK Team Co-authored-by: Nick Lynch --- packages/@aws-cdk/cfnspec/CHANGELOG.md | 40 ++ packages/@aws-cdk/cfnspec/cfn.version | 2 +- ...0_CloudFormationResourceSpecification.json | 448 +++++++++++++++++- ...figuration_Tags_CorrectItemType_patch.json | 21 + 4 files changed, 507 insertions(+), 4 deletions(-) create mode 100644 packages/@aws-cdk/cfnspec/spec-source/690_IoT_DomainConfiguration_Tags_CorrectItemType_patch.json diff --git a/packages/@aws-cdk/cfnspec/CHANGELOG.md b/packages/@aws-cdk/cfnspec/CHANGELOG.md index 9c3b7d9e1e6d0..8a871d71fe7ce 100644 --- a/packages/@aws-cdk/cfnspec/CHANGELOG.md +++ b/packages/@aws-cdk/cfnspec/CHANGELOG.md @@ -1,3 +1,43 @@ +# CloudFormation Resource Specification v20.2.0 + +## New Resource Types + +* AWS::CloudWatch::MetricStream +* AWS::Events::Archive +* AWS::IoT::DomainConfiguration +* AWS::RDS::GlobalCluster + +## Attribute Changes + + +## Property Changes + +* AWS::CodeArtifact::Domain Tags (__added__) +* AWS::CodeArtifact::Repository Tags (__added__) +* AWS::Kendra::DataSource DataSourceConfiguration.Required (__changed__) + * Old: true + * New: false +* AWS::Kendra::DataSource RoleArn.Required (__changed__) + * Old: true + * New: false +* AWS::S3::Bucket IntelligentTieringConfigurations (__added__) +* AWS::S3::Bucket OwnershipControls (__added__) +* AWS::SecretsManager::ResourcePolicy BlockPublicPolicy (__added__) + +## Property Type Changes + +* AWS::Batch::JobDefinition.EvaluateOnExit (__added__) +* AWS::S3::Bucket.IntelligentTieringConfiguration (__added__) +* AWS::S3::Bucket.OwnershipControls (__added__) +* AWS::S3::Bucket.OwnershipControlsRule (__added__) +* AWS::S3::Bucket.Tiering (__added__) +* AWS::Batch::JobDefinition.RetryStrategy EvaluateOnExit (__added__) +* AWS::EC2::LaunchTemplate.CapacityReservationTarget CapacityReservationResourceGroupArn (__added__) +* AWS::EC2::LaunchTemplate.NetworkInterface AssociateCarrierIpAddress (__added__) +* AWS::EC2::LaunchTemplate.NetworkInterface NetworkCardIndex (__added__) +* AWS::Kendra::DataSource.S3DataSourceConfiguration InclusionPatterns (__added__) + + # CloudFormation Resource Specification v20.0.0 ## New Resource Types diff --git a/packages/@aws-cdk/cfnspec/cfn.version b/packages/@aws-cdk/cfnspec/cfn.version index e88320d7c3862..86d4688d0910a 100644 --- a/packages/@aws-cdk/cfnspec/cfn.version +++ b/packages/@aws-cdk/cfnspec/cfn.version @@ -1 +1 @@ -20.0.0 +20.2.0 diff --git a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json index e5bb42cdaee87..e9a8d24f35f4f 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json +++ b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json @@ -7346,6 +7346,35 @@ } } }, + "AWS::Batch::JobDefinition.EvaluateOnExit": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html", + "Properties": { + "Action": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-action", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "OnExitCode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-onexitcode", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "OnReason": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-onreason", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "OnStatusReason": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-onstatusreason", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::Batch::JobDefinition.LinuxParameters": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html", "Properties": { @@ -7502,6 +7531,13 @@ "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" + }, + "EvaluateOnExit": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html#cfn-batch-jobdefinition-retrystrategy-evaluateonexit", + "ItemType": "EvaluateOnExit", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" } } }, @@ -9419,6 +9455,17 @@ "Type": "List", "UpdateType": "Mutable" }, + "AWS::CloudWatch::MetricStream.MetricStreamFilter": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html", + "Properties": { + "Namespace": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html#cfn-cloudwatch-metricstream-metricstreamfilter-namespace", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::CodeBuild::Project.Artifacts": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html", "Properties": { @@ -13716,6 +13763,12 @@ "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" + }, + "CapacityReservationResourceGroupArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationresourcegrouparn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" } } }, @@ -14095,6 +14148,12 @@ "AWS::EC2::LaunchTemplate.NetworkInterface": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html", "Properties": { + "AssociateCarrierIpAddress": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatecarrieripaddress", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, "AssociatePublicIpAddress": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatepublicipaddress", "PrimitiveType": "Boolean", @@ -14145,6 +14204,12 @@ "Type": "List", "UpdateType": "Mutable" }, + "NetworkCardIndex": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkcardindex", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, "NetworkInterfaceId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkinterfaceid", "PrimitiveType": "String", @@ -23365,6 +23430,58 @@ "AWS::IoT::Authorizer.TokenSigningPublicKeys": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-authorizer-tokensigningpublickeys.html" }, + "AWS::IoT::DomainConfiguration.AuthorizerConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html", + "Properties": { + "AllowAuthorizerOverride": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html#cfn-iot-domainconfiguration-authorizerconfig-allowauthorizeroverride", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "DefaultAuthorizerName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html#cfn-iot-domainconfiguration-authorizerconfig-defaultauthorizername", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoT::DomainConfiguration.ServerCertificateSummary": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html", + "Properties": { + "ServerCertificateArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html#cfn-iot-domainconfiguration-servercertificatesummary-servercertificatearn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ServerCertificateStatus": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html#cfn-iot-domainconfiguration-servercertificatesummary-servercertificatestatus", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ServerCertificateStatusDetail": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html#cfn-iot-domainconfiguration-servercertificatesummary-servercertificatestatusdetail", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::IoT::DomainConfiguration.Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-tags.html", + "Properties": { + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-tags.html#cfn-iot-domainconfiguration-tags-tags", + "ItemType": "Json", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html", "Properties": { @@ -26241,6 +26358,12 @@ "Type": "DataSourceInclusionsExclusionsStrings", "UpdateType": "Mutable" }, + "InclusionPatterns": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-inclusionpatterns", + "Required": false, + "Type": "DataSourceInclusionsExclusionsStrings", + "UpdateType": "Mutable" + }, "InclusionPrefixes": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-inclusionprefixes", "Required": false, @@ -37946,6 +38069,45 @@ } } }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html", + "Properties": { + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Prefix": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-prefix", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Status": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-status", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "TagFilters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-tagfilters", + "DuplicatesAllowed": false, + "ItemType": "TagFilter", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Tierings": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-tierings", + "DuplicatesAllowed": false, + "ItemType": "Tiering", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::S3::Bucket.InventoryConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html", "Properties": { @@ -38175,6 +38337,30 @@ } } }, + "AWS::S3::Bucket.OwnershipControls": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html", + "Properties": { + "Rules": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html#cfn-s3-bucket-ownershipcontrols-rules", + "DuplicatesAllowed": false, + "ItemType": "OwnershipControlsRule", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html", + "Properties": { + "ObjectOwnership": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html#cfn-s3-bucket-ownershipcontrolsrule-objectownership", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::S3::Bucket.PublicAccessBlockConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html", "Properties": { @@ -38676,6 +38862,23 @@ } } }, + "AWS::S3::Bucket.Tiering": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html", + "Properties": { + "AccessTier": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html#cfn-s3-bucket-tiering-accesstier", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Days": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html#cfn-s3-bucket-tiering-days", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::S3::Bucket.TopicConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html", "Properties": { @@ -43071,7 +43274,7 @@ } } }, - "ResourceSpecificationVersion": "20.0.0", + "ResourceSpecificationVersion": "20.2.0", "ResourceTypes": { "AWS::ACMPCA::Certificate": { "Attributes": { @@ -48856,6 +49059,67 @@ } } }, + "AWS::CloudWatch::MetricStream": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "CreationDate": { + "PrimitiveType": "String" + }, + "LastUpdateDate": { + "PrimitiveType": "String" + }, + "State": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html", + "Properties": { + "ExcludeFilters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-excludefilters", + "DuplicatesAllowed": false, + "ItemType": "MetricStreamFilter", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "FirehoseArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-firehosearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "IncludeFilters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-includefilters", + "DuplicatesAllowed": false, + "ItemType": "MetricStreamFilter", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-name", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "RoleArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-rolearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-tags", + "DuplicatesAllowed": false, + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::CodeArtifact::Domain": { "Attributes": { "Arn": { @@ -48884,6 +49148,13 @@ "PrimitiveType": "Json", "Required": false, "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html#cfn-codeartifact-domain-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" } } }, @@ -48929,6 +49200,13 @@ "Required": true, "UpdateType": "Immutable" }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, "Upstreams": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-upstreams", "PrimitiveItemType": "String", @@ -57006,6 +57284,43 @@ } } }, + "AWS::Events::Archive": { + "Attributes": { + "ArchiveName": { + "PrimitiveType": "String" + }, + "Arn": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html", + "Properties": { + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "EventPattern": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-eventpattern", + "PrimitiveType": "Json", + "Required": false, + "UpdateType": "Mutable" + }, + "RetentionDays": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-retentiondays", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "SourceArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-sourcearn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, "AWS::Events::EventBus": { "Attributes": { "Arn": { @@ -60357,6 +60672,72 @@ } } }, + "AWS::IoT::DomainConfiguration": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "DomainType": { + "PrimitiveType": "String" + }, + "ServerCertificates": { + "ItemType": "ServerCertificateSummary", + "Type": "List" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html", + "Properties": { + "AuthorizerConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-authorizerconfig", + "Required": false, + "Type": "AuthorizerConfig", + "UpdateType": "Mutable" + }, + "DomainConfigurationName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-domainconfigurationname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "DomainConfigurationStatus": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-domainconfigurationstatus", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "DomainName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-domainname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "ServerCertificateArns": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-servercertificatearns", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Immutable" + }, + "ServiceType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-servicetype", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-tags", + "Required": false, + "Type": "Tags", + "UpdateType": "Mutable" + }, + "ValidationCertificateArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-validationcertificatearn", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + } + } + }, "AWS::IoT::Policy": { "Attributes": { "Arn": { @@ -60952,7 +61333,7 @@ "Properties": { "DataSourceConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-datasourceconfiguration", - "Required": true, + "Required": false, "Type": "DataSourceConfiguration", "UpdateType": "Mutable" }, @@ -60977,7 +61358,7 @@ "RoleArn": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-rolearn", "PrimitiveType": "String", - "Required": true, + "Required": false, "UpdateType": "Mutable" }, "Schedule": { @@ -66302,6 +66683,47 @@ } } }, + "AWS::RDS::GlobalCluster": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html", + "Properties": { + "DeletionProtection": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#cfn-rds-globalcluster-deletionprotection", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "Engine": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#cfn-rds-globalcluster-engine", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "EngineVersion": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#cfn-rds-globalcluster-engineversion", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "GlobalClusterIdentifier": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#cfn-rds-globalcluster-globalclusteridentifier", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "SourceDBClusterIdentifier": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#cfn-rds-globalcluster-sourcedbclusteridentifier", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "StorageEncrypted": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#cfn-rds-globalcluster-storageencrypted", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Immutable" + } + } + }, "AWS::RDS::OptionGroup": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html", "Properties": { @@ -67417,6 +67839,14 @@ "Type": "CorsConfiguration", "UpdateType": "Mutable" }, + "IntelligentTieringConfigurations": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-intelligenttieringconfigurations", + "DuplicatesAllowed": false, + "ItemType": "IntelligentTieringConfiguration", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, "InventoryConfigurations": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations", "DuplicatesAllowed": false, @@ -67463,6 +67893,12 @@ "Required": false, "UpdateType": "Immutable" }, + "OwnershipControls": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-ownershipcontrols", + "Required": false, + "Type": "OwnershipControls", + "UpdateType": "Mutable" + }, "PublicAccessBlockConfiguration": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-publicaccessblockconfiguration", "Required": false, @@ -68894,6 +69330,12 @@ "AWS::SecretsManager::ResourcePolicy": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html", "Properties": { + "BlockPublicPolicy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html#cfn-secretsmanager-resourcepolicy-blockpublicpolicy", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, "ResourcePolicy": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-resourcepolicy.html#cfn-secretsmanager-resourcepolicy-resourcepolicy", "PrimitiveType": "Json", diff --git a/packages/@aws-cdk/cfnspec/spec-source/690_IoT_DomainConfiguration_Tags_CorrectItemType_patch.json b/packages/@aws-cdk/cfnspec/spec-source/690_IoT_DomainConfiguration_Tags_CorrectItemType_patch.json new file mode 100644 index 0000000000000..5ffa659a47b46 --- /dev/null +++ b/packages/@aws-cdk/cfnspec/spec-source/690_IoT_DomainConfiguration_Tags_CorrectItemType_patch.json @@ -0,0 +1,21 @@ +{ + "PropertyTypes": { + "AWS::IoT::DomainConfiguration.Tags": { + "patch": { + "description": "AWS::IoT::DomainConfiguration.Tag.ItemType should have been PrimitiveItemType", + "operations": [ + { + "op": "remove", + "path": "/Properties/Tags/ItemType", + "value": "Json" + }, + { + "op": "add", + "path": "/Properties/Tags/PrimitiveItemType", + "value": "Json" + } + ] + } + } + } +} From 58efbad743464439ce8eb97a6c6c3e07b531d93c Mon Sep 17 00:00:00 2001 From: Meng Xin Zhu Date: Fri, 13 Nov 2020 05:11:15 +0800 Subject: [PATCH 15/41] feat(stepfunctions-tasks): support overriding all properties of CodeBuild StartBuild integration (#10356) closes #10302 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../@aws-cdk/aws-codebuild/lib/project.ts | 61 ++-- .../aws-stepfunctions-tasks/README.md | 15 +- .../lib/codebuild/start-build.ts | 88 +++++- ...start-build-override-options.expected.json | 267 ++++++++++++++++++ .../integ.start-build-override-options.ts | 88 ++++++ .../test/codebuild/start-build.test.ts | 192 ++++++++++++- 6 files changed, 682 insertions(+), 29 deletions(-) create mode 100644 packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json create mode 100644 packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts diff --git a/packages/@aws-cdk/aws-codebuild/lib/project.ts b/packages/@aws-cdk/aws-codebuild/lib/project.ts index 8bfc8f38e09cf..8ac10c718953e 100644 --- a/packages/@aws-cdk/aws-codebuild/lib/project.ts +++ b/packages/@aws-cdk/aws-codebuild/lib/project.ts @@ -396,14 +396,11 @@ abstract class ProjectBase extends Resource implements IProject { } } -export interface CommonProjectProps { - /** - * A description of the project. Use the description to identify the purpose - * of the project. - * - * @default - No description. - */ - readonly description?: string; +/** + * Common override properties of the CodeBuild project + * TODO: add properties `queuedTimeoutInMinutes`, `logsConfig` + */ +interface CommonStartBuildOptions { /** * Filename or contents of buildspec in JSON format. @@ -413,13 +410,6 @@ export interface CommonProjectProps { */ readonly buildSpec?: BuildSpec; - /** - * Service Role to assume while running the build. - * - * @default - A role will be created. - */ - readonly role?: iam.IRole; - /** * Encryption key to use to read and write artifacts. * @@ -442,13 +432,11 @@ export interface CommonProjectProps { readonly environment?: BuildEnvironment; /** - * Indicates whether AWS CodeBuild generates a publicly accessible URL for - * your project's build badge. For more information, see Build Badges Sample - * in the AWS CodeBuild User Guide. + * Service Role to assume while running the build. * - * @default false + * @default - A role will be created. */ - readonly badge?: boolean; + readonly role?: iam.IRole; /** * The number of minutes after which AWS CodeBuild stops the build if it's @@ -465,6 +453,28 @@ export interface CommonProjectProps { * @default - No additional environment variables are specified. */ readonly environmentVariables?: { [name: string]: BuildEnvironmentVariable }; +} + +/** + * Common properties of the CodeBuild project + */ +export interface CommonProjectProps extends CommonStartBuildOptions { + /** + * A description of the project. Use the description to identify the purpose + * of the project. + * + * @default - No description. + */ + readonly description?: string; + + /** + * Indicates whether AWS CodeBuild generates a publicly accessible URL for + * your project's build badge. For more information, see Build Badges Sample + * in the AWS CodeBuild User Guide. + * + * @default false + */ + readonly badge?: boolean; /** * The physical, human-readable name of the CodeBuild Project. @@ -540,7 +550,10 @@ export interface CommonProjectProps { readonly grantReportGroupPermissions?: boolean; } -export interface ProjectProps extends CommonProjectProps { +/** + * Override properties of the CodeBuild project + */ +export interface StartBuildOptions extends CommonStartBuildOptions { /** * The source of the build. * *Note*: if {@link NoSource} is given as the source, @@ -577,6 +590,12 @@ export interface ProjectProps extends CommonProjectProps { readonly secondaryArtifacts?: IArtifacts[]; } +/** + * Properties of the CodeBuild project + */ +export interface ProjectProps extends StartBuildOptions, CommonProjectProps { +} + /** * The extra options passed to the {@link IProject.bindToCodePipeline} method. */ diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/README.md b/packages/@aws-cdk/aws-stepfunctions-tasks/README.md index 269135eed0652..8a9a0866560e8 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/README.md +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/README.md @@ -342,11 +342,18 @@ const codebuildProject = new codebuild.Project(stack, 'Project', { const task = new tasks.CodeBuildStartBuild(stack, 'Task', { project: codebuildProject, integrationPattern: sfn.IntegrationPattern.RUN_JOB, - environmentVariablesOverride: { - ZONE: { - type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, - value: sfn.JsonPath.stringAt('$.envVariables.zone'), + overrides: { + environmentVariables: { + ZONE: { + type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + value: sfn.JsonPath.stringAt('$.envVariables.zone'), + }, }, + source: codebuild.Source.gitHub({ + branchOrRef: sfn.JsonPath.stringAt('$.commitHash'), + owner, + repo, + }), }, }); ``` diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts index 939732e237d54..997d25b11a296 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts @@ -5,6 +5,26 @@ import * as cdk from '@aws-cdk/core'; import { Construct } from 'constructs'; import { integrationResourceArn, validatePatternSupported } from '../private/task-utils'; +/** + * Override properties for CodeBuildStartBuild + * + */ +export interface OverrideProjectProps extends codebuild.StartBuildOptions { + /** + * Specifies if session debugging is enabled for this build. + * + * @default - the session debugging is disabled. + */ + readonly debugSessionEnabled?: boolean; + + /** + * A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuild request. + * + * @default - no idempotency token. + */ + readonly idempotencyToken?: string; +} + /** * Properties for CodeBuildStartBuild */ @@ -13,12 +33,21 @@ export interface CodeBuildStartBuildProps extends sfn.TaskStateBaseProps { * CodeBuild project to start */ readonly project: codebuild.IProject; + /** * A set of environment variables to be used for this build only. * + * @deprecated - use {@link OverrideProjectProps.environmentVariables} instead * @default - the latest environment variables already defined in the build project. */ readonly environmentVariablesOverride?: { [name: string]: codebuild.BuildEnvironmentVariable }; + + /** + * Override properties of the build of CodeBuild. + * + * @default - no override properties. + */ + readonly overrides?: OverrideProjectProps; } /** @@ -42,6 +71,7 @@ export class CodeBuildStartBuild extends sfn.TaskStateBase { this.integrationPattern = props.integrationPattern ?? sfn.IntegrationPattern.REQUEST_RESPONSE; validatePatternSupported(this.integrationPattern, CodeBuildStartBuild.SUPPORTED_INTEGRATION_PATTERNS); + this.validateOverridingParameters(props); this.taskMetrics = { metricPrefixSingular: 'CodeBuildProject', @@ -91,13 +121,52 @@ export class CodeBuildStartBuild extends sfn.TaskStateBase { * @internal */ protected _renderTask(): any { + const sourceConfig = this.props.overrides?.source?.bind(this.props.project.stack, this.props.project); + const secondarySources = this.props.overrides?.secondarySources?.map(source => source.bind(this.props.project.stack, this.props.project)); return { Resource: integrationResourceArn('codebuild', 'startBuild', this.integrationPattern), Parameters: sfn.FieldUtils.renderObject({ ProjectName: this.props.project.projectName, - EnvironmentVariablesOverride: this.props.environmentVariablesOverride - ? this.serializeEnvVariables(this.props.environmentVariablesOverride) - : undefined, + ArtifactsOverride: this.props.overrides?.artifacts?.bind(this.props.project.stack, this.props.project).artifactsProperty, + BuildspecOverride: this.props.overrides?.buildSpec?.toBuildSpec(), + BuildStatusConfigOverride: sourceConfig?.sourceProperty.buildStatusConfig, + ComputeTypeOverride: this.props.overrides?.environment?.computeType, + DebugSessionEnabled: this.props.overrides?.debugSessionEnabled, + EncryptionKeyOverride: this.props.overrides?.encryptionKey?.keyArn, + EnvironmentTypeOverride: this.props.overrides?.environment?.buildImage?.type, + EnvironmentVariablesOverride: this.props.overrides?.environmentVariables ? + this.serializeEnvVariables(this.props.overrides?.environmentVariables!) : + (this.props.environmentVariablesOverride + ? this.serializeEnvVariables(this.props.environmentVariablesOverride) + : undefined), + GitCloneDepthOverride: sourceConfig?.sourceProperty.gitCloneDepth, + GitSubmodulesConfigOverride: sourceConfig?.sourceProperty.gitSubmodulesConfig, + IdempotencyToken: this.props.overrides?.idempotencyToken, + ImageOverride: this.props.overrides?.environment?.buildImage?.imageId, + ImagePullCredentialsTypeOverride: this.props.overrides?.environment?.buildImage?.imagePullPrincipalType, + InsecureSslOverride: sourceConfig?.sourceProperty.insecureSsl, + PrivilegedModeOverride: this.props.overrides?.environment?.privileged, + RegistryCredentialOverride: this.props.overrides?.environment?.buildImage?.secretsManagerCredentials ? { + credentialProvider: 'SECRETS_MANAGER', + credential: this.props.overrides!.environment!.buildImage!.secretsManagerCredentials.secretArn, + } : undefined, + ReportBuildStatusOverride: sourceConfig?.sourceProperty.reportBuildStatus, + SecondaryArtifactsOverride: this.props.overrides?.secondaryArtifacts?.map(artifact => + artifact.bind(this.props.project.stack, this.props.project).artifactsProperty, + ), + SecondarySourcesOverride: secondarySources?.map(source => source.sourceProperty), + SecondarySourcesVersionOverride: secondarySources?.map(source => { + return { + sourceIdentifier: source.sourceProperty.sourceIdentifier, + sourceVersion: source.sourceVersion, + }; + }), + ServiceRoleOverride: this.props.overrides?.role?.roleArn, + SourceAuthOverride: sourceConfig?.sourceProperty.auth, + SourceLocationOverride: sourceConfig?.sourceProperty.location, + SourceTypeOverride: this.props.overrides?.source?.type, + SourceVersion: sourceConfig?.sourceVersion, + TimeoutInMinutesOverride: this.props.overrides?.timeout?.toMinutes(), }), }; } @@ -109,4 +178,17 @@ export class CodeBuildStartBuild extends sfn.TaskStateBase { Value: environmentVariables[name].value, })); } + + private validateOverridingParameters(props: CodeBuildStartBuildProps) { + if (props.overrides?.secondaryArtifacts && props.overrides!.secondaryArtifacts!.length > 12) { + throw new Error(`The maximum overrides that can be specified for 'secondaryArtifacts' is 12. Received: ${props.overrides!.secondaryArtifacts!.length}`); + } + if (props.overrides?.secondarySources && props.overrides!.secondarySources!.length > 12) { + throw new Error(`The maximum overrides that can be specified for 'secondarySources' is 12. Received: ${props.overrides!.secondarySources!.length}`); + } + if (props.overrides?.timeout && (props.overrides!.timeout!.toMinutes() < 5 + || props.overrides!.timeout!.toMinutes() > 480)) { + throw new Error('The value of override property "timeout" must be between 5 and 480 minutes.'); + } + } } diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json new file mode 100644 index 0000000000000..86d331d57d75e --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json @@ -0,0 +1,267 @@ +{ + "Resources": { + "ProjectRole4CCB274E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "codebuild.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "ProjectRoleDefaultPolicy7F29461B": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/codebuild/", + { + "Ref": "ProjectC78D97AD" + } + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/codebuild/", + { + "Ref": "ProjectC78D97AD" + }, + ":*" + ] + ] + } + ] + }, + { + "Action": [ + "codebuild:CreateReportGroup", + "codebuild:CreateReport", + "codebuild:UpdateReport", + "codebuild:BatchPutTestCases", + "codebuild:BatchPutCodeCoverages" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":codebuild:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":report-group/", + { + "Ref": "ProjectC78D97AD" + }, + "-*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "ProjectRoleDefaultPolicy7F29461B", + "Roles": [ + { + "Ref": "ProjectRole4CCB274E" + } + ] + } + }, + "ProjectC78D97AD": { + "Type": "AWS::CodeBuild::Project", + "Properties": { + "Artifacts": { + "Type": "NO_ARTIFACTS" + }, + "Environment": { + "ComputeType": "BUILD_GENERAL1_SMALL", + "EnvironmentVariables": [ + { + "Name": "zone", + "Type": "PLAINTEXT", + "Value": "defaultZone" + } + ], + "Image": "aws/codebuild/standard:1.0", + "ImagePullCredentialsType": "CODEBUILD", + "PrivilegedMode": false, + "Type": "LINUX_CONTAINER" + }, + "ServiceRole": { + "Fn::GetAtt": [ + "ProjectRole4CCB274E", + "Arn" + ] + }, + "Source": { + "BuildSpec": "{\n \"version\": \"0.2\",\n \"phases\": {\n \"build\": {\n \"commands\": [\n \"echo \\\"Hello, CodeBuild!\\\"\"\n ]\n }\n }\n}", + "Type": "GITHUB", + "Location": "https://github.com/aws/aws-cdk.git", + "ReportBuildStatus": true + }, + "SourceVersion": "master", + "Name": "MyTestProject", + "EncryptionKey": "alias/aws/s3" + } + }, + "StateMachineRoleB840431D": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": { + "Fn::Join": [ + "", + [ + "states.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com" + ] + ] + } + } + } + ], + "Version": "2012-10-17" + } + } + }, + "StateMachineRoleDefaultPolicyDF1E6607": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "codebuild:StartBuild", + "codebuild:StopBuild", + "codebuild:BatchGetBuilds", + "codebuild:BatchGetReports" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "ProjectC78D97AD", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "StateMachineRoleDefaultPolicyDF1E6607", + "Roles": [ + { + "Ref": "StateMachineRoleB840431D" + } + ] + } + }, + "StateMachine2E01A3A5": { + "Type": "AWS::StepFunctions::StateMachine", + "Properties": { + "RoleArn": { + "Fn::GetAtt": [ + "StateMachineRoleB840431D", + "Arn" + ] + }, + "DefinitionString": { + "Fn::Join": [ + "", + [ + "{\"StartAt\":\"Start\",\"States\":{\"Start\":{\"Type\":\"Pass\",\"Result\":{\"bar\":\"SomeValue\"},\"Next\":\"build-task\"},\"build-task\":{\"End\":true,\"Type\":\"Task\",\"Resource\":\"arn:", + { + "Ref": "AWS::Partition" + }, + ":states:::codebuild:startBuild\",\"Parameters\":{\"ProjectName\":\"", + { + "Ref": "ProjectC78D97AD" + }, + "\",\"ComputeTypeOverride\":\"BUILD_GENERAL1_2XLARGE\",\"EnvironmentVariablesOverride\":[{\"Name\":\"ZONE\",\"Type\":\"PLAINTEXT\",\"Value.$\":\"$.envVariables.zone\"}],\"ReportBuildStatusOverride\":true,\"SourceLocationOverride\":\"https://github.com/aws/aws-cdk.git\",\"SourceTypeOverride\":\"GITHUB\",\"SourceVersion.$\":\"$.sourceCommit\"}}}}" + ] + ] + } + }, + "DependsOn": [ + "StateMachineRoleDefaultPolicyDF1E6607", + "StateMachineRoleB840431D" + ] + } + }, + "Outputs": { + "ProjectName": { + "Value": { + "Ref": "ProjectC78D97AD" + } + }, + "StateMachineArn": { + "Value": { + "Ref": "StateMachine2E01A3A5" + } + } + } +} diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts new file mode 100644 index 0000000000000..7dba5af9551d9 --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts @@ -0,0 +1,88 @@ +import * as codebuild from '@aws-cdk/aws-codebuild'; +import * as sfn from '@aws-cdk/aws-stepfunctions'; +import * as cdk from '@aws-cdk/core'; +import * as tasks from '../../lib'; + +/* + * Stack verification steps: + * * aws stepfunctions start-execution --state-machine-arn : should return execution arn + * * aws codebuild list-builds-for-project --project-name : should return a list of projects with size greater than 0 + * * + * * aws codebuild batch-get-builds --ids --query 'builds[0].buildStatus': wait until the status is 'SUCCEEDED' + * * aws stepfunctions describe-execution --execution-arn --query 'status': should return status as SUCCEEDED + */ + +class StartBuildStack extends cdk.Stack { + constructor(scope: cdk.App, id: string, props: cdk.StackProps = {}) { + super(scope, id, props); + + const owner = 'aws'; + const repo = 'aws-cdk'; + const source = codebuild.Source.gitHub({ + owner, + repo, + branchOrRef: 'master', + }); + + let project = new codebuild.Project(this, 'Project', { + projectName: 'MyTestProject', + source, + buildSpec: codebuild.BuildSpec.fromObject({ + version: '0.2', + phases: { + build: { + commands: [ + 'echo "Hello, CodeBuild!"', + ], + }, + }, + }), + environmentVariables: { + zone: { + type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + value: 'defaultZone', + }, + }, + }); + + const sourceOverride = codebuild.Source.gitHub({ + branchOrRef: sfn.JsonPath.stringAt('$.sourceCommit'), + owner, + repo, + }); + let startBuild = new tasks.CodeBuildStartBuild(this, 'build-task', { + project: project, + overrides: { + source: sourceOverride, + environment: { + computeType: codebuild.ComputeType.X2_LARGE, + }, + environmentVariables: { + ZONE: { + type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + value: sfn.JsonPath.stringAt('$.envVariables.zone'), + }, + }, + }, + }); + + const definition = new sfn.Pass(this, 'Start', { + result: sfn.Result.fromObject({ bar: 'SomeValue' }), + }).next(startBuild); + + const stateMachine = new sfn.StateMachine(this, 'StateMachine', { + definition, + }); + + new cdk.CfnOutput(this, 'ProjectName', { + value: project.projectName, + }); + new cdk.CfnOutput(this, 'StateMachineArn', { + value: stateMachine.stateMachineArn, + }); + } +} + +const app = new cdk.App(); +new StartBuildStack(app, 'aws-stepfunctions-tasks-codebuild-start-build-integ'); +app.synth(); diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts index 0c71117392c5e..7dde84a1507f8 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts @@ -1,4 +1,5 @@ import * as codebuild from '@aws-cdk/aws-codebuild'; +import * as s3 from '@aws-cdk/aws-s3'; import * as sfn from '@aws-cdk/aws-stepfunctions'; import * as cdk from '@aws-cdk/core'; import { CodeBuildStartBuild } from '../../lib'; @@ -56,7 +57,53 @@ test('Task with only the required parameters', () => { }); }); -test('Task with all the parameters', () => { +test('Task with env variables parameters', () => { + // WHEN + const task = new CodeBuildStartBuild(stack, 'Task', { + project: codebuildProject, + integrationPattern: sfn.IntegrationPattern.RUN_JOB, + overrides: { + environmentVariables: { + env: { + type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + value: 'prod', + }, + }, + }, + }); + + // THEN + expect(stack.resolve(task.toStateJson())).toEqual({ + Type: 'Task', + Resource: { + 'Fn::Join': [ + '', + [ + 'arn:', + { + Ref: 'AWS::Partition', + }, + ':states:::codebuild:startBuild.sync', + ], + ], + }, + End: true, + Parameters: { + ProjectName: { + Ref: 'ProjectC78D97AD', + }, + EnvironmentVariablesOverride: [ + { + Name: 'env', + Type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + Value: 'prod', + }, + ], + }, + }); +}); + +test('Task with env variables parameters using the deprecated ', () => { // WHEN const task = new CodeBuildStartBuild(stack, 'Task', { project: codebuildProject, @@ -100,6 +147,149 @@ test('Task with all the parameters', () => { }); }); +test('Task with additional parameters(source, cache, artifacts and so on).', () => { + const bucket = new s3.Bucket(stack, 'Bucket'); + // WHEN + const task = new CodeBuildStartBuild(stack, 'Task', { + project: codebuildProject, + integrationPattern: sfn.IntegrationPattern.RUN_JOB, + overrides: { + timeout: cdk.Duration.seconds(60*60), + source: codebuild.Source.gitHub({ + branchOrRef: 'my-commit-hash', + owner: 'aws', + repo: 'aws-cdk', + }), + environment: { + computeType: codebuild.ComputeType.LARGE, + }, + secondaryArtifacts: [ + codebuild.Artifacts.s3({ + bucket, + }), + ], + secondarySources: [ + codebuild.Source.gitHub({ + owner: 'aws', + repo: 'aws-cdk', + cloneDepth: 1, + branchOrRef: 'feature-branch', + identifier: 'source2', + }), + ], + }, + }); + + // THEN + expect(stack.resolve(task.toStateJson())).toEqual({ + Type: 'Task', + Resource: { + 'Fn::Join': [ + '', + [ + 'arn:', + { + Ref: 'AWS::Partition', + }, + ':states:::codebuild:startBuild.sync', + ], + ], + }, + End: true, + Parameters: { + ComputeTypeOverride: 'BUILD_GENERAL1_LARGE', + ProjectName: { + Ref: 'ProjectC78D97AD', + }, + ReportBuildStatusOverride: true, + SecondaryArtifactsOverride: [ + { + type: 'S3', + location: { + Ref: 'Bucket83908E77', + }, + namespaceType: 'BUILD_ID', + overrideArtifactName: true, + packaging: 'ZIP', + }, + ], + SecondarySourcesOverride: [ + { + gitCloneDepth: 1, + location: 'https://github.com/aws/aws-cdk.git', + reportBuildStatus: true, + type: 'GITHUB', + sourceIdentifier: 'source2', + }, + ], + SecondarySourcesVersionOverride: [ + { + sourceIdentifier: 'source2', + sourceVersion: 'feature-branch', + }, + ], + SourceLocationOverride: 'https://github.com/aws/aws-cdk.git', + SourceTypeOverride: 'GITHUB', + SourceVersion: 'my-commit-hash', + TimeoutInMinutesOverride: 60, + }, + }); +}); + +test('Task with illegal queuedTimeoutInMinutesOverride parameter', () => { + expect(() => { + new CodeBuildStartBuild(stack, 'Task', { + project: codebuildProject, + overrides: { + timeout: cdk.Duration.seconds(180), + }, + }); + }).toThrow( + /The value of override property "timeout" must be between 5 and 480 minutes./, + ); + + expect(() => { + new CodeBuildStartBuild(stack, 'Task2', { + project: codebuildProject, + overrides: { + timeout: cdk.Duration.hours(10), + }, + }); + }).toThrow( + /The value of override property "timeout" must be between 5 and 480 minutes./, + ); +}); + +test('Task with illegal ovriride secondaryArtifacts parameter', () => { + expect(() => { + const bucket = new s3.Bucket(stack, 'Bucket'); + new CodeBuildStartBuild(stack, 'Task', { + project: codebuildProject, + overrides: { + secondaryArtifacts: Array.apply(null, Array(13)).map((_x, _i) => codebuild.Artifacts.s3({ bucket, path: _i.toString() })), + }, + }); + }).toThrow( + /The maximum overrides that can be specified for 'secondaryArtifacts' is 12. Received: 13/, + ); +}); + +test('Task with illegal ovriride secondarySources parameter', () => { + expect(() => { + new CodeBuildStartBuild(stack, 'Task', { + project: codebuildProject, + overrides: { + secondarySources: Array.apply(null, Array(14)).map((_x, _i) => codebuild.Source.gitHub({ + owner: 'aws', + repo: 'aws-cdk', + })), + }, + }); + }).toThrow( + /The maximum overrides that can be specified for 'secondarySources' is 12. Received: 14/, + ); +}); + test('supports tokens', () => { // WHEN const task = new CodeBuildStartBuild(stack, 'Task', { From 6d43bdaf7a84a0186435f10d5229557014f6f848 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 12 Nov 2020 22:29:09 +0000 Subject: [PATCH 16/41] chore(deps): bump aws-sdk from 2.790.0 to 2.791.0 (#11447) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.790.0 to 2.791.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.790.0...v2.791.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/@aws-cdk/aws-cloudfront-origins/package.json | 2 +- packages/@aws-cdk/aws-cloudfront/package.json | 2 +- packages/@aws-cdk/aws-cloudtrail/package.json | 2 +- packages/@aws-cdk/aws-codebuild/package.json | 2 +- packages/@aws-cdk/aws-codecommit/package.json | 2 +- packages/@aws-cdk/aws-dynamodb/package.json | 2 +- packages/@aws-cdk/aws-eks/package.json | 2 +- packages/@aws-cdk/aws-events-targets/package.json | 2 +- packages/@aws-cdk/aws-logs/package.json | 2 +- packages/@aws-cdk/aws-route53/package.json | 2 +- packages/@aws-cdk/aws-sqs/package.json | 2 +- packages/@aws-cdk/custom-resources/package.json | 2 +- packages/aws-cdk/package.json | 2 +- packages/cdk-assets/package.json | 2 +- yarn.lock | 8 ++++---- 15 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudfront-origins/package.json b/packages/@aws-cdk/aws-cloudfront-origins/package.json index 3a2f8da53bcee..6891422fe274b 100644 --- a/packages/@aws-cdk/aws-cloudfront-origins/package.json +++ b/packages/@aws-cdk/aws-cloudfront-origins/package.json @@ -72,7 +72,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-ec2": "0.0.0", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "pkglint": "0.0.0" diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index cbe98e36ec2cb..8cf3a2c5fc632 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index 265bc78a5133d..c31375fc5b528 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index fd8384c9da842..f776977503df6 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -79,7 +79,7 @@ "@aws-cdk/aws-sns": "0.0.0", "@aws-cdk/aws-sqs": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index df66b2582f1e4..872966c9a78e6 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -79,7 +79,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-sns": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index 3ff3fa0d1a859..9ffc897f1b28a 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -74,7 +74,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.15", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index dcbb43dceb5cb..0a5df12a22a81 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", "@types/yaml": "1.9.6", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-events-targets/package.json b/packages/@aws-cdk/aws-events-targets/package.json index a0ba41f0e6682..cbd86ca1e61f5 100644 --- a/packages/@aws-cdk/aws-events-targets/package.json +++ b/packages/@aws-cdk/aws-events-targets/package.json @@ -75,7 +75,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index b64ccc157d4f1..275a2cc729f49 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index 2d71393f32bd8..c0857a6fe8b85 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index ccd18a54f2ac9..8abfea7aca109 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index cdae20b2b13e1..f1e07fa3ae06e 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -79,7 +79,7 @@ "@types/aws-lambda": "^8.10.64", "@types/fs-extra": "^8.1.1", "@types/sinon": "^9.0.8", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index dc7c21a9bd21e..475c599e4289a 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -71,7 +71,7 @@ "@aws-cdk/region-info": "0.0.0", "@aws-cdk/yaml-cfn": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "camelcase": "^6.2.0", "cdk-assets": "0.0.0", "colors": "^1.4.0", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 0359545c0768b..15ccfe61cad61 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -47,7 +47,7 @@ "@aws-cdk/cloud-assembly-schema": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.790.0", + "aws-sdk": "^2.791.0", "glob": "^7.1.6", "yargs": "^16.1.0" }, diff --git a/yarn.lock b/yarn.lock index 4dc926663112b..13a283b8b373f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3842,10 +3842,10 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.790.0: - version "2.790.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.790.0.tgz#0c01634e59ff2a761e889808bee26dfd1ea28a2d" - integrity sha512-L278KsE+g/LsXIjLhpdtbvMcEZzZ/5dTBLIh6VIcNF0z63xlnDJQ4IWTDZ3Op5fK9B6vwQxlPT7XD5+egu+qoA== +aws-sdk@^2.637.0, aws-sdk@^2.791.0: + version "2.791.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.791.0.tgz#a85bedd46c97e0d262edb055651075c3171a171c" + integrity sha512-oIWu0hLKmDS+rOmjud2Z1CaDXtmxKSJF4937dSNLf/vNkxxjJA/6HapSfKqsraLnekI9DLP8uop5HnCHC++Abw== dependencies: buffer "4.9.2" events "1.1.1" From 58e6576a90f722929495b7cd9f1d67f93bf9c31e Mon Sep 17 00:00:00 2001 From: Amit Kumar <44288386+amitkumardeol@users.noreply.github.com> Date: Thu, 12 Nov 2020 22:57:50 +0000 Subject: [PATCH 17/41] fix(stepfunctions-tasks): incorrect policy for Athena prevents database deletions (#11427) Updated the resource name from `userdefinedfunction` to `userDefinedFunction`. closes #11357 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../lib/athena/start-query-execution.ts | 2 +- .../test/athena/integ.get-query-execution.expected.json | 4 ++-- .../test/athena/integ.get-query-results.expected.json | 4 ++-- .../test/athena/integ.start-query-execution.expected.json | 4 ++-- .../test/athena/integ.stop-query-execution.expected.json | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts index 44bccf9b2faca..893bb55af6b02 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/athena/start-query-execution.ts @@ -157,7 +157,7 @@ export class AthenaStartQueryExecution extends sfn.TaskStateBase { }), cdk.Stack.of(this).formatArn({ service: 'glue', - resource: 'userdefinedfunction', + resource: 'userDefinedFunction', resourceName: (this.props.queryExecutionContext?.databaseName ?? 'default') + '/*', // grant access to get all user defined functions for the particular database in the request or the default database https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsglue.html }), ], diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-execution.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-execution.expected.json index 07442708a7080..2e06603d20af1 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-execution.expected.json +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-execution.expected.json @@ -89,7 +89,7 @@ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" - ], + ], "Effect": "Allow", "Resource": "*" }, @@ -208,7 +208,7 @@ { "Ref": "AWS::AccountId" }, - ":userdefinedfunction/mydatabase/*" + ":userDefinedFunction/mydatabase/*" ] ] } diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-results.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-results.expected.json index b11ec6cee2c3a..444c2edcf72de 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-results.expected.json +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.get-query-results.expected.json @@ -89,7 +89,7 @@ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" - ], + ], "Effect": "Allow", "Resource": "*" }, @@ -208,7 +208,7 @@ { "Ref": "AWS::AccountId" }, - ":userdefinedfunction/mydatabase/*" + ":userDefinedFunction/mydatabase/*" ] ] } diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.start-query-execution.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.start-query-execution.expected.json index 200fc56302b66..fb4d0e0169f51 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.start-query-execution.expected.json +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.start-query-execution.expected.json @@ -89,7 +89,7 @@ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" - ], + ], "Effect": "Allow", "Resource": "*" }, @@ -208,7 +208,7 @@ { "Ref": "AWS::AccountId" }, - ":userdefinedfunction/mydatabase/*" + ":userDefinedFunction/mydatabase/*" ] ] } diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.stop-query-execution.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.stop-query-execution.expected.json index a25e8d93b5bba..aa90bd274d85f 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.stop-query-execution.expected.json +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/athena/integ.stop-query-execution.expected.json @@ -89,7 +89,7 @@ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" - ], + ], "Effect": "Allow", "Resource": "*" }, @@ -208,7 +208,7 @@ { "Ref": "AWS::AccountId" }, - ":userdefinedfunction/mydatabase/*" + ":userDefinedFunction/mydatabase/*" ] ] } From 7d9d5757db2acedb507da8bb84c65cc06d018b91 Mon Sep 17 00:00:00 2001 From: Iiro Huikko Date: Fri, 13 Nov 2020 01:26:47 +0200 Subject: [PATCH 18/41] feat(codepipeline-actions): Add deployment timeout to EcsDeployAction (#11407) Add `DeploymentTimeout` configuration property to `EcsDeployAction`, described [here](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-ECS.html) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../aws-codepipeline-actions/README.md | 1 + .../lib/ecs/deploy-action.ts | 20 +++++++- .../test/ecs/test.ecs-deploy-action.ts | 50 +++++++++++++++++++ .../integ.pipeline-ecs-deploy.expected.json | 3 +- .../test/integ.pipeline-ecs-deploy.ts | 1 + 5 files changed, 72 insertions(+), 3 deletions(-) diff --git a/packages/@aws-cdk/aws-codepipeline-actions/README.md b/packages/@aws-cdk/aws-codepipeline-actions/README.md index 6578110867b33..12e2bfa5437cf 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/README.md +++ b/packages/@aws-cdk/aws-codepipeline-actions/README.md @@ -646,6 +646,7 @@ const deployStage = pipeline.addStage({ // use the `imageFile` property, // and leave out the `input` property imageFile: buildOutput.atPath('imageDef.json'), + deploymentTimeout: cdk.Duration.minutes(60), // optional, default is 60 minutes }), ], }); diff --git a/packages/@aws-cdk/aws-codepipeline-actions/lib/ecs/deploy-action.ts b/packages/@aws-cdk/aws-codepipeline-actions/lib/ecs/deploy-action.ts index eb2bd88a72100..ec5dfb7ad2999 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/lib/ecs/deploy-action.ts +++ b/packages/@aws-cdk/aws-codepipeline-actions/lib/ecs/deploy-action.ts @@ -1,7 +1,7 @@ import * as codepipeline from '@aws-cdk/aws-codepipeline'; import * as ecs from '@aws-cdk/aws-ecs'; import * as iam from '@aws-cdk/aws-iam'; -import { Construct } from '@aws-cdk/core'; +import { Construct, Duration } from '@aws-cdk/core'; import { Action } from '../action'; import { deployArtifactBounds } from '../common'; @@ -40,6 +40,14 @@ export interface EcsDeployActionProps extends codepipeline.CommonAwsActionProps * The ECS Service to deploy. */ readonly service: ecs.IBaseService; + + /** + * Timeout for the ECS deployment in minutes. Value must be between 1-60. + * + * @default - 60 minutes + * @see https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-ECS.html + */ + readonly deploymentTimeout?: Duration; } /** @@ -47,6 +55,7 @@ export interface EcsDeployActionProps extends codepipeline.CommonAwsActionProps */ export class EcsDeployAction extends Action { private readonly props: EcsDeployActionProps; + private readonly deploymentTimeout?: number constructor(props: EcsDeployActionProps) { super({ @@ -58,7 +67,13 @@ export class EcsDeployAction extends Action { resource: props.service, }); + const deploymentTimeout = props.deploymentTimeout?.toMinutes({ integral: true }); + if (deploymentTimeout !== undefined && (deploymentTimeout < 1 || deploymentTimeout > 60)) { + throw new Error(`Deployment timeout must be between 1 and 60 minutes, got: ${deploymentTimeout}`); + } + this.props = props; + this.deploymentTimeout = deploymentTimeout; } protected bound(_scope: Construct, _stage: codepipeline.IStage, options: codepipeline.ActionBindOptions): @@ -96,7 +111,8 @@ export class EcsDeployAction extends Action { configuration: { ClusterName: this.props.service.cluster.clusterName, ServiceName: this.props.service.serviceName, - FileName: this.props.imageFile && this.props.imageFile.fileName, + FileName: this.props.imageFile?.fileName, + DeploymentTimeout: this.deploymentTimeout, }, }; } diff --git a/packages/@aws-cdk/aws-codepipeline-actions/test/ecs/test.ecs-deploy-action.ts b/packages/@aws-cdk/aws-codepipeline-actions/test/ecs/test.ecs-deploy-action.ts index 8bc27b3a4a12e..1343850871206 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/test/ecs/test.ecs-deploy-action.ts +++ b/packages/@aws-cdk/aws-codepipeline-actions/test/ecs/test.ecs-deploy-action.ts @@ -68,6 +68,56 @@ export = { test.done(); }, + 'can be created with deploymentTimeout between 1-60 minutes'(test: Test) { + const service = anyEcsService(); + const artifact = new codepipeline.Artifact('Artifact'); + + test.doesNotThrow(() => { + new cpactions.EcsDeployAction({ + actionName: 'ECS', + service, + input: artifact, + deploymentTimeout: cdk.Duration.minutes(30), + }); + }); + + test.done(); + }, + + 'throws an exception if deploymentTimeout is out of bounds'(test: Test) { + const service = anyEcsService(); + const artifact = new codepipeline.Artifact('Artifact'); + + test.throws(() => { + new cpactions.EcsDeployAction({ + actionName: 'ECS', + service, + input: artifact, + deploymentTimeout: cdk.Duration.minutes(61), + }); + }, /timeout must be between 1 and 60 minutes/); + + test.throws(() => { + new cpactions.EcsDeployAction({ + actionName: 'ECS', + service, + input: artifact, + deploymentTimeout: cdk.Duration.minutes(0), + }); + }, /timeout must be between 1 and 60 minutes/); + + test.throws(() => { + new cpactions.EcsDeployAction({ + actionName: 'ECS', + service, + input: artifact, + deploymentTimeout: cdk.Duration.seconds(30), + }); + }, /cannot be converted into a whole number/); + + test.done(); + }, + "sets the target service as the action's backing resource"(test: Test) { const service = anyEcsService(); const artifact = new codepipeline.Artifact('Artifact'); diff --git a/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.expected.json b/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.expected.json index 2d6b137036065..1114a3dc28356 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.expected.json +++ b/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.expected.json @@ -737,7 +737,8 @@ "FargateServiceAC2B3B85", "Name" ] - } + }, + "DeploymentTimeout": 60 }, "InputArtifacts": [ { diff --git a/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.ts b/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.ts index e969e350482dc..08c5b970112b1 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.ts +++ b/packages/@aws-cdk/aws-codepipeline-actions/test/integ.pipeline-ecs-deploy.ts @@ -102,6 +102,7 @@ new codepipeline.Pipeline(stack, 'MyPipeline', { actionName: 'DeployAction', input: buildOutput, service, + deploymentTimeout: cdk.Duration.minutes(60), }), ], }, From 47e28d4c6ce79d84e307c2f8d33082d47a2cdabe Mon Sep 17 00:00:00 2001 From: Shiv Lakshminarayan Date: Thu, 12 Nov 2020 16:15:32 -0800 Subject: [PATCH 19/41] revert: "feat(stepfunctions-tasks): support overriding all properties of CodeBuild StartBuild integration (#10356)" (#11448) This reverts commit 58efbad743464439ce8eb97a6c6c3e07b531d93c. We have a latent issue which fails on generating the `Java` code with: > ProjectProps.java:[10,8] interface software.amazon.awscdk.services.codebuild.ProjectProps inherits unrelated defaults for getTimeout() from types software.amazon.awscdk.services.codebuild.StartBuildOptions and software.amazon.awscdk.services.codebuild.CommonProjectProps Reverting for now so we can sort the issue out and then we can re-introduce it. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../@aws-cdk/aws-codebuild/lib/project.ts | 61 ++-- .../aws-stepfunctions-tasks/README.md | 15 +- .../lib/codebuild/start-build.ts | 88 +----- ...start-build-override-options.expected.json | 267 ------------------ .../integ.start-build-override-options.ts | 88 ------ .../test/codebuild/start-build.test.ts | 192 +------------ 6 files changed, 29 insertions(+), 682 deletions(-) delete mode 100644 packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json delete mode 100644 packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts diff --git a/packages/@aws-cdk/aws-codebuild/lib/project.ts b/packages/@aws-cdk/aws-codebuild/lib/project.ts index 8ac10c718953e..8bfc8f38e09cf 100644 --- a/packages/@aws-cdk/aws-codebuild/lib/project.ts +++ b/packages/@aws-cdk/aws-codebuild/lib/project.ts @@ -396,11 +396,14 @@ abstract class ProjectBase extends Resource implements IProject { } } -/** - * Common override properties of the CodeBuild project - * TODO: add properties `queuedTimeoutInMinutes`, `logsConfig` - */ -interface CommonStartBuildOptions { +export interface CommonProjectProps { + /** + * A description of the project. Use the description to identify the purpose + * of the project. + * + * @default - No description. + */ + readonly description?: string; /** * Filename or contents of buildspec in JSON format. @@ -410,6 +413,13 @@ interface CommonStartBuildOptions { */ readonly buildSpec?: BuildSpec; + /** + * Service Role to assume while running the build. + * + * @default - A role will be created. + */ + readonly role?: iam.IRole; + /** * Encryption key to use to read and write artifacts. * @@ -432,11 +442,13 @@ interface CommonStartBuildOptions { readonly environment?: BuildEnvironment; /** - * Service Role to assume while running the build. + * Indicates whether AWS CodeBuild generates a publicly accessible URL for + * your project's build badge. For more information, see Build Badges Sample + * in the AWS CodeBuild User Guide. * - * @default - A role will be created. + * @default false */ - readonly role?: iam.IRole; + readonly badge?: boolean; /** * The number of minutes after which AWS CodeBuild stops the build if it's @@ -453,28 +465,6 @@ interface CommonStartBuildOptions { * @default - No additional environment variables are specified. */ readonly environmentVariables?: { [name: string]: BuildEnvironmentVariable }; -} - -/** - * Common properties of the CodeBuild project - */ -export interface CommonProjectProps extends CommonStartBuildOptions { - /** - * A description of the project. Use the description to identify the purpose - * of the project. - * - * @default - No description. - */ - readonly description?: string; - - /** - * Indicates whether AWS CodeBuild generates a publicly accessible URL for - * your project's build badge. For more information, see Build Badges Sample - * in the AWS CodeBuild User Guide. - * - * @default false - */ - readonly badge?: boolean; /** * The physical, human-readable name of the CodeBuild Project. @@ -550,10 +540,7 @@ export interface CommonProjectProps extends CommonStartBuildOptions { readonly grantReportGroupPermissions?: boolean; } -/** - * Override properties of the CodeBuild project - */ -export interface StartBuildOptions extends CommonStartBuildOptions { +export interface ProjectProps extends CommonProjectProps { /** * The source of the build. * *Note*: if {@link NoSource} is given as the source, @@ -590,12 +577,6 @@ export interface StartBuildOptions extends CommonStartBuildOptions { readonly secondaryArtifacts?: IArtifacts[]; } -/** - * Properties of the CodeBuild project - */ -export interface ProjectProps extends StartBuildOptions, CommonProjectProps { -} - /** * The extra options passed to the {@link IProject.bindToCodePipeline} method. */ diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/README.md b/packages/@aws-cdk/aws-stepfunctions-tasks/README.md index 8a9a0866560e8..269135eed0652 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/README.md +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/README.md @@ -342,18 +342,11 @@ const codebuildProject = new codebuild.Project(stack, 'Project', { const task = new tasks.CodeBuildStartBuild(stack, 'Task', { project: codebuildProject, integrationPattern: sfn.IntegrationPattern.RUN_JOB, - overrides: { - environmentVariables: { - ZONE: { - type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, - value: sfn.JsonPath.stringAt('$.envVariables.zone'), - }, + environmentVariablesOverride: { + ZONE: { + type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + value: sfn.JsonPath.stringAt('$.envVariables.zone'), }, - source: codebuild.Source.gitHub({ - branchOrRef: sfn.JsonPath.stringAt('$.commitHash'), - owner, - repo, - }), }, }); ``` diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts index 997d25b11a296..939732e237d54 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/codebuild/start-build.ts @@ -5,26 +5,6 @@ import * as cdk from '@aws-cdk/core'; import { Construct } from 'constructs'; import { integrationResourceArn, validatePatternSupported } from '../private/task-utils'; -/** - * Override properties for CodeBuildStartBuild - * - */ -export interface OverrideProjectProps extends codebuild.StartBuildOptions { - /** - * Specifies if session debugging is enabled for this build. - * - * @default - the session debugging is disabled. - */ - readonly debugSessionEnabled?: boolean; - - /** - * A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuild request. - * - * @default - no idempotency token. - */ - readonly idempotencyToken?: string; -} - /** * Properties for CodeBuildStartBuild */ @@ -33,21 +13,12 @@ export interface CodeBuildStartBuildProps extends sfn.TaskStateBaseProps { * CodeBuild project to start */ readonly project: codebuild.IProject; - /** * A set of environment variables to be used for this build only. * - * @deprecated - use {@link OverrideProjectProps.environmentVariables} instead * @default - the latest environment variables already defined in the build project. */ readonly environmentVariablesOverride?: { [name: string]: codebuild.BuildEnvironmentVariable }; - - /** - * Override properties of the build of CodeBuild. - * - * @default - no override properties. - */ - readonly overrides?: OverrideProjectProps; } /** @@ -71,7 +42,6 @@ export class CodeBuildStartBuild extends sfn.TaskStateBase { this.integrationPattern = props.integrationPattern ?? sfn.IntegrationPattern.REQUEST_RESPONSE; validatePatternSupported(this.integrationPattern, CodeBuildStartBuild.SUPPORTED_INTEGRATION_PATTERNS); - this.validateOverridingParameters(props); this.taskMetrics = { metricPrefixSingular: 'CodeBuildProject', @@ -121,52 +91,13 @@ export class CodeBuildStartBuild extends sfn.TaskStateBase { * @internal */ protected _renderTask(): any { - const sourceConfig = this.props.overrides?.source?.bind(this.props.project.stack, this.props.project); - const secondarySources = this.props.overrides?.secondarySources?.map(source => source.bind(this.props.project.stack, this.props.project)); return { Resource: integrationResourceArn('codebuild', 'startBuild', this.integrationPattern), Parameters: sfn.FieldUtils.renderObject({ ProjectName: this.props.project.projectName, - ArtifactsOverride: this.props.overrides?.artifacts?.bind(this.props.project.stack, this.props.project).artifactsProperty, - BuildspecOverride: this.props.overrides?.buildSpec?.toBuildSpec(), - BuildStatusConfigOverride: sourceConfig?.sourceProperty.buildStatusConfig, - ComputeTypeOverride: this.props.overrides?.environment?.computeType, - DebugSessionEnabled: this.props.overrides?.debugSessionEnabled, - EncryptionKeyOverride: this.props.overrides?.encryptionKey?.keyArn, - EnvironmentTypeOverride: this.props.overrides?.environment?.buildImage?.type, - EnvironmentVariablesOverride: this.props.overrides?.environmentVariables ? - this.serializeEnvVariables(this.props.overrides?.environmentVariables!) : - (this.props.environmentVariablesOverride - ? this.serializeEnvVariables(this.props.environmentVariablesOverride) - : undefined), - GitCloneDepthOverride: sourceConfig?.sourceProperty.gitCloneDepth, - GitSubmodulesConfigOverride: sourceConfig?.sourceProperty.gitSubmodulesConfig, - IdempotencyToken: this.props.overrides?.idempotencyToken, - ImageOverride: this.props.overrides?.environment?.buildImage?.imageId, - ImagePullCredentialsTypeOverride: this.props.overrides?.environment?.buildImage?.imagePullPrincipalType, - InsecureSslOverride: sourceConfig?.sourceProperty.insecureSsl, - PrivilegedModeOverride: this.props.overrides?.environment?.privileged, - RegistryCredentialOverride: this.props.overrides?.environment?.buildImage?.secretsManagerCredentials ? { - credentialProvider: 'SECRETS_MANAGER', - credential: this.props.overrides!.environment!.buildImage!.secretsManagerCredentials.secretArn, - } : undefined, - ReportBuildStatusOverride: sourceConfig?.sourceProperty.reportBuildStatus, - SecondaryArtifactsOverride: this.props.overrides?.secondaryArtifacts?.map(artifact => - artifact.bind(this.props.project.stack, this.props.project).artifactsProperty, - ), - SecondarySourcesOverride: secondarySources?.map(source => source.sourceProperty), - SecondarySourcesVersionOverride: secondarySources?.map(source => { - return { - sourceIdentifier: source.sourceProperty.sourceIdentifier, - sourceVersion: source.sourceVersion, - }; - }), - ServiceRoleOverride: this.props.overrides?.role?.roleArn, - SourceAuthOverride: sourceConfig?.sourceProperty.auth, - SourceLocationOverride: sourceConfig?.sourceProperty.location, - SourceTypeOverride: this.props.overrides?.source?.type, - SourceVersion: sourceConfig?.sourceVersion, - TimeoutInMinutesOverride: this.props.overrides?.timeout?.toMinutes(), + EnvironmentVariablesOverride: this.props.environmentVariablesOverride + ? this.serializeEnvVariables(this.props.environmentVariablesOverride) + : undefined, }), }; } @@ -178,17 +109,4 @@ export class CodeBuildStartBuild extends sfn.TaskStateBase { Value: environmentVariables[name].value, })); } - - private validateOverridingParameters(props: CodeBuildStartBuildProps) { - if (props.overrides?.secondaryArtifacts && props.overrides!.secondaryArtifacts!.length > 12) { - throw new Error(`The maximum overrides that can be specified for 'secondaryArtifacts' is 12. Received: ${props.overrides!.secondaryArtifacts!.length}`); - } - if (props.overrides?.secondarySources && props.overrides!.secondarySources!.length > 12) { - throw new Error(`The maximum overrides that can be specified for 'secondarySources' is 12. Received: ${props.overrides!.secondarySources!.length}`); - } - if (props.overrides?.timeout && (props.overrides!.timeout!.toMinutes() < 5 - || props.overrides!.timeout!.toMinutes() > 480)) { - throw new Error('The value of override property "timeout" must be between 5 and 480 minutes.'); - } - } } diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json deleted file mode 100644 index 86d331d57d75e..0000000000000 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.expected.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "Resources": { - "ProjectRole4CCB274E": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "codebuild.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "ProjectRoleDefaultPolicy7F29461B": { - "Type": "AWS::IAM::Policy", - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - } - ] - ] - }, - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - }, - ":*" - ] - ] - } - ] - }, - { - "Action": [ - "codebuild:CreateReportGroup", - "codebuild:CreateReport", - "codebuild:UpdateReport", - "codebuild:BatchPutTestCases", - "codebuild:BatchPutCodeCoverages" - ], - "Effect": "Allow", - "Resource": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":codebuild:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":report-group/", - { - "Ref": "ProjectC78D97AD" - }, - "-*" - ] - ] - } - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "ProjectRoleDefaultPolicy7F29461B", - "Roles": [ - { - "Ref": "ProjectRole4CCB274E" - } - ] - } - }, - "ProjectC78D97AD": { - "Type": "AWS::CodeBuild::Project", - "Properties": { - "Artifacts": { - "Type": "NO_ARTIFACTS" - }, - "Environment": { - "ComputeType": "BUILD_GENERAL1_SMALL", - "EnvironmentVariables": [ - { - "Name": "zone", - "Type": "PLAINTEXT", - "Value": "defaultZone" - } - ], - "Image": "aws/codebuild/standard:1.0", - "ImagePullCredentialsType": "CODEBUILD", - "PrivilegedMode": false, - "Type": "LINUX_CONTAINER" - }, - "ServiceRole": { - "Fn::GetAtt": [ - "ProjectRole4CCB274E", - "Arn" - ] - }, - "Source": { - "BuildSpec": "{\n \"version\": \"0.2\",\n \"phases\": {\n \"build\": {\n \"commands\": [\n \"echo \\\"Hello, CodeBuild!\\\"\"\n ]\n }\n }\n}", - "Type": "GITHUB", - "Location": "https://github.com/aws/aws-cdk.git", - "ReportBuildStatus": true - }, - "SourceVersion": "master", - "Name": "MyTestProject", - "EncryptionKey": "alias/aws/s3" - } - }, - "StateMachineRoleB840431D": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": { - "Fn::Join": [ - "", - [ - "states.", - { - "Ref": "AWS::Region" - }, - ".amazonaws.com" - ] - ] - } - } - } - ], - "Version": "2012-10-17" - } - } - }, - "StateMachineRoleDefaultPolicyDF1E6607": { - "Type": "AWS::IAM::Policy", - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "codebuild:StartBuild", - "codebuild:StopBuild", - "codebuild:BatchGetBuilds", - "codebuild:BatchGetReports" - ], - "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "ProjectC78D97AD", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "StateMachineRoleDefaultPolicyDF1E6607", - "Roles": [ - { - "Ref": "StateMachineRoleB840431D" - } - ] - } - }, - "StateMachine2E01A3A5": { - "Type": "AWS::StepFunctions::StateMachine", - "Properties": { - "RoleArn": { - "Fn::GetAtt": [ - "StateMachineRoleB840431D", - "Arn" - ] - }, - "DefinitionString": { - "Fn::Join": [ - "", - [ - "{\"StartAt\":\"Start\",\"States\":{\"Start\":{\"Type\":\"Pass\",\"Result\":{\"bar\":\"SomeValue\"},\"Next\":\"build-task\"},\"build-task\":{\"End\":true,\"Type\":\"Task\",\"Resource\":\"arn:", - { - "Ref": "AWS::Partition" - }, - ":states:::codebuild:startBuild\",\"Parameters\":{\"ProjectName\":\"", - { - "Ref": "ProjectC78D97AD" - }, - "\",\"ComputeTypeOverride\":\"BUILD_GENERAL1_2XLARGE\",\"EnvironmentVariablesOverride\":[{\"Name\":\"ZONE\",\"Type\":\"PLAINTEXT\",\"Value.$\":\"$.envVariables.zone\"}],\"ReportBuildStatusOverride\":true,\"SourceLocationOverride\":\"https://github.com/aws/aws-cdk.git\",\"SourceTypeOverride\":\"GITHUB\",\"SourceVersion.$\":\"$.sourceCommit\"}}}}" - ] - ] - } - }, - "DependsOn": [ - "StateMachineRoleDefaultPolicyDF1E6607", - "StateMachineRoleB840431D" - ] - } - }, - "Outputs": { - "ProjectName": { - "Value": { - "Ref": "ProjectC78D97AD" - } - }, - "StateMachineArn": { - "Value": { - "Ref": "StateMachine2E01A3A5" - } - } - } -} diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts deleted file mode 100644 index 7dba5af9551d9..0000000000000 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/integ.start-build-override-options.ts +++ /dev/null @@ -1,88 +0,0 @@ -import * as codebuild from '@aws-cdk/aws-codebuild'; -import * as sfn from '@aws-cdk/aws-stepfunctions'; -import * as cdk from '@aws-cdk/core'; -import * as tasks from '../../lib'; - -/* - * Stack verification steps: - * * aws stepfunctions start-execution --state-machine-arn : should return execution arn - * * aws codebuild list-builds-for-project --project-name : should return a list of projects with size greater than 0 - * * - * * aws codebuild batch-get-builds --ids --query 'builds[0].buildStatus': wait until the status is 'SUCCEEDED' - * * aws stepfunctions describe-execution --execution-arn --query 'status': should return status as SUCCEEDED - */ - -class StartBuildStack extends cdk.Stack { - constructor(scope: cdk.App, id: string, props: cdk.StackProps = {}) { - super(scope, id, props); - - const owner = 'aws'; - const repo = 'aws-cdk'; - const source = codebuild.Source.gitHub({ - owner, - repo, - branchOrRef: 'master', - }); - - let project = new codebuild.Project(this, 'Project', { - projectName: 'MyTestProject', - source, - buildSpec: codebuild.BuildSpec.fromObject({ - version: '0.2', - phases: { - build: { - commands: [ - 'echo "Hello, CodeBuild!"', - ], - }, - }, - }), - environmentVariables: { - zone: { - type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, - value: 'defaultZone', - }, - }, - }); - - const sourceOverride = codebuild.Source.gitHub({ - branchOrRef: sfn.JsonPath.stringAt('$.sourceCommit'), - owner, - repo, - }); - let startBuild = new tasks.CodeBuildStartBuild(this, 'build-task', { - project: project, - overrides: { - source: sourceOverride, - environment: { - computeType: codebuild.ComputeType.X2_LARGE, - }, - environmentVariables: { - ZONE: { - type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, - value: sfn.JsonPath.stringAt('$.envVariables.zone'), - }, - }, - }, - }); - - const definition = new sfn.Pass(this, 'Start', { - result: sfn.Result.fromObject({ bar: 'SomeValue' }), - }).next(startBuild); - - const stateMachine = new sfn.StateMachine(this, 'StateMachine', { - definition, - }); - - new cdk.CfnOutput(this, 'ProjectName', { - value: project.projectName, - }); - new cdk.CfnOutput(this, 'StateMachineArn', { - value: stateMachine.stateMachineArn, - }); - } -} - -const app = new cdk.App(); -new StartBuildStack(app, 'aws-stepfunctions-tasks-codebuild-start-build-integ'); -app.synth(); diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts index 7dde84a1507f8..0c71117392c5e 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/codebuild/start-build.test.ts @@ -1,5 +1,4 @@ import * as codebuild from '@aws-cdk/aws-codebuild'; -import * as s3 from '@aws-cdk/aws-s3'; import * as sfn from '@aws-cdk/aws-stepfunctions'; import * as cdk from '@aws-cdk/core'; import { CodeBuildStartBuild } from '../../lib'; @@ -57,53 +56,7 @@ test('Task with only the required parameters', () => { }); }); -test('Task with env variables parameters', () => { - // WHEN - const task = new CodeBuildStartBuild(stack, 'Task', { - project: codebuildProject, - integrationPattern: sfn.IntegrationPattern.RUN_JOB, - overrides: { - environmentVariables: { - env: { - type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, - value: 'prod', - }, - }, - }, - }); - - // THEN - expect(stack.resolve(task.toStateJson())).toEqual({ - Type: 'Task', - Resource: { - 'Fn::Join': [ - '', - [ - 'arn:', - { - Ref: 'AWS::Partition', - }, - ':states:::codebuild:startBuild.sync', - ], - ], - }, - End: true, - Parameters: { - ProjectName: { - Ref: 'ProjectC78D97AD', - }, - EnvironmentVariablesOverride: [ - { - Name: 'env', - Type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, - Value: 'prod', - }, - ], - }, - }); -}); - -test('Task with env variables parameters using the deprecated ', () => { +test('Task with all the parameters', () => { // WHEN const task = new CodeBuildStartBuild(stack, 'Task', { project: codebuildProject, @@ -147,149 +100,6 @@ test('Task with env variables parameters using the deprecated ', () => { }); }); -test('Task with additional parameters(source, cache, artifacts and so on).', () => { - const bucket = new s3.Bucket(stack, 'Bucket'); - // WHEN - const task = new CodeBuildStartBuild(stack, 'Task', { - project: codebuildProject, - integrationPattern: sfn.IntegrationPattern.RUN_JOB, - overrides: { - timeout: cdk.Duration.seconds(60*60), - source: codebuild.Source.gitHub({ - branchOrRef: 'my-commit-hash', - owner: 'aws', - repo: 'aws-cdk', - }), - environment: { - computeType: codebuild.ComputeType.LARGE, - }, - secondaryArtifacts: [ - codebuild.Artifacts.s3({ - bucket, - }), - ], - secondarySources: [ - codebuild.Source.gitHub({ - owner: 'aws', - repo: 'aws-cdk', - cloneDepth: 1, - branchOrRef: 'feature-branch', - identifier: 'source2', - }), - ], - }, - }); - - // THEN - expect(stack.resolve(task.toStateJson())).toEqual({ - Type: 'Task', - Resource: { - 'Fn::Join': [ - '', - [ - 'arn:', - { - Ref: 'AWS::Partition', - }, - ':states:::codebuild:startBuild.sync', - ], - ], - }, - End: true, - Parameters: { - ComputeTypeOverride: 'BUILD_GENERAL1_LARGE', - ProjectName: { - Ref: 'ProjectC78D97AD', - }, - ReportBuildStatusOverride: true, - SecondaryArtifactsOverride: [ - { - type: 'S3', - location: { - Ref: 'Bucket83908E77', - }, - namespaceType: 'BUILD_ID', - overrideArtifactName: true, - packaging: 'ZIP', - }, - ], - SecondarySourcesOverride: [ - { - gitCloneDepth: 1, - location: 'https://github.com/aws/aws-cdk.git', - reportBuildStatus: true, - type: 'GITHUB', - sourceIdentifier: 'source2', - }, - ], - SecondarySourcesVersionOverride: [ - { - sourceIdentifier: 'source2', - sourceVersion: 'feature-branch', - }, - ], - SourceLocationOverride: 'https://github.com/aws/aws-cdk.git', - SourceTypeOverride: 'GITHUB', - SourceVersion: 'my-commit-hash', - TimeoutInMinutesOverride: 60, - }, - }); -}); - -test('Task with illegal queuedTimeoutInMinutesOverride parameter', () => { - expect(() => { - new CodeBuildStartBuild(stack, 'Task', { - project: codebuildProject, - overrides: { - timeout: cdk.Duration.seconds(180), - }, - }); - }).toThrow( - /The value of override property "timeout" must be between 5 and 480 minutes./, - ); - - expect(() => { - new CodeBuildStartBuild(stack, 'Task2', { - project: codebuildProject, - overrides: { - timeout: cdk.Duration.hours(10), - }, - }); - }).toThrow( - /The value of override property "timeout" must be between 5 and 480 minutes./, - ); -}); - -test('Task with illegal ovriride secondaryArtifacts parameter', () => { - expect(() => { - const bucket = new s3.Bucket(stack, 'Bucket'); - new CodeBuildStartBuild(stack, 'Task', { - project: codebuildProject, - overrides: { - secondaryArtifacts: Array.apply(null, Array(13)).map((_x, _i) => codebuild.Artifacts.s3({ bucket, path: _i.toString() })), - }, - }); - }).toThrow( - /The maximum overrides that can be specified for 'secondaryArtifacts' is 12. Received: 13/, - ); -}); - -test('Task with illegal ovriride secondarySources parameter', () => { - expect(() => { - new CodeBuildStartBuild(stack, 'Task', { - project: codebuildProject, - overrides: { - secondarySources: Array.apply(null, Array(14)).map((_x, _i) => codebuild.Source.gitHub({ - owner: 'aws', - repo: 'aws-cdk', - })), - }, - }); - }).toThrow( - /The maximum overrides that can be specified for 'secondarySources' is 12. Received: 14/, - ); -}); - test('supports tokens', () => { // WHEN const task = new CodeBuildStartBuild(stack, 'Task', { From af8cf13c346e3df0e62586a31e00d3a2b77d2523 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Nov 2020 00:51:43 +0000 Subject: [PATCH 20/41] chore(deps-dev): bump parcel from 2.0.0-nightly.444 to 2.0.0-nightly.445 (#11449) Bumps [parcel](https://github.com/parcel-bundler/parcel) from 2.0.0-nightly.444 to 2.0.0-nightly.445. - [Release notes](https://github.com/parcel-bundler/parcel/releases) - [Changelog](https://github.com/parcel-bundler/parcel/blob/v2/CHANGELOG.md) - [Commits](https://github.com/parcel-bundler/parcel/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .../@aws-cdk/aws-lambda-nodejs/package.json | 2 +- yarn.lock | 920 +++++++++--------- 2 files changed, 461 insertions(+), 461 deletions(-) diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index cf929a95db74c..7a60283364ac8 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "delay": "4.4.0", - "parcel": "2.0.0-nightly.444", + "parcel": "2.0.0-nightly.445", "pkglint": "0.0.0" }, "dependencies": { diff --git a/yarn.lock b/yarn.lock index 13a283b8b373f..9d88cd15951c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2159,128 +2159,128 @@ dependencies: "@types/node" ">= 8" -"@parcel/babel-ast-utils@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2068.tgz#3671e1a2fecfd521414e992cbdd9a60552b3a174" - integrity sha512-5tAgLraq10c8GY7iInEUAQbxGigWAM6+X6K4L5hgns4pw6QgD5+XtDsAbQ4r5x6cHsxXDsPpJWtRPUNrVPBoyQ== +"@parcel/babel-ast-utils@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2069.tgz#40a56e7ad51b7e0c7ede4d1b661cf32ea9f78a0f" + integrity sha512-AWeNeJVJPf3U8KBf5TiB/ZNC0WvdnY3gAPhEpDoSOM4fpUiTsQSzDjfh+lCJarVnDgATudPIvQCXmQJXn6+dug== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/babel-preset-env@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.446.tgz#2a2718e9245762b1444970571fb373e5e419db92" - integrity sha512-vW18hGRxSw/Lul9GFm5p6+yJt7OIW6opCSIakza7Ed/D+fgCmCtrb1v+B0phpB9CgK/Q19BXY3INemELF/1G+w== +"@parcel/babel-preset-env@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.447.tgz#049c3b3d3a5f56885e5c50bb15673f92ad76e6f8" + integrity sha512-84Ya/ACzm65xyWQm+NiWNOeN3vR6dgQSl0BLPHOGVf08SrpNzfdt2qVotPp4lfPP/tEjuMTElcOWzwI3zD7EUQ== dependencies: "@babel/preset-env" "^7.4.0" semver "^5.4.1" -"@parcel/babylon-walk@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2068.tgz#4e825d931124c340c4031964236942b50093287c" - integrity sha512-f5jj0MRGMR78whdcDKIRQ5mmhv0mJCRcrTAUibYz7qzaAdZaVR5uOQ0N+AzSN4v5S2F4uw7AtwWph5YnWCJKcA== +"@parcel/babylon-walk@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2069.tgz#68c4ce70174031b1c8a3ddd0c079ab0704489968" + integrity sha512-B1ZO4c3pQWfB5D0TsVYzHMQ6R949yOvqxuS++WTxbGYEgDgwp2cyQt2Hurqn/fmnadxkCY/kwWaMPpasg+xSiQ== dependencies: "@babel/types" "^7.0.0" lodash.clone "^4.5.0" -"@parcel/bundler-default@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.446.tgz#e993ed9904771d517bb1b574eab3f668883e9828" - integrity sha512-MWeDM2i9SY5qgbtogzPeaWmR0lgBH+jyYlEjzPPb5QLEB3vPBAZxLOp2s8d7EHy/nNHmKy22znzHg7lsftCkqg== +"@parcel/bundler-default@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.447.tgz#9e9e6457fafdb922c0b292e856cea20c8808e8fb" + integrity sha512-FEKLVtPIef47YxMJFzw0xB3EWwBEn9dVlA18semsIEOGIp3wrpNLceEVU+IKstbMx3r/VjdpOeoquXrfMJUYLA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" -"@parcel/cache@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.446.tgz#0cbcd98dc7c2896bc190809ced9bdb1a159b7f3c" - integrity sha512-Hqs+tA7pFm4EekHAv+QxUvqhwXclbafqTTYZKf1FXC3erQmhXeMdXBcpEeP6yZjJ1ZM5FEqjK+L8LOTcHoriWQ== +"@parcel/cache@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.447.tgz#02b84b134095738b4c6dcd1b64d2cc4d0bb5bdf1" + integrity sha512-GOr2zrrp39IKv+px7SEWRge+akUvXl7QlL3cXrqe01XngGc4ZEtnDZ6sI1B38zv+mIlIW/cPghfv8KTMZsGOPg== dependencies: - "@parcel/logger" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/logger" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/codeframe@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.446.tgz#c017240ad1868ef3d68a62510fe6c1795da40ba2" - integrity sha512-78jYfjl7qWIsltPUTfdvhzZCQtrP2e4IKiKItc3ToJgBIfkFnA0RT6EXKqlaecZQsJxsD/L5aNMpMVtCc70Zag== +"@parcel/codeframe@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.447.tgz#c5605048882a26d32b6715fd5523dcd9b420934c" + integrity sha512-XWJe+soRxSs/iwEBGlXYtOXE1X5ZkCR6St9XDgVMJZKTf/zT3PTU2i28ni8+TQForI3bugK1/UqnF5sOvsuXmw== dependencies: chalk "^2.4.2" emphasize "^2.1.0" slice-ansi "^4.0.0" string-width "^4.2.0" -"@parcel/config-default@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.446.tgz#b0e51e62144add5da02e6ecd00ab7740b632f15b" - integrity sha512-VZPqQ1E43DxYzs5eYD9V/h4QtWLENaP6oOiFUtKDVRUftBfPXHP43TldKaIYHcKcWFTRTz16D3rrvzCw3DYGOw== - dependencies: - "@parcel/bundler-default" "2.0.0-nightly.446+3bfef282" - "@parcel/namer-default" "2.0.0-nightly.446+3bfef282" - "@parcel/optimizer-cssnano" "2.0.0-nightly.446+3bfef282" - "@parcel/optimizer-data-url" "2.0.0-nightly.446+3bfef282" - "@parcel/optimizer-htmlnano" "2.0.0-nightly.446+3bfef282" - "@parcel/optimizer-terser" "2.0.0-nightly.446+3bfef282" - "@parcel/packager-css" "2.0.0-nightly.446+3bfef282" - "@parcel/packager-html" "2.0.0-nightly.446+3bfef282" - "@parcel/packager-js" "2.0.0-nightly.446+3bfef282" - "@parcel/packager-raw" "2.0.0-nightly.446+3bfef282" - "@parcel/packager-raw-url" "2.0.0-nightly.2068+3bfef282" - "@parcel/packager-ts" "2.0.0-nightly.446+3bfef282" - "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2068+3bfef282" - "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2068+3bfef282" - "@parcel/reporter-cli" "2.0.0-nightly.446+3bfef282" - "@parcel/reporter-dev-server" "2.0.0-nightly.446+3bfef282" - "@parcel/resolver-default" "2.0.0-nightly.446+3bfef282" - "@parcel/runtime-browser-hmr" "2.0.0-nightly.446+3bfef282" - "@parcel/runtime-js" "2.0.0-nightly.446+3bfef282" - "@parcel/runtime-react-refresh" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-babel" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-coffeescript" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-css" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-glsl" "2.0.0-nightly.2068+3bfef282" - "@parcel/transformer-graphql" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-html" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-image" "2.0.0-nightly.2068+3bfef282" - "@parcel/transformer-inline-string" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-js" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-json" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-jsonld" "2.0.0-nightly.2068+3bfef282" - "@parcel/transformer-less" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-mdx" "2.0.0-nightly.2068+3bfef282" - "@parcel/transformer-postcss" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-posthtml" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-pug" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-raw" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-sass" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-stylus" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-sugarss" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-toml" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-typescript-types" "2.0.0-nightly.446+3bfef282" - "@parcel/transformer-vue" "2.0.0-nightly.2068+3bfef282" - "@parcel/transformer-yaml" "2.0.0-nightly.446+3bfef282" - -"@parcel/core@2.0.0-nightly.444+3bfef282": - version "2.0.0-nightly.444" - resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.444.tgz#cc652b318155cd3d228583efc2a607a05910af3c" - integrity sha512-zAOBus2xVDOcOebHBOHW7MEX7nvDUfBKWe3dSvgSu71STHQOU7rDvl/jTOx9fJ5JsQ7rD87xIhEmzvLXCOdfgw== - dependencies: - "@parcel/cache" "2.0.0-nightly.446+3bfef282" - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/events" "2.0.0-nightly.446+3bfef282" - "@parcel/fs" "2.0.0-nightly.446+3bfef282" - "@parcel/logger" "2.0.0-nightly.446+3bfef282" - "@parcel/package-manager" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" +"@parcel/config-default@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.447.tgz#82224b0981ebbfbd9f69886eaea0e491ea8a17b8" + integrity sha512-kpOQh5N9mdo2Se8ihOVvup3VoEFZAVtXsmEO69hylsdjugmM/v9cqnIZVY2ouVaVCI6ARpfie7l/zaPIHkJNyQ== + dependencies: + "@parcel/bundler-default" "2.0.0-nightly.447+3df3153b" + "@parcel/namer-default" "2.0.0-nightly.447+3df3153b" + "@parcel/optimizer-cssnano" "2.0.0-nightly.447+3df3153b" + "@parcel/optimizer-data-url" "2.0.0-nightly.447+3df3153b" + "@parcel/optimizer-htmlnano" "2.0.0-nightly.447+3df3153b" + "@parcel/optimizer-terser" "2.0.0-nightly.447+3df3153b" + "@parcel/packager-css" "2.0.0-nightly.447+3df3153b" + "@parcel/packager-html" "2.0.0-nightly.447+3df3153b" + "@parcel/packager-js" "2.0.0-nightly.447+3df3153b" + "@parcel/packager-raw" "2.0.0-nightly.447+3df3153b" + "@parcel/packager-raw-url" "2.0.0-nightly.2069+3df3153b" + "@parcel/packager-ts" "2.0.0-nightly.447+3df3153b" + "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2069+3df3153b" + "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2069+3df3153b" + "@parcel/reporter-cli" "2.0.0-nightly.447+3df3153b" + "@parcel/reporter-dev-server" "2.0.0-nightly.447+3df3153b" + "@parcel/resolver-default" "2.0.0-nightly.447+3df3153b" + "@parcel/runtime-browser-hmr" "2.0.0-nightly.447+3df3153b" + "@parcel/runtime-js" "2.0.0-nightly.447+3df3153b" + "@parcel/runtime-react-refresh" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-babel" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-coffeescript" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-css" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-glsl" "2.0.0-nightly.2069+3df3153b" + "@parcel/transformer-graphql" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-html" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-image" "2.0.0-nightly.2069+3df3153b" + "@parcel/transformer-inline-string" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-js" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-json" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-jsonld" "2.0.0-nightly.2069+3df3153b" + "@parcel/transformer-less" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-mdx" "2.0.0-nightly.2069+3df3153b" + "@parcel/transformer-postcss" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-posthtml" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-pug" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-raw" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-sass" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-stylus" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-sugarss" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-toml" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-typescript-types" "2.0.0-nightly.447+3df3153b" + "@parcel/transformer-vue" "2.0.0-nightly.2069+3df3153b" + "@parcel/transformer-yaml" "2.0.0-nightly.447+3df3153b" + +"@parcel/core@2.0.0-nightly.445+3df3153b": + version "2.0.0-nightly.445" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.445.tgz#a1d337cdf33e7be7371e8001813afad9db7ef5dc" + integrity sha512-KLhER08w9dL2lgKu+NjkPs1OpFMiBZGdnvdy0A8T7rOTBqtApyTBm+x1NnlTQMywpTCODctPYLGf8vYAXo7ZKA== + dependencies: + "@parcel/cache" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/events" "2.0.0-nightly.447+3df3153b" + "@parcel/fs" "2.0.0-nightly.447+3df3153b" + "@parcel/logger" "2.0.0-nightly.447+3df3153b" + "@parcel/package-manager" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/types" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" - "@parcel/workers" "2.0.0-nightly.446+3bfef282" + "@parcel/types" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/workers" "2.0.0-nightly.447+3df3153b" abortcontroller-polyfill "^1.1.9" base-x "^3.0.8" browserslist "^4.6.6" @@ -2294,72 +2294,72 @@ querystring "^0.2.0" semver "^5.4.1" -"@parcel/diagnostic@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.446.tgz#f0c0136bc9bf7e45491fe5789f4463a2a7922658" - integrity sha512-NPJNcbO5D1rpdiD57AJy77CmqgODq+Adjvk8ntt8yD/jVpzUp1ju21Ql3HbsuHDT5XFu8xEh2xUYgwuUy9KGAg== +"@parcel/diagnostic@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.447.tgz#f8de06669979e438b5985ee06585e0400a9acf2a" + integrity sha512-VMoMK4xc83/bKITgzkB4vzz2YlYlKVDgHAIXUijISVnE1pvZHFJP9Uyw4aQ2l4nA1uILa8fQER0J14ayIGouoQ== dependencies: json-source-map "^0.6.1" nullthrows "^1.1.1" -"@parcel/events@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.446.tgz#82557b5f067b0adf17a391f028012ab6f21d7866" - integrity sha512-yShzChGKaDscBBIKcyy6eXX3/vXjne3pYkcBE+26vXATcDLhZr7ntN/LvBsgJ+/4a40lszymkc06aKDusBhCEA== +"@parcel/events@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.447.tgz#2608cd24c70993028f04a2d150e11e41c0554af1" + integrity sha512-5f6/d8i8Gavc6/RTC8XNZY0X4wpwnjx/edWUchk74j+RQd9ddslvVV41sHRkFER0ZlxQsMStDUZwKk+rmLwn7g== -"@parcel/fs-write-stream-atomic@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2068.tgz#a28e376bda170365665f681127715bc1b16b294e" - integrity sha512-HtBdsaMrXMOFzE+5k/Hsji4IGGmuVhvEBKBGjqFo5FYvrlaYsqT3fX7rFIxg5su4qFMMEZU24RI6IXVlFSoAKw== +"@parcel/fs-write-stream-atomic@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2069.tgz#75c14d11ce7eec960202527dc5530c97b2f38463" + integrity sha512-T3k8rhynHVQL12BKbvb4HYi3FjpJh4bEMAAoPoPY/VYDZ3nox3hE1vZGFyRyJqgQBP5gFCggj8MUvd5DeLt4AQ== dependencies: graceful-fs "^4.1.2" iferr "^1.0.2" imurmurhash "^0.1.4" readable-stream "1 || 2" -"@parcel/fs@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.446.tgz#82cf51e6d48e207661ecb93a4847cf02d8f2a87f" - integrity sha512-K5k+j/DPG9EP0XOr2LJp0mQAodrpscIwSjWGMOvdEvGbY25FP4NB8Sg2Xs00KCaZVNlsKsrMpOsJyohP3ePpbg== +"@parcel/fs@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.447.tgz#73cade111d8a6944f891417de7e982db3d12ac41" + integrity sha512-WregzLdnoQ3bl3/UzZp6SJp1CklMoSQM7fqzbGsbdnfON9e/MalfvjSmKtOUqCpqcK2RzvI1LFLw6alOxqOuHg== dependencies: - "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2068+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2069+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" "@parcel/watcher" "2.0.0-alpha.8" - "@parcel/workers" "2.0.0-nightly.446+3bfef282" + "@parcel/workers" "2.0.0-nightly.447+3df3153b" graceful-fs "^4.2.4" mkdirp "^0.5.1" ncp "^2.0.0" nullthrows "^1.1.1" rimraf "^3.0.2" -"@parcel/logger@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.446.tgz#38e46be237872d57d8a240776a478e576285b6bd" - integrity sha512-q3/yovljZeYMWfG9/ThC0z8RwUDzKVvJaYislfVt1k/BGVrvBy8Z3M65iut4ub0hTzTSzZKLTwHwmYbPU+pquQ== +"@parcel/logger@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.447.tgz#5b39252973dc175ea5e879c0852640f39b227400" + integrity sha512-nknzbNd+aCPLy9F5gOKbeHneGXQ3wcye0feVZK4JeBS1S5d0dx4kCE1K9oclDMwCVOQSVSoXP6JtUBG6xxFw0g== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/events" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/events" "2.0.0-nightly.447+3df3153b" -"@parcel/markdown-ansi@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.446.tgz#23538d1116393ff15e0de85300a5ae2e1e2c5fd7" - integrity sha512-FHXlTFPq9Iu6kuTOjrs0qMNFQ8REFBE96kFuSeTQ5omcOHL6eNIBO9VCIxima2Cz+9pQSNXhNlaUAUVRPCXJ2Q== +"@parcel/markdown-ansi@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.447.tgz#cb063df65e44f34aa0b1ef1b7d12293ea60c798a" + integrity sha512-t070G7y5DZhuyEdWFWKwWivqxDdlyEmFTHh7FFvKcAWQUXQcoAUudsqcQhDTvnc3E+4jERPIi24wZy+Ymt5UpA== dependencies: chalk "^2.4.2" -"@parcel/namer-default@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.446.tgz#3c43cabff1ea6615af53454a32d1ab9ea0eb69e0" - integrity sha512-DmqpV/GpgjtQerbVSO3rOW3gT+AaxslJWPqa9diFbtAQSrnzbJcuENnaxJzKWyGLT7TgMFoG86iqTiIWFnqfNA== +"@parcel/namer-default@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.447.tgz#e1dab70d0833ea5d83128beb3203d480fedd587a" + integrity sha512-yymDEo2Idr43t6z/az73rBnTbuynGm9pau7LihV/pPISXh+ShNqyeAn3v8M4fb11uJIOUNo7zQIfKHCuyahS7A== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" -"@parcel/node-libs-browser@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2068.tgz#6178b587cdb236126b26a53bdbf4376b47bb4ebc" - integrity sha512-BNTYCeaBKyLUUeEaB4NNiV4b86VaJRcpzm1ykBpZRGsDSi4ts4KE1dzxJPm6Pe9N9NkMEXYdZX4VQA9CpxHXjA== +"@parcel/node-libs-browser@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2069.tgz#8e62d0240229edcf99f4363c6828ef0af7bf749d" + integrity sha512-3bOjrkoK7Q1aiftR0Z1MgdJqtrapxkTbCPx69XOUW+wV8f29Chi4KKhVrAIczEPLEmrboYhWfQ05flvkKgocuw== dependencies: assert "^2.0.0" browserify-zlib "^0.2.0" @@ -2384,71 +2384,71 @@ util "^0.12.3" vm-browserify "^1.1.2" -"@parcel/node-resolver-core@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2068.tgz#98537a4242537ed93aa0b1489c1a0870e57b1c49" - integrity sha512-BKa43I/Xi1j8TGn0XjvsM+BKPZeaJS7oLTy8GgZlA2Fk8cf5JFUem/t2iulF51qEb4B/CDQWHu63sEoC1IxarQ== +"@parcel/node-resolver-core@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2069.tgz#127ddbe7e528c8a3083610dd583f65cbc130e5b0" + integrity sha512-u/nFM7ZLy8s8WSuyxf4O9gjOCDk1aZSeRzSpEpK4RyvRayiF/c1D//aipZlH7HBQ4YxdXJ3ztciFjHAiHwnDiQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/node-libs-browser" "2.0.0-nightly.2068+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/node-libs-browser" "2.0.0-nightly.2069+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" micromatch "^3.0.4" nullthrows "^1.1.1" querystring "^0.2.0" -"@parcel/optimizer-cssnano@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.446.tgz#73700f47036776d2b51fed6615468f1d9f05e3fc" - integrity sha512-pSqJFhnE3SjNhDmqbmEu5EPfMDY4Ghx2W6FSgAohk6FJy8wd4tS2ghlVavUHKOZopbcvAia3+OHJXqhl2K802w== +"@parcel/optimizer-cssnano@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.447.tgz#7d7c1f63d807d805a134556f61d678ca31d01bc3" + integrity sha512-l4Kdn0U/ozGmsGLZI5PlW/8H/t+gXhIT5ON9AFPiX0q0iGDKXrusdgpVglKRQwIICFslWXcvH3FcKqxabvu6pA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" cssnano "^4.1.10" postcss "^8.0.5" -"@parcel/optimizer-data-url@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.446.tgz#d2feaf6e7cf40c21aae8d00758113b43ea611f3a" - integrity sha512-dCAutIyY0+shiTGFUfpTKTnixOg13sgjz/AAml6/iJHKWYcp4rvW6ilzXX2egi529OmfQkYq1hBFPaAMk5fcDA== +"@parcel/optimizer-data-url@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.447.tgz#9bf7e3b58c1eccb7c5fd69a3c2a45bd59d8b3012" + integrity sha512-XmL0VtiUHRHWkzVh2qq/PQWa3gIa/AHUBcbefpSKexbu3V2ivd6pAlEyy5c78VRtbKKQ/BfJkYvFlaNJsRfQUg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" isbinaryfile "^4.0.2" mime "^2.4.4" -"@parcel/optimizer-htmlnano@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.446.tgz#fcd42db64dd9736470baebe844f27e4f294d885a" - integrity sha512-GeUEx5QTcxcvGrWVnVwSDbCgCaGqrQtvTVUndGaAJAYPnGzTzPZH3KzubD7WvBXYARXrrpjEvWCXmEN6hNsfSA== +"@parcel/optimizer-htmlnano@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.447.tgz#2e114e8db03d44d5c60f67cd02ff608ab669936a" + integrity sha512-lCvjK2/Ts5XqE1UXMYV4gblwLiOifdh5Nvi/wv7hllvyASIyln2SIW58cIrR6J56iH0gpIs1+heQ30XkvoWvWg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" htmlnano "^0.2.2" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/optimizer-terser@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.446.tgz#9282e0a168b9b76b0380cc5aa32192ec4a38a6a0" - integrity sha512-lZXKeZLCTwTWf9aerhpENr5edc1xz8FmEGnyRPyqaln3VF1dJW7lLp/cCENh+8KyXwKvyxroZuIU+zTrNO0UDQ== +"@parcel/optimizer-terser@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.447.tgz#1e2fa5b53cc9944b27d09303575ac72dd8ca0267" + integrity sha512-yRXsFokdTiePWi63TzQZ6Ia1tmejf6VotzlEx9HAtiMCfE0rwkZL4BPdY/ontaOr6uLMBgKfMJHfTOSYd7gV9g== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" terser "^5.2.0" -"@parcel/package-manager@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.446.tgz#56abd6a81be4a67e227bdc8ca1e49ff0bfb66eec" - integrity sha512-k0DD0AN2plk6NzwIIBWF+8uGxYWMp4kp9hfzE3ERmoLl6VKN77PEINCq2aGkcENhiXF4omO8u2A5K5Ns+I8QaA== +"@parcel/package-manager@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.447.tgz#c8ffcc3e4b315223c1245b4c8284c8c5e22246ec" + integrity sha512-zcOz79FKIve/QNzeN18CyOlSHcMKz4teMJYJVDg7IhgdeLOdDD/jStQO5h9vocXONTLr0umcqf+n/exFVlzQ1Q== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/fs" "2.0.0-nightly.446+3bfef282" - "@parcel/logger" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" - "@parcel/workers" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/fs" "2.0.0-nightly.447+3df3153b" + "@parcel/logger" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/workers" "2.0.0-nightly.447+3df3153b" command-exists "^1.2.6" cross-spawn "^6.0.4" nullthrows "^1.1.1" @@ -2456,91 +2456,91 @@ semver "^5.4.1" split2 "^3.1.1" -"@parcel/packager-css@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.446.tgz#88d745452695bc09eb7e32039d61b196a928ff83" - integrity sha512-3SXRjRx5DD9QlcrICHINAWMaDxB/5Ki33eT4camu/1xDblpTvFcv7hRgYj37d1fXbyebKSUBKEzaUDjAUcwxOA== +"@parcel/packager-css@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.447.tgz#574fbfd64161c12a26f262f848dd47d660f44f32" + integrity sha512-R0jYtiIUrDts7VDCStSg/5ew5YSijLQflPUCTXhcyxqQqglP9+oAvoLFoKV7WH3WsnN5sDw3le6V+eGBP+6QtQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/packager-html@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.446.tgz#a2d4f92b69e1b0580a37515629fb18bcab70bc8b" - integrity sha512-qhNs0fcvSTsA6kNpjQq4MZYWFjTQETpDIXL9YSlSwgTAUwa7UEvn3a3C0W2X2OpgXaM+zqj/WifLuZQjrY0Qpg== +"@parcel/packager-html@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.447.tgz#48af24a3d04e4c741e1f34ec4f1853d7166178e2" + integrity sha512-+I77EZztonC2u5/Tq6Sy6KBjvRRYyFg/V4Ts1LfkG4eWKQSdezB+TKr6ccG8mYrN4LcdtHwRdc8SROMaodHEAA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/types" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/types" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/packager-js@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.446.tgz#2fa64b00dd946c14eb14c01cae9fea2fbb4c4b35" - integrity sha512-UN/J+xGh2uGamxVb5NRYlsfQUkUeEClo7Mzm+mj9OFjTEbCKc768qhTPf1X2cEG5WtrD5xxIToYTPbdArAB/nw== +"@parcel/packager-js@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.447.tgz#d90a439980fdf2e15faec2e54d980ac978d79a0a" + integrity sha512-UKpiqjaP6EbFfkm30kQYornokxumN7KVMHfVwkYmjOpy2yQ4WgdCQ/ll8p8Rucu58mge6s7rVmdhsLyk7S/H8A== dependencies: "@babel/traverse" "^7.2.3" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/scope-hoisting" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/scope-hoisting" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" -"@parcel/packager-raw-url@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2068.tgz#7359309410e1115ad820df0c33d3e45fbad8f8ad" - integrity sha512-nQfoCPewW57EjQRvHXXVhBqpU3qo8r4cpSmltKDb+7Mdb9KctYMy7AdO/bipXdIgvqk8H3k/KRvmhSi17MLBcw== +"@parcel/packager-raw-url@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2069.tgz#2644768f087350aa4130ae9c5c90a77b985aa1b1" + integrity sha512-2N68cU1Ij0EHZqszFjbz9L8zzbCQ3x11V3EsxHtS0cqlKjHggN5BDpz3ZUA3nEy6vBf5mo5JcqfYdlG8VTtKgA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/packager-raw@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.446.tgz#0d07aa9d453a5d00d2ead0e0a63bfe464b68c911" - integrity sha512-YrUwZDap0iwWYEvu2wYPp9gZw9eggnAt0r46s1+KvTWdSdJaB1M1Ctm+sF3BQvPuzvT3li69idVeMFA2T1Zodw== +"@parcel/packager-raw@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.447.tgz#78b78df56ce00320d00731b54fd0339c8eb91fe3" + integrity sha512-NHVusjJCCaLlTw40eUcGisrLHM5VOYtejJfcbI0PmmQpfk4tltuMIDn8a7JaVBLP7fMYjuEbCnrr0AiEKR6bkQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/packager-ts@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.446.tgz#2f062227ee2e436c5a51a463a9d94c6358f34a04" - integrity sha512-DdCaZk8kZpzdAIIbxoHia5ga8swe535lYiuAbrbKBB4O1lmzXAtDy3ko3yV4rSPjTDG49PAQD26r5Q8pVApZ2Q== +"@parcel/packager-ts@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.447.tgz#e1bceb09202a169bc8029b77c650b8e9416308b8" + integrity sha512-hGRhGiQDy/UT1ce4zGPuE6lqBV7XPQm4/tv+Po2IlmItqlhqMy21XqtW1dMrdeKq1b0lEmAKdxi3cbrP67F39g== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/plugin@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.446.tgz#7881c9a01a9641a0113925a6ec5e86ca7d7b115f" - integrity sha512-Rzi7MH5EeanlWdssuWXUx3wztdh1TApOFAP+XHDft+sBhlhdcuazywGyk6vzILAr1hIdKxO5DkUxnHR9Db1biQ== +"@parcel/plugin@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.447.tgz#4a6b38c910298c3b15cceb0dbd39e04e0076692f" + integrity sha512-GKVmQjHbHW02XwPzpJkI+XYgsnLbV5C5v/zyjZyjrfmQqSRgPs1L0OqCnCLG9SoK71lelwAXA7YchpIo+DJqWQ== dependencies: - "@parcel/types" "2.0.0-nightly.446+3bfef282" + "@parcel/types" "2.0.0-nightly.447+3df3153b" -"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2068.tgz#cfd47198f4e608812c6aa06be26b0a41657a8c9b" - integrity sha512-rG2UhcbCQ/F32FzEGX/CnD0kNGz5+cUn9ZAZoQJgn6Rrsafv2Edh6TGWtRK4znj8l77h4E0Rc/yYMqfFzKCdCQ== +"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2069.tgz#9b6e6bd1db96bd727676c6fcddc9fc086261f44e" + integrity sha512-umwO5l1RiKm6rvLsAz48tulVdd2PrtOHvMUiasq1jJwwkKWO23Qql5Ag/HBSokMjDYRTJDYN8i8bLReWbNrK5g== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" -"@parcel/reporter-bundle-buddy@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2068.tgz#dabae907e36fedc14218644b7bdd42a25cffc983" - integrity sha512-GrF0CXwmsB/T8jafDeMpEmOfaab6/YVe+JPsBGcvz7qlLUhtw7+Os4yhFyC9fkHDEHQxEGE1s5aeKGIvEQ0URg== +"@parcel/reporter-bundle-buddy@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2069.tgz#c658df5262d82866c455ae83a96fe24eade7fdf7" + integrity sha512-11n9gECbvOaEQ3LrXTzB6VpeHbnzxi+TMI/TlamUO7U1PNM9TSPVCN2OEwv1NgtQ4/wvQ2NPyDzgkxutLVbc7g== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/reporter-cli@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.446.tgz#7a8259fcbefebf1e62090938e3bd83f6aed0e9ff" - integrity sha512-aVTDkX5ID8pcSqjm+soA2urRgkpsraMC37k6dAKqO4IZQFyrOr1J8ZSTFboZkJpls4A3msdd6aKkpNSAniSpzQ== +"@parcel/reporter-cli@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.447.tgz#14a77213f3e3d88402786ca612d7babc27a9b19e" + integrity sha512-3DhVXIo5JJ1jQsnkl2NQmA8ngVRxCRErJzhoBV7zM2fnjtPUkfbx3/HJBTDDqmkqCPDosbrSeF3srUMCt6n15g== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/types" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/types" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" chalk "^3.0.0" filesize "^3.6.0" nullthrows "^1.1.1" @@ -2549,13 +2549,13 @@ strip-ansi "^6.0.0" term-size "^2.1.1" -"@parcel/reporter-dev-server@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.446.tgz#675b4f68be8841e9c5b7806bf08905c2bed8f01c" - integrity sha512-/KF1QiNtEbwlCFl6+1hQNznKyt0npwvfgreo9ZJEgX9IWj04Sbdz0JhaPjESq5+3Kb/e3N94RZWc7+pysdgEYg== +"@parcel/reporter-dev-server@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.447.tgz#0f2eeae52ea0357fa6e1344da7fd15ff2d5c0055" + integrity sha512-HN43ip84zy0rH6uPXlnyhKa4qfbr66U0+OSUrusk8nKFpJG/vVj05nhvSEbYud/7xKx9L53moO/bNVLym83TjA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" connect "^3.7.0" ejs "^2.6.1" http-proxy-middleware "^1.0.0" @@ -2563,54 +2563,54 @@ serve-handler "^6.0.0" ws "^6.2.0" -"@parcel/resolver-default@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.446.tgz#527780f91fd932e1a62d0e5742edf777ff046719" - integrity sha512-8ECX0H4g0KvEjgtnpP2BPNl+Ios0FEqUeg8/6pntsVKbFlKT6mfVsTwH2iXVq/96qCBfn/kuZUlKONrIzXbQ8A== +"@parcel/resolver-default@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.447.tgz#7ccca87db789e731e46687862732455bbfc3ec28" + integrity sha512-bfbvVOywPcBs0qwK5thUlcSADoPCul+DIQVPYqacvq8XFY8mZMVqP6erckaxK+Fe0dcYJmJB5wRi+LFK6OI2kQ== dependencies: - "@parcel/node-resolver-core" "2.0.0-nightly.2068+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/node-resolver-core" "2.0.0-nightly.2069+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/runtime-browser-hmr@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.446.tgz#8ae59b67cedbdf6070d98967ca1de44259192823" - integrity sha512-J4kfVfbmfVugL66Ttl1Ma9iCbY11cXEu3TzMg6SWxps2RV33gTBOhrkZ4b0BMKL7M5rHF9++DZkUpB2t1PJq3Q== +"@parcel/runtime-browser-hmr@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.447.tgz#1e5d449cbcfd5a5470ff7317189fdda3536c0e59" + integrity sha512-F3R7dtBqSVTlbM6dZc2mo0171hx9HR8frPPOoC0cNh/NPRZcL7AkVE6oPp9gD74J16uHktYuOZqeDjGL7otnJA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/runtime-js@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.446.tgz#39a93aec6c2e3d5f72b6391ab1e199c8bf86e112" - integrity sha512-R9BbQliTU09WR+r0Py2iPuaPvq3wyyl6LWVVM0RB0Ccn1QuVOEwng3Nk7Vn6wTLejARsgLs2koVHln35pX1JGg== +"@parcel/runtime-js@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.447.tgz#694b2f8f069484ab348a44bc74f74c5853698935" + integrity sha512-yqCBktSjxdmq1Z2t85CwdN33oPYTMQ9SUtXWJHCtLwbSLiKRnKl7JpLqFhcRPQ0EAf5H9/MYPGyA6M863M5zRg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" -"@parcel/runtime-react-refresh@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.446.tgz#5666360f5dba7db41716d5199ce40a438aeb394f" - integrity sha512-wXKmWbdFmlER3NHqoM8Rh+ObfAUNQZOMIxMWjVZE9W6bcRdfId4bGv5APHgn2Aed56oPKjbC2FOx3UYThCJOwQ== +"@parcel/runtime-react-refresh@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.447.tgz#8d3da34983d7b4d35297fc22a0dd362e51cc0d0a" + integrity sha512-7oF0NqOc4UBgaLm4FY58xyZS3zSNnCAhMNQPDvvglFGY83VLK2vWUKXxgVZzYO+TDPLuGr42E6m5f0eb241iqg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" react-refresh "^0.9.0" -"@parcel/scope-hoisting@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.446.tgz#f350b4650b84af0ede793fbc280ee48039b6de00" - integrity sha512-mmT7WqSEIRXYP4ChHai0fEXqofruAEQTWC9GwwEPE2iFjTgpGmF0NQW9H+PG/RQkeCbzG6rdYAZlIlJkhvuXKg== +"@parcel/scope-hoisting@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.447.tgz#03142a49b96dd7134b2a196684d14630ff7144f7" + integrity sha512-sEXeDYbz6CQg5RmhAF4qkGVzrWiMuEtrEJ91b2LQYxNdJR4F7hApz+gh5qCFLfTIB2KfRZd1cUCyGh0GDE3EEQ== dependencies: "@babel/generator" "^7.3.3" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/traverse" "^7.2.3" "@babel/types" "^7.3.3" - "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" - "@parcel/babylon-walk" "2.0.0-nightly.2068+3bfef282" - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" + "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" + "@parcel/babylon-walk" "2.0.0-nightly.2069+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" "@parcel/source-map@2.0.0-alpha.4.16": @@ -2621,10 +2621,10 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -"@parcel/transformer-babel@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.446.tgz#778dd03df21206e23032cafa867e67f362c74240" - integrity sha512-CB5qQZZl0YA+vqnRQq+5huVhWDEe2xd6BNSz8U6K55ez/O9PRSaRosxRkkVIcQJr2jGAI7YTXC4zC3relcvMWA== +"@parcel/transformer-babel@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.447.tgz#a936a737d4bdec282dc23cbb9142b0bc80d5fe0e" + integrity sha512-9wMqAV7kO4YcYb1in6YhM3PbmMz5GgNHcMI63aOtDhXCxqi4uYSo6gS1wHkPK3iv+naGqrPGxvNbopXmzcSkSw== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2634,85 +2634,85 @@ "@babel/preset-env" "^7.0.0" "@babel/preset-react" "^7.0.0" "@babel/traverse" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" - "@parcel/babel-preset-env" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" + "@parcel/babel-preset-env" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" browserslist "^4.6.6" core-js "^3.2.1" nullthrows "^1.1.1" semver "^5.7.0" -"@parcel/transformer-coffeescript@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.446.tgz#9315acf80e8a41726b0e8a9f7569e85895902a27" - integrity sha512-yJI5LvN9pVAv474Oz0OqbezegSzi+USMk7KLv9s7f+lCz870hoGXoxSX3u1WIvYT4j3VXblwDd895nBZ5KfV9g== +"@parcel/transformer-coffeescript@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.447.tgz#cae039862eb29c5f2e2a234e19dc2634e3ec489e" + integrity sha512-JrWad88HP1VsW6FTxOboS9wOr8b9AR+TwJEG5ps+Vu5iTmklyWuwnDDcJIos7Rk+ew58F1lWhqDN+/qxCdsv9Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" coffeescript "^2.0.3" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-css@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.446.tgz#5a904695c6f11bc68decfa06a5243b4582c484d1" - integrity sha512-mT6LJExHLeon7OXwfKpcxz1ATl1dsuAKYlDMo6F4pU82FcxdMFZD7dLUmvvsQ7rG43/ZPMermR5xlNPjfed+pA== +"@parcel/transformer-css@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.447.tgz#9c54780291b93ee7760553390a3f3fec8ab09dd0" + integrity sha512-/ImYwUPOKDZ3Bw/qXVDAkV7yKL82Qhrb6zOcjzyKm1Le27KJ82mGe6eGhCPHokKA/pFiIrj5xGiwCxNH3W67vA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" postcss "^8.0.5" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-glsl@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2068.tgz#55fce558f9b1ce40ed16a76c0f96b52088fc2ef0" - integrity sha512-Azf/840wQ/6R1uJV05+QxywA6cUdBDaqa9tU+LPNhonfvX1Cg8RyUMW3Guzs/Jrchuv1dW/YSDLFnNw5k6cepg== +"@parcel/transformer-glsl@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2069.tgz#62deacd5029604b826686c072cfeb8d21a12403c" + integrity sha512-qJabAfGUpl2V/tqnJFqOXemKFyyz3RGajVYSHvFVabNC4sO/pUiz4nFNQmqhO64UGJSbS5TxEWB115h5beGwaA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-graphql@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.446.tgz#344270a83f7ccce671bf76ec2062df8430b5f74e" - integrity sha512-UrpBUzhnainKKUqauDAR1C7g5D6tHHNSz+226ZfoNJEVKCJ0C+dMH492yk4UqIU4PcPKCR6zRJCNA353G7x2NA== +"@parcel/transformer-graphql@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.447.tgz#3859d22ee1af541e2a9178c5de362eff64f5b240" + integrity sha512-jG8f5pz7rytvhwDaAvxoh7JaleKeLnWwOSTfFCMwAWZJD6O4IeP7/D4Jrg1jbPkpl4H/v6zyHnERxJbQL3bjIg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-html@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.446.tgz#ab9f94effe5e16ad3eaa0744440525ed92b33f96" - integrity sha512-5PIuqRj+CbqVeLFfSwbmaaDD6seRypNmp1A/+qxVgmz8ya/Wt7XwEHTT+4Mw2OAJykWl12Adp9qoRpWJCa20fw== +"@parcel/transformer-html@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.447.tgz#4f169a9b2808ae76509e56a5afe039f32db04370" + integrity sha512-aKPyz5bkfTNw//wiltwKbpmtUT7bt7yVvdobAH70axj2z6xtjfHxYQdCu0DVRfDPt/OrRe9zBHzNY5moMaZcrw== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-image@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2068.tgz#bc41cf314cb20639014c264c194f84cc1a056481" - integrity sha512-BFYM4eFn75RzSNt4t6Pmj33q6rcNypH+iExB5do1EB0Xv8he/s9O1ujO5nCy5AKJVdrR42ABjIR5/pl30ZRpLQ== +"@parcel/transformer-image@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2069.tgz#350557404818b48e692fabc83be3716ff0937368" + integrity sha512-bkZ7+I+EjIdzlsc1AzfYB/BLP7hxX14Go3JQHPCSoEshWCh1dPGrejFdicaBUNdlDCZpM0EXt0kvJ0AA4Ho22Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-inline-string@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.446.tgz#bcfbbbec8544a0c6c3a90a1cb05067ae5d0890a6" - integrity sha512-d7H1kxB7Qy0MW5tYnTjzA3dNpCaxNUSQjJqvWvBpYwn9vct0PzS/YHM3b36tku76p5mk7+YP4ZxC2aT6i3yq+g== +"@parcel/transformer-inline-string@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.447.tgz#350955c01bff31971d8649abc576bfabc2e03460" + integrity sha512-qSRij/gO1DBH+JKEq2nhbADCUR/gxmVnivWVKKujB/Nc3P9BF2+oCM9NFYbgGdkuSOkAxiL0EUUMcONUXCStcw== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-js@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.446.tgz#60af6368f0df6af66e0c9164567dfa9548f8143d" - integrity sha512-jO1dFhOHgwEb4nZ1lpBikPmM/3Nm/GXaqj3MbdTM3y8pSTGMUaLNZpzjJeL3NC8Ykqk1fjKA6cyLqjPlTPoisQ== +"@parcel/transformer-js@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.447.tgz#c7f8ed7cdd0d8a10c073cc48324c9fd3b78a7ad7" + integrity sha512-+1Feek8staUtc956JJwPoP9UKJdyLplFxozL/Qz/tJCfd30gyUwe6G1Ds5TvVZIxMbA+04kejSwVPbHBUatUNQ== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2721,193 +2721,193 @@ "@babel/template" "^7.4.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" - "@parcel/babylon-walk" "2.0.0-nightly.2068+3bfef282" - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/scope-hoisting" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" + "@parcel/babylon-walk" "2.0.0-nightly.2069+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/scope-hoisting" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" micromatch "^4.0.2" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-json@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.446.tgz#63461c5537cf0b31edad814146ef397d48dbb570" - integrity sha512-xpyd+astuEqJG23oZzOCJCUd/UnqOPqKgeJ1YgZ7wxc42a8uQE/iObG+WT5HKlqxBOlBu9jEfJZug+fxWKkRGA== +"@parcel/transformer-json@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.447.tgz#8c63b72374cbe47c0517cd0be490d667b5c7ddd0" + integrity sha512-79aIUcQzlnw+/7EJj9dmZNgyLH8RRGCsqul7sreiZam1hfXLTtK8v9EyrgIDC9BvZbJPBe3fUyDRGzXXK54b1A== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" json5 "^2.1.0" -"@parcel/transformer-jsonld@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2068.tgz#5bbac69ccbbc3e89b27368ca1c024cfaa3c73815" - integrity sha512-bO8nK/Oj9uKOwLGGVjOGjBtG1lLIEK9wEqdVfUzJgeyEu6EUEJBy0iU0bKTEaGaGj//ZVChFp7n9vpuGnIATAw== +"@parcel/transformer-jsonld@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2069.tgz#b1b69e540b214fd2cf46d62304321c8f598de1d9" + integrity sha512-n3zAblC4I/XM67NvIgZdx5N3tsS5WYBay5BO0cwij36+dt/nF5aBGiYfomPXgV0fnoSFMbku5W3ZAGnMHoGURg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/types" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/types" "2.0.0-nightly.447+3df3153b" json5 "^2.1.2" -"@parcel/transformer-less@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.446.tgz#b81cf260fe8c81c8e60de06e93766a83e584ff87" - integrity sha512-outojfO4ThAnMaMapVOwFRkJvkuBNQPh6jTUrtVCLeubXh4GdBcYSKWGy8JefbDe5tx2MqJx49JEiJjTlxyqHg== +"@parcel/transformer-less@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.447.tgz#bc6ace825b022045222483ca072dca28243c3217" + integrity sha512-hcRxSjnqaNgi6O6bNltX0PTvMlO0D/yAhiI/T9YKbrlxvHhBTn8CL3YgCQjstfYNrO6G/g6cRZpRLFZo2SbCxw== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" -"@parcel/transformer-mdx@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2068.tgz#55a15598d8cb1f7a04ae88650a738b4982abeb12" - integrity sha512-L9Jl8REp3UjKPXJfppNAWmTNxKoLwYuYwd/F09lrQCKe5H0Isnku/yKHugl3wDODItn1aZPThfk7uuxzejoj8A== +"@parcel/transformer-mdx@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2069.tgz#0aa3abc1c1aacf6027ee3a0314432b61ea0d4cc3" + integrity sha512-j/aDSFblTPkgF4i3x3k14EeK2/hMMEkXsdUpMpy9/z9Tmfw8snED9bJVZtDrxo1xd9T2+odixrmryjqzGPy+Tg== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-postcss@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.446.tgz#383fcc10d59794e85bc1a376cafa8efed00e613e" - integrity sha512-Yrux2pN3rUCkE5oyQmiahzyWmRYjAvEpK2FIYp2qlOsTghaI5ZBRNeduYO+XvZFE9PeeEP416JNsC0yomxXWjg== +"@parcel/transformer-postcss@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.447.tgz#d92ed2ebb9517f510326911561297192e56333c7" + integrity sha512-VikvWEjYa8Y4pEIypd8FnI+SxIMjgcV0dFE5yjVI1OUfGtdlQCWrbXVLJhom572Wsz5yRrD1VH/WeFPrW+oM8g== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" css-modules-loader-core "^1.1.0" nullthrows "^1.1.1" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-posthtml@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.446.tgz#d20f4be828f2c91c65c3698affe05176f5516452" - integrity sha512-JM9vWvPIY5twP/w5uhD0VQFe4eZzHQA2pMq3R819euD4wrIyIpuCa6g6r4iI9z/w3ygWcx1Z6cTEbBb+39Y5Hg== +"@parcel/transformer-posthtml@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.447.tgz#17af0da915e54ba7bc48d39830175a3b3c371034" + integrity sha512-ySg5FHlxoYJpEaASO6Sps7KIzYoH5bkJona5fqR6amdYuTdAJfJ6gR4LC+kH4BNyox+lwhjoQMyewGp3zBnpaQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-pug@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.446.tgz#6d72b8780c6243696fbb11d3abc001fa2866027f" - integrity sha512-HvNJ2vNOxKLka6HNH9asGOECIwASY1jaB1oZn9Z9aQAW7s0+1PeuNVfXH9wwupCUjjziByuOS0fRh1BhoS9pPQ== +"@parcel/transformer-pug@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.447.tgz#c1b9f723c6ce600a774a0a95eb21374e5ff48555" + integrity sha512-oku+QaCVwchwoH/ggbdcM0KNxoOWLz4DVKkIbCLE+PHynd8WjBQlVz5PIpsQhonF+GXPtvBMzKYoashPaQQXhw== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-raw@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.446.tgz#2383d9d9ce24723e2c5e6306f84ee5953f7ea99e" - integrity sha512-1CMKCE1Lpc7Z9DiaiiGnz1mzpREg3Xa2FcmWoC3RlNWOfaKw6qd/wmucXY4wj5+4qAKYyHxjTZGy1tgcxfzDVw== +"@parcel/transformer-raw@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.447.tgz#aab7a4a69645d8752e31c42c4aa0800dcc623faf" + integrity sha512-oLJPQO7gLRicpH8gNqQ7JvGR3/Gt/OUSsVRx89Q24pPsS45Ezi42Yw5KyF0Oe4o9S8LD45Ues5IDrfUB5OF8NA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-react-refresh-babel@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.446.tgz#d688703f415ec296dcc6e1ff9faaaee929f4b6db" - integrity sha512-C/QN4lgzukcQWzayEUQqpdP2ijDzADB3yT7P9SfNtXCBocbbOY+NbwGLQtnJ4REcx+5uRbJ9GpKPB8417WnwDQ== +"@parcel/transformer-react-refresh-babel@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.447.tgz#bed4fde19be51ae4ef62c180a040c8ec6c2c206d" + integrity sha512-IxNejXXl90cCFp/yg2qU8WoHx1HjistRcgS0kU1xJe5E771I1jR5MRSHblrgRf60d4qvXMNBHeoqLKCKAkjjKA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" react-refresh "^0.9.0" -"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.446.tgz#670e642972b8d8057dc46f324ebe15711b26ffae" - integrity sha512-8OE0hvbdXHlhExJNQXaecph2QbCjwHNQtgkazSSfqo80lVuZzDOdyQ9h9/c8hn+oj7fnt359Hw3syWLj+2O3OA== +"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.447.tgz#037e529039756c9611381bf5df8910b06e887dcb" + integrity sha512-PJvGn6LEPl+r90FoGsc3VQ+AIO1OCxSXrUqnAt7yNTh5aFfWbfeYBjkjQc9akC7qwFa/uwJ6fep6p5f8mFVUJA== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2068+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" react-refresh "^0.9.0" semver "^5.4.1" -"@parcel/transformer-sass@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.446.tgz#46f9ed91e8dea8effeea539054f1e13baacb6d01" - integrity sha512-9ezq2DHw1Qhvm/AAd2l/6Yk10I45osE0prxWa2MkC1xveGllbi14poDfbNhK3gxX0K7TV/S+ibyKc+naHAVEIw== +"@parcel/transformer-sass@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.447.tgz#9fd3433ba146eaeae08db218905b2d765f7b3aad" + integrity sha512-JT2GQG1gsiVGUgmUI1Q8RHUvZvVC3rurTyTuunhD5knYXdc+s9wHgtxuGhG+lvf85Ye/yfUJqk3VYdNSm8zI2w== dependencies: - "@parcel/fs" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/fs" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-stylus@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.446.tgz#b628ac5100177968740f204862a0d6709b9023db" - integrity sha512-tYjteN7dnw+g40ODbIGPUX33rdKnHojohAX8NXOtvf5S+eXHxshQLQM9UHTpUFRlZ5Il3hwbOFJFaLzm+EecrQ== +"@parcel/transformer-stylus@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.447.tgz#09b33292139020649b599e51523758974495c00c" + integrity sha512-hEkixaT6amarEzxlzNPWWRTWT0WSUnTUT9bFGS1o0MCorZwZJroPKMr9qlK8WCLY+xGzNKnSP2lWrCRLPFX7wA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-sugarss@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.446.tgz#daa130f7959afb74f6af4b311eb1caa32f3273fb" - integrity sha512-D1mpHwxzA/sxQYA6Uc0nQSHYTUbe2Q6o32F72sABocZvV/ax0guYockl6aNONr+dwu07/5kY5maTyfYAZ/iM/g== +"@parcel/transformer-sugarss@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.447.tgz#fef45b98a6ee8cbd7c5757e54945c3f611ee2ae6" + integrity sha512-8AXGFGyPvpyS6IZPf+sEk/Y8oYdBU6U0bKqzZgCK1PX1+IcHAI43TW2kmS3WXTxRbmwfsXWXKNOFsVyIZa/XmA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" postcss "^8.0.5" -"@parcel/transformer-toml@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.446.tgz#981119cc34ecf49a891f4acce3221a1fa77e633c" - integrity sha512-leLjjKU2xXRw5cbXgFXHuaNKExn4Q3Fzne65nZj1G/3QHk+tiWnTms9msx5wDR2iZuQjWQc7cI1TZia+VRVUKA== +"@parcel/transformer-toml@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.447.tgz#4cec07a505e307620dd9695c748e756ffe020d16" + integrity sha512-MHcdfpdhY7cMQN3pkvEe6K+2anunmtoZ+wUP7LnHT//itzRyRpm5zY8Tzbxgg+4whgNh8YK9CQw1Xt48fu3fzQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/transformer-typescript-types@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.446.tgz#7f3290031529726e7c768980777af61f45191ee4" - integrity sha512-Hk9sX3LKo21FS0YqeBthg9IiiCawXsuTXHuJj32hjmSacYEIRTTyLnkA3B0YTrjJgmojuoFi6CiSZU2gMR0uzg== +"@parcel/transformer-typescript-types@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.447.tgz#2125b9828eb646861e01f279ae05cd84015bfae2" + integrity sha512-CeDyafYkCa/bm94q5Jia1IyE5Ar2ixOgN75ImlUh+W1MdbB0JPAmRoubIT/Fd5++/q79bqK1mL1sSoyEt//TAQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/ts-utils" "2.0.0-nightly.446+3bfef282" + "@parcel/ts-utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" -"@parcel/transformer-vue@2.0.0-nightly.2068+3bfef282": - version "2.0.0-nightly.2068" - resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2068.tgz#7fd00e4e3524611aa5d313dabfced33649d475d9" - integrity sha512-oPouURopmkOUTwQAMFxOUfcPK3zKsopy5isR7QNyhkmWxsA72Cj2IWWUM/A0rHJPX0+FmxVvyOauIqUzkkcFhw== +"@parcel/transformer-vue@2.0.0-nightly.2069+3df3153b": + version "2.0.0-nightly.2069" + resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2069.tgz#0d910b0c35e50ff31bf3a2b28d28b57e30dcafe6" + integrity sha512-atJXwGxKpACMJsNV1iQTCkf/ZviPMvzQAKs6DwgocVrrqfaLCC81oc4S3h+TjRJGLZWk08vlB9uJloeOwfkkpQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-yaml@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.446.tgz#18edb6d64351acad5ef811022998c1c89bafbfce" - integrity sha512-HhL/0+wA1bfk7B5EWAlLiI5/Ys0oBIAI7tku3oR9ygbirTCUMvK9rIu+4RxXz60ePobSjRePNHD+QMrH8gt2iA== +"@parcel/transformer-yaml@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.447.tgz#b39860a7c8eb9ca396ce0241ee90d00c88d7edae" + integrity sha512-hUe9NBt24k1dUx49ThKbmvPSnsMZoxHOMGNslZhW2MV6QepDOuXj7xnXEMvyAkimuxDlcvGtkfhHJJD8RaGEWA== dependencies: - "@parcel/plugin" "2.0.0-nightly.446+3bfef282" + "@parcel/plugin" "2.0.0-nightly.447+3df3153b" -"@parcel/ts-utils@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.446.tgz#75c998d0ebe3fdbc8229c070dca10dc2b8ff216d" - integrity sha512-yabMSQRMkZAsW8Mv3ovtS9eyR/mLDB5cw+7m1J8C7t4tNyAoJzKVGF6+7J+VdweJNrblslEKZ3HlcJiJxGZTbw== +"@parcel/ts-utils@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.447.tgz#8a6f5e683b2cf03c6cbd655dfa710db280c3d385" + integrity sha512-5h53In5xgGewdOCqqtQaCZrrXp0CR13ADspBJ+l6NfJQRdcOSJS/j4C0TvxfZeM1SPg84EHRcfYVPhowQrMXaw== dependencies: nullthrows "^1.1.1" -"@parcel/types@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.446.tgz#c35ffc4a6b09f7a8aeb5198615cb668635f7545e" - integrity sha512-wnfp5Yoom7wSWOhjv74/BqFgF4LgM+dpIbwEfBY8h9hwFXKEIpiGLzZm5QtDJ5cF9LjBzHeZfgJ6n9Hs1Dqemg== +"@parcel/types@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.447.tgz#f3e71cd8c5590714169159c30dae9a6ad1e336bc" + integrity sha512-+ejywUnBj9g+iOLoFF7TguQi+P05JzZKmkkkX2hg6K5DvC511xIASZfPa/kxFWUK1vDvNmgP445i8TSgkuMyLA== -"@parcel/utils@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.446.tgz#45543a6822e0aadc356d007be0abfa31256435d0" - integrity sha512-TvvNo/bRXGFdV8qNFHwPy9AhhQI9UOX02xBoNIlf8H00hlLnMdWg1blZJikJz9S0o5/l0JbbD/bbyKD65HAPsg== +"@parcel/utils@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.447.tgz#0fccebed5482983b44d2ef46de283f7054850a6e" + integrity sha512-I/rSrHCjpRDtJXyNfkpfHVa4Uz8li1dsFBRoeTJ2mTmxiCig3Yc8WWlzZgP6Ltk4eLEL5hI5pcKAmDrljeM41Q== dependencies: "@iarna/toml" "^2.2.0" - "@parcel/codeframe" "2.0.0-nightly.446+3bfef282" - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/logger" "2.0.0-nightly.446+3bfef282" - "@parcel/markdown-ansi" "2.0.0-nightly.446+3bfef282" + "@parcel/codeframe" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/logger" "2.0.0-nightly.447+3df3153b" + "@parcel/markdown-ansi" "2.0.0-nightly.447+3df3153b" "@parcel/source-map" "2.0.0-alpha.4.16" ansi-html "^0.0.7" chalk "^2.4.2" @@ -2932,14 +2932,14 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.1" -"@parcel/workers@2.0.0-nightly.446+3bfef282": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.446.tgz#064827fb164be593de4adaa20a5d7504ad875173" - integrity sha512-xgw3SnURvNLP5f2nJQF9/zWCdWhnvKEIQu9aPznE/MJouVKxeCW5ZQIFt7+dIBu2PzecEBmZOV3iR1TtYxn07A== +"@parcel/workers@2.0.0-nightly.447+3df3153b": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.447.tgz#b5ab0a096b7bb18fdcaf1a61c43ffe875454be59" + integrity sha512-Ytgv5KfLzgouneaASrLWuAPGpbdPnyWyZimgjC8BpNvn4pSzFJ/TUKI/Yswhp9RbH6/lwT6efuwPOmGFrz3wkQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/logger" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/logger" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" chrome-trace-event "^1.0.2" nullthrows "^1.1.1" @@ -10587,19 +10587,19 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -parcel@2.0.0-nightly.444: - version "2.0.0-nightly.444" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.444.tgz#d6ce4f75fbed148dcca60821f9509eba34aeb875" - integrity sha512-T3ZK8QKxt0PHeGQZe1vhFu2KP229BRRH14qn8UkKforaSwIT5BWngaFxAuh7vQulXCc+lNi38xK5MtqH6TQ7zg== - dependencies: - "@parcel/config-default" "2.0.0-nightly.446+3bfef282" - "@parcel/core" "2.0.0-nightly.444+3bfef282" - "@parcel/diagnostic" "2.0.0-nightly.446+3bfef282" - "@parcel/events" "2.0.0-nightly.446+3bfef282" - "@parcel/fs" "2.0.0-nightly.446+3bfef282" - "@parcel/logger" "2.0.0-nightly.446+3bfef282" - "@parcel/package-manager" "2.0.0-nightly.446+3bfef282" - "@parcel/utils" "2.0.0-nightly.446+3bfef282" +parcel@2.0.0-nightly.445: + version "2.0.0-nightly.445" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.445.tgz#bd76f4ace9455cdbda6938deee49366f72480379" + integrity sha512-i2FZrDKrNsmIw/Dwqs1MNXKjakymP62ZM/31gtEfdFlfRh/HJLxD8qVHbVW0q7fmhVD33dT5mtCuSTxAiqDQHg== + dependencies: + "@parcel/config-default" "2.0.0-nightly.447+3df3153b" + "@parcel/core" "2.0.0-nightly.445+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/events" "2.0.0-nightly.447+3df3153b" + "@parcel/fs" "2.0.0-nightly.447+3df3153b" + "@parcel/logger" "2.0.0-nightly.447+3df3153b" + "@parcel/package-manager" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.447+3df3153b" chalk "^2.1.0" commander "^2.19.0" get-port "^4.2.0" From 809907de2ad2b300d4bcffe18b9e890700fd6c78 Mon Sep 17 00:00:00 2001 From: Somaya Date: Thu, 12 Nov 2020 22:36:04 -0800 Subject: [PATCH 21/41] chore: add new modules to auto label action (#11453) --- .github/workflows/issue-label-assign.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/issue-label-assign.yml b/.github/workflows/issue-label-assign.yml index 397709328e83e..60ba0a349eef8 100644 --- a/.github/workflows/issue-label-assign.yml +++ b/.github/workflows/issue-label-assign.yml @@ -24,6 +24,7 @@ jobs: {"keywords":["[@aws-cdk/aws-amplify]","[aws-amplify]","[amplify]"],"labels":["@aws-cdk/aws-amplify"],"assignees":["MrArnoldPalmer"]}, {"keywords":["[@aws-cdk/aws-apigateway]","[aws-apigateway]","[apigateway]","[api gateway]","[api-gateway]"],"labels":["@aws-cdk/aws-apigateway"],"assignees":["nija-at"]}, {"keywords":["[@aws-cdk/aws-apigatewayv2]","[aws-apigatewayv2]","[apigatewayv2]","[apigateway v2]","[api-gateway-v2]"],"labels":["@aws-cdk/aws-apigatewayv2"],"assignees":["nija-at"]}, + {"keywords":["[@aws-cdk/aws-apigatewayv2-integrations]","[aws-apigatewayv2-integrations]","[apigatewayv2-integrations]","[apigateway v2 integrations]","[api-gateway-v2-integrations]"],"labels":["@aws-cdk/aws-apigatewayv2-integrations"],"assignees":["nija-at"]}, {"keywords":["[@aws-cdk/aws-appconfig]","[aws-appconfig]","[appconfig]","[app config]","[app-config]"],"labels":["@aws-cdk/aws-appconfig"],"assignees":["MrArnoldPalmer"]}, {"keywords":["[@aws-cdk/aws-appflow]","[aws-appflow]","[appflow]","[app flow]","[app-flow]"],"labels":["@aws-cdk/aws-appflow"],"assignees":["skinny85"]}, {"keywords":["[@aws-cdk/aws-applicationautoscaling]","[aws-applicationautoscaling]","[applicationautoscaling]","[application autoscaling]","[application-autoscaling]"],"labels":["@aws-cdk/aws-applicationautoscaling"],"assignees":["NetaNir"]}, @@ -102,7 +103,9 @@ jobs: {"keywords":["[@aws-cdk/aws-iot1click]","[aws-iot1click]","[iot1click]","[iot 1click]"],"labels":["@aws-cdk/aws-iot1click"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-iotanalytics]","[aws-iotanalytics]","[iotanalytics]","[iot analytics]","[iot-analytics]"],"labels":["@aws-cdk/aws-iotanalytics"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-iotevents]","[aws-iotevents]","[iotevents]","[iot events]","[iot-events]"],"labels":["@aws-cdk/aws-iotevents"],"assignees":["shivlaks"]}, + {"keywords":["[@aws-cdk/aws-iotsitewise]","[aws-iotsitewise]","[iotsitewise]","[iot sitewise]","[iot-sitewise]","[iot-site-wise]",[iot site wise]"],"labels":["@aws-cdk/aws-iotsitewise"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-iotthingsgraph]","[aws-iotthingsgraph]","[iotthingsgraph]","[iot things graph]","[iot-things-graph]"],"labels":["@aws-cdk/aws-iotthingsgraph"],"assignees":["shivlaks"]}, + {"keywords":["[@aws-cdk/aws-ivs]","[aws-ivs]","[Interactive Video Service]","[ivs]"],"labels":["@aws-cdk/aws-ivs"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-kendra]","[aws-kendra]","[kendra]"],"labels":["@aws-cdk/aws-kendra"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-kinesis]","[aws-kinesis]","[kinesis]"],"labels":["@aws-cdk/aws-kinesis"],"assignees":["iliapolo"]}, {"keywords":["[@aws-cdk/aws-kinesisanalytics]","[aws-kinesisanalytics]","[kinesisanalytics]","[kinesis analytics]","[kinesis-analytics]"],"labels":["@aws-cdk/aws-kinesisanalytics"],"assignees":["iliapolo"]}, @@ -120,6 +123,7 @@ jobs: {"keywords":["[@aws-cdk/aws-mediaconvert]","[aws-mediaconvert]","[mediaconvert]","[media convert]","[media-convert]"],"labels":["@aws-cdk/aws-mediaconvert"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-medialive]","[aws-medialive]","[medialive]","[media live]","[media-live]"],"labels":["@aws-cdk/aws-medialive"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-mediastore]","[aws-mediastore]","[mediastore]","[media store]","[media-store]"],"labels":["@aws-cdk/aws-mediastore"],"assignees":["shivlaks"]}, + {"keywords":["[@aws-cdk/aws-mediapackage]","[aws-mediapackage]","[mediapackage]","[media package]","[media-package]"],"labels":["@aws-cdk/aws-mediapackage"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-msk]","[aws-msk]","[msk]"],"labels":["@aws-cdk/aws-msk"],"assignees":["iliapolo"]}, {"keywords":["[@aws-cdk/aws-neptune]","[aws-neptune]","[neptune]"],"labels":["@aws-cdk/aws-neptune"],"assignees":["njlynch"]}, {"keywords":["[@aws-cdk/aws-networkmanager]","[aws-networkmanager]","[networkmanager]","[network manager]","[network-manager]"],"labels":["@aws-cdk/aws-networkmanager"],"assignees":["shivlaks"]}, From 21ccfce514e10cfcdde36148b45f085d3494c540 Mon Sep 17 00:00:00 2001 From: Nick Law Date: Fri, 13 Nov 2020 18:06:21 +1100 Subject: [PATCH 22/41] feat(logs): Add KMS key support to LogGroup (#11363) This PR updates the `LogGroup` construct to support the ability to encrypt log groups on creation. Closes #11211 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-logs/README.md | 27 ++++++++++++++++--- packages/@aws-cdk/aws-logs/lib/log-group.ts | 9 +++++++ packages/@aws-cdk/aws-logs/package.json | 2 ++ .../@aws-cdk/aws-logs/test/test.loggroup.ts | 22 ++++++++++++++- 4 files changed, 56 insertions(+), 4 deletions(-) diff --git a/packages/@aws-cdk/aws-logs/README.md b/packages/@aws-cdk/aws-logs/README.md index 038b6db28c3a2..880113852e355 100644 --- a/packages/@aws-cdk/aws-logs/README.md +++ b/packages/@aws-cdk/aws-logs/README.md @@ -41,11 +41,32 @@ lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.h This is implemented using a [CloudFormation custom resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html) which pre-creates the log group if it doesn't exist, and sets the specified log retention period (never expire, by default). - + By default, the log group will be created in the same region as the stack. The `logGroupRegion` property can be used to configure log groups in other regions. This is typically useful when controlling retention for log groups auto-created by global services that publish their log group to a specific region, such as AWS Chatbot creating a log group in `us-east-1`. - + +### Encrypting Log Groups + +By default, log group data is always encrypted in CloudWatch Logs. You have the +option to encrypt log group data using a AWS KMS customer master key (CMK) should +you not wish to use the default AWS encryption. Keep in mind that if you decide to +encrypt a log group, any service or IAM identity that needs to read the encrypted +log streams in the future will require the same CMK to decrypt the data. + +Here's a simple example of creating an encrypted Log Group using a KMS CMK. + +```ts +import * as kms from '@aws-cdk/aws-kms'; + +new LogGroup(this, 'LogGroup', { + encryptionKey: new kms.Key(this, 'Key'), +}); +``` + +See the AWS documentation for more detailed information about [encrypting CloudWatch +Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html). + ### Subscriptions and Destinations Log events matching a particular filter can be sent to either a Lambda function @@ -100,7 +121,7 @@ the name `Namespace/MetricName`. #### Exposing Metric on a Metric Filter -You can expose a metric on a metric filter by calling the `MetricFilter.metric()` API. +You can expose a metric on a metric filter by calling the `MetricFilter.metric()` API. This has a default of `statistic = 'avg'` if the statistic is not set in the `props`. ```ts diff --git a/packages/@aws-cdk/aws-logs/lib/log-group.ts b/packages/@aws-cdk/aws-logs/lib/log-group.ts index e041b16b29bbd..83c4a8e170b89 100644 --- a/packages/@aws-cdk/aws-logs/lib/log-group.ts +++ b/packages/@aws-cdk/aws-logs/lib/log-group.ts @@ -1,5 +1,6 @@ import * as cloudwatch from '@aws-cdk/aws-cloudwatch'; import * as iam from '@aws-cdk/aws-iam'; +import * as kms from '@aws-cdk/aws-kms'; import { IResource, RemovalPolicy, Resource, Stack, Token } from '@aws-cdk/core'; import { Construct } from 'constructs'; import { LogStream } from './log-stream'; @@ -273,6 +274,13 @@ export enum RetentionDays { * Properties for a LogGroup */ export interface LogGroupProps { + /** + * The KMS Key to encrypt the log group with. + * + * @default - log group is encrypted with the default master key + */ + readonly encryptionKey?: kms.IKey; + /** * Name of the log group. * @@ -363,6 +371,7 @@ export class LogGroup extends LogGroupBase { } const resource = new CfnLogGroup(this, 'Resource', { + kmsKeyId: props.encryptionKey?.keyArn, logGroupName: this.physicalName, retentionInDays, }); diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index 275a2cc729f49..f2e0056471229 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -86,6 +86,7 @@ "dependencies": { "@aws-cdk/aws-cloudwatch": "0.0.0", "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-s3-assets": "0.0.0", "@aws-cdk/core": "0.0.0", "constructs": "^3.2.0" @@ -94,6 +95,7 @@ "peerDependencies": { "@aws-cdk/aws-cloudwatch": "0.0.0", "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-s3-assets": "0.0.0", "@aws-cdk/core": "0.0.0", "constructs": "^3.2.0" diff --git a/packages/@aws-cdk/aws-logs/test/test.loggroup.ts b/packages/@aws-cdk/aws-logs/test/test.loggroup.ts index 22330ae0e3b1f..333ae71a976c3 100644 --- a/packages/@aws-cdk/aws-logs/test/test.loggroup.ts +++ b/packages/@aws-cdk/aws-logs/test/test.loggroup.ts @@ -1,10 +1,30 @@ import { expect, haveResource, matchTemplate } from '@aws-cdk/assert'; import * as iam from '@aws-cdk/aws-iam'; +import * as kms from '@aws-cdk/aws-kms'; import { CfnParameter, RemovalPolicy, Stack } from '@aws-cdk/core'; import { Test } from 'nodeunit'; import { LogGroup, RetentionDays } from '../lib'; export = { + 'set kms key when provided'(test: Test) { + // GIVEN + const stack = new Stack(); + const encryptionKey = new kms.Key(stack, 'Key'); + + // WHEN + new LogGroup(stack, 'LogGroup', { + encryptionKey, + }); + + // THEN + expect(stack).to(haveResource('AWS::Logs::LogGroup', { + KmsKeyId: { 'Fn::GetAtt': ['Key961B73FD', 'Arn'] }, + + })); + + test.done(); + }, + 'fixed retention'(test: Test) { // GIVEN const stack = new Stack(); @@ -326,4 +346,4 @@ function dataDrivenTests(cases: any[][], body: (test: Test, ...args: any[]) => v }; } return ret; -} \ No newline at end of file +} From d42b71b174cdce92f63a8ab6f2cd553e5d548292 Mon Sep 17 00:00:00 2001 From: Niranjan Jayakar Date: Fri, 13 Nov 2020 10:31:28 +0000 Subject: [PATCH 23/41] chore: attributions for transitive bundled dependencies (#11442) Use `npm-bundled` package to identify transitive bundled dependencies. Specifically, these are dependencies of bundled dependencies. closes https://github.com/aws/cdk-ops/issues/578 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-ecr-assets/NOTICE | 68 ++++++++ packages/@aws-cdk/core/NOTICE | 142 +++++++++++++++ packages/aws-cdk-lib/NOTICE | 142 +++++++++++++++ packages/monocdk/NOTICE | 142 +++++++++++++++ tools/pkglint/lib/packagejson.ts | 9 +- tools/pkglint/lib/rules.ts | 2 +- tools/pkglint/package.json | 1 + tools/pkglint/test/fake-module.ts | 36 ++-- tools/pkglint/test/rules.test.ts | 220 +++++++++++++++++------- yarn.lock | 96 ++++++++++- 10 files changed, 760 insertions(+), 98 deletions(-) diff --git a/packages/@aws-cdk/aws-ecr-assets/NOTICE b/packages/@aws-cdk/aws-ecr-assets/NOTICE index c760ec779c75e..3441c3b03a3fd 100644 --- a/packages/@aws-cdk/aws-ecr-assets/NOTICE +++ b/packages/@aws-cdk/aws-ecr-assets/NOTICE @@ -21,3 +21,71 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ---------------- + +** brace-expansion - https://www.npmjs.com/package/brace-expansion +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** balanced-match - https://www.npmjs.com/package/balanced-match +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** concat-map - https://www.npmjs.com/package/concat-map + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- \ No newline at end of file diff --git a/packages/@aws-cdk/core/NOTICE b/packages/@aws-cdk/core/NOTICE index 9ff5649eac07b..d23152578fbfd 100644 --- a/packages/@aws-cdk/core/NOTICE +++ b/packages/@aws-cdk/core/NOTICE @@ -86,3 +86,145 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------- + +** at-least-node - https://www.npmjs.com/package/at-least-node +Copyright (c) 2020 Ryan Zimmerman + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------- + +** graceful-fs - https://www.npmjs.com/package/graceful-fs +Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors + + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------- + +** jsonfile - https://www.npmjs.com/package/jsonfile +Copyright (c) 2012-2015, JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------- + +** universalify - https://www.npmjs.com/package/universalify +Copyright (c) 2017, Ryan Zimmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------- + +** brace-expansion - https://www.npmjs.com/package/brace-expansion +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** balanced-match - https://www.npmjs.com/package/balanced-match +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** concat-map - https://www.npmjs.com/package/concat-map + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- diff --git a/packages/aws-cdk-lib/NOTICE b/packages/aws-cdk-lib/NOTICE index 201344067fcb2..725bfc01ce553 100644 --- a/packages/aws-cdk-lib/NOTICE +++ b/packages/aws-cdk-lib/NOTICE @@ -193,3 +193,145 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------- + +** at-least-node - https://www.npmjs.com/package/at-least-node +Copyright (c) 2020 Ryan Zimmerman + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------- + +** graceful-fs - https://www.npmjs.com/package/graceful-fs +Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors + + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------- + +** jsonfile - https://www.npmjs.com/package/jsonfile +Copyright (c) 2012-2015, JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------- + +** universalify - https://www.npmjs.com/package/universalify +Copyright (c) 2017, Ryan Zimmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------- + +** brace-expansion - https://www.npmjs.com/package/brace-expansion +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** balanced-match - https://www.npmjs.com/package/balanced-match +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** concat-map - https://www.npmjs.com/package/concat-map + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- diff --git a/packages/monocdk/NOTICE b/packages/monocdk/NOTICE index 201344067fcb2..725bfc01ce553 100644 --- a/packages/monocdk/NOTICE +++ b/packages/monocdk/NOTICE @@ -193,3 +193,145 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------- + +** at-least-node - https://www.npmjs.com/package/at-least-node +Copyright (c) 2020 Ryan Zimmerman + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------- + +** graceful-fs - https://www.npmjs.com/package/graceful-fs +Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors + + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------- + +** jsonfile - https://www.npmjs.com/package/jsonfile +Copyright (c) 2012-2015, JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------- + +** universalify - https://www.npmjs.com/package/universalify +Copyright (c) 2017, Ryan Zimmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------- + +** brace-expansion - https://www.npmjs.com/package/brace-expansion +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** balanced-match - https://www.npmjs.com/package/balanced-match +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- + +** concat-map - https://www.npmjs.com/package/concat-map + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------- diff --git a/tools/pkglint/lib/packagejson.ts b/tools/pkglint/lib/packagejson.ts index 86be0b30cdc50..a59e8f1c6e307 100644 --- a/tools/pkglint/lib/packagejson.ts +++ b/tools/pkglint/lib/packagejson.ts @@ -1,6 +1,8 @@ import * as path from 'path'; import * as colors from 'colors/safe'; import * as fs from 'fs-extra'; +// eslint-disable-next-line @typescript-eslint/no-require-imports +const bundled = require('npm-bundled'); // do not descend into these directories when searching for `package.json` files. export const PKGLINT_IGNORES = ['node_modules', 'cdk.out', '.cdk.staging']; @@ -209,8 +211,11 @@ export class PackageJson { return Object.keys(this.json.dependencies || {}).filter(predicate).map(name => ({ name, version: this.json.dependencies[name] })); } - public getBundledDependencies(): string[] { - return this.json.bundledDependencies ?? []; + /** + * Retrieves all packages that are bundled in, including transitive bundled dependency of a bundled dependency. + */ + public getAllBundledDependencies(): string[] { + return bundled.sync({ path: this.packageRoot }); } /** diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index c669ce1efef31..28f72bd7e2133 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -146,7 +146,7 @@ export class ThirdPartyAttributions extends ValidationRule { if (pkg.json.private && !alwaysCheck.includes(pkg.json.name)) { return; } - const bundled = pkg.getBundledDependencies(); + const bundled = pkg.getAllBundledDependencies(); const lines = fs.readFileSync(path.join(pkg.packageRoot, 'NOTICE'), { encoding: 'utf8' }).split('\n'); const re = /^\*\* (\S+)/; diff --git a/tools/pkglint/package.json b/tools/pkglint/package.json index 3f6a213c666ab..e3b87b2a29d28 100644 --- a/tools/pkglint/package.json +++ b/tools/pkglint/package.json @@ -47,6 +47,7 @@ "colors": "^1.4.0", "fs-extra": "^9.0.1", "glob": "^7.1.6", + "npm-bundled": "^1.1.1", "semver": "^7.3.2", "yargs": "^16.1.0" } diff --git a/tools/pkglint/test/fake-module.ts b/tools/pkglint/test/fake-module.ts index 535805b2106d8..32cc8041afff7 100644 --- a/tools/pkglint/test/fake-module.ts +++ b/tools/pkglint/test/fake-module.ts @@ -4,23 +4,12 @@ import * as fs from 'fs-extra'; export interface FakeModuleProps { /** - * The contents of the package json. - * If an empty object, i.e. `{}`, is provided, an empty file is created. - * @default - no package json will be created + * The list of files to be created. + * The key specifies the path of the file relative to the package directory including the file name. + * If the value is a string, the string is written to the file. If object, the object is stringified + * using `JSON.stringify()` and written into the file. */ - readonly packagejson?: any; - /** - * The contents of the README.md file. Each item in the array represents a single line. - * If an empty list is provided, an empty file is created. - * @default - no README.md file will be created - */ - readonly readme?: string[]; - /** - * The contents of the NOTICE file. Each item in the array represents a single line. - * If an empty list is provided, an empty file is created. - * @default - no NOTICE file will be created - */ - readonly notice?: string[]; + readonly files?: { [key: string]: string | {} }; } export class FakeModule { @@ -35,17 +24,12 @@ export class FakeModule { throw new Error('Cannot re-create cleaned up fake module'); } if (!this._tmpdir) { - const tmpdir = await fs.mkdtemp(path.join(os.tmpdir(), 'pkglint-rules-test-')); - await fs.writeFile(path.join(tmpdir, 'package.json'), JSON.stringify(this.props.packagejson ?? {}), { encoding: 'utf8' }); - if (this.props.readme !== undefined) { - const contents = this.props.readme.join('\n'); - await fs.writeFile(path.join(tmpdir, 'README.md'), contents, { encoding: 'utf8' }); - } - if (this.props.notice !== undefined) { - const contents = this.props.notice.join('\n'); - await fs.writeFile(path.join(tmpdir, 'NOTICE'), contents, { encoding: 'utf8' }); + this._tmpdir = await fs.mkdtemp(path.join(os.tmpdir(), 'pkglint-rules-test-')); + for (const [key, value] of Object.entries(this.props.files ?? {})) { + await fs.mkdirp(path.join(this._tmpdir, path.dirname(key))); + const toWrite = typeof value === 'string' ? value : JSON.stringify(value); + await fs.writeFile(path.join(this._tmpdir, key), toWrite, { encoding: 'utf8' }); } - this._tmpdir = tmpdir; } return this._tmpdir; } diff --git a/tools/pkglint/test/rules.test.ts b/tools/pkglint/test/rules.test.ts index 70e8942697271..767dbe81b1e1d 100644 --- a/tools/pkglint/test/rules.test.ts +++ b/tools/pkglint/test/rules.test.ts @@ -19,15 +19,17 @@ describe('FeatureStabilityRule', () => { test('feature table is rendered', async () => { fakeModule = new FakeModule({ - packagejson: { - features: [ - { name: 'Experimental Feature', stability: 'Experimental' }, - { name: 'Stable Feature', stability: 'Stable' }, - { name: 'Dev Preview Feature', stability: 'Developer Preview' }, - { name: 'Not Implemented Feature', stability: 'Not Implemented' }, - ], + files: { + 'package.json': { + features: [ + { name: 'Experimental Feature', stability: 'Experimental' }, + { name: 'Stable Feature', stability: 'Stable' }, + { name: 'Dev Preview Feature', stability: 'Developer Preview' }, + { name: 'Not Implemented Feature', stability: 'Not Implemented' }, + ], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -47,11 +49,13 @@ describe('FeatureStabilityRule', () => { test('CFN Resources is rendered', async () => { fakeModule = new FakeModule({ - packagejson: { - 'cdk-build': { cloudformation: 'Foo::Bar' }, - 'features': [], + files: { + 'package.json': { + 'cdk-build': { cloudformation: 'Foo::Bar' }, + 'features': [], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); @@ -68,11 +72,13 @@ describe('FeatureStabilityRule', () => { describe('banner notices', () => { test('CFN Resources', async () => { fakeModule = new FakeModule({ - packagejson: { - 'cdk-build': { cloudformation: 'Foo::Bar' }, - 'features': [], + files: { + 'package.json': { + 'cdk-build': { cloudformation: 'Foo::Bar' }, + 'features': [], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -87,12 +93,14 @@ describe('FeatureStabilityRule', () => { test('experimental', async () => { fakeModule = new FakeModule({ - packagejson: { - features: [ - { name: 'Feature', stability: 'Experimental' }, - ], + files: { + 'package.json': { + features: [ + { name: 'Feature', stability: 'Experimental' }, + ], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -109,12 +117,14 @@ describe('FeatureStabilityRule', () => { test('developer preview', async () => { fakeModule = new FakeModule({ - packagejson: { - features: [ - { name: 'Feature', stability: 'Developer Preview' }, - ], + files: { + 'package.json': { + features: [ + { name: 'Feature', stability: 'Developer Preview' }, + ], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -131,12 +141,14 @@ describe('FeatureStabilityRule', () => { test('stable', async () => { fakeModule = new FakeModule({ - packagejson: { - features: [ - { name: 'Feature', stability: 'Stable' }, - ], + files: { + 'package.json': { + features: [ + { name: 'Feature', stability: 'Stable' }, + ], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -154,13 +166,15 @@ describe('FeatureStabilityRule', () => { test('skip if package private', async () => { fakeModule = new FakeModule({ - packagejson: { - private: true, - features: [ - { name: 'Experimental Feature', stability: 'Experimental' }, - ], + files: { + 'package.json': { + private: true, + features: [ + { name: 'Experimental Feature', stability: 'Experimental' }, + ], + }, + 'README.md': '', }, - readme: [], }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -173,8 +187,10 @@ describe('FeatureStabilityRule', () => { test('skip if features is not specified', async () => { fakeModule = new FakeModule({ - packagejson: {}, - readme: [], + files: { + 'package.json': {}, + 'README.md': '', + }, }); const dirPath = await fakeModule.tmpdir(); const rule = new rules.FeatureStabilityRule(); @@ -187,10 +203,12 @@ describe('FeatureStabilityRule', () => { test('skip if README.md is missing', async () => { fakeModule = new FakeModule({ - packagejson: { - features: [ - { name: 'Experimental Feature', stability: 'Experimental' }, - ], + files: { + 'package.json': { + features: [ + { name: 'Experimental Feature', stability: 'Experimental' }, + ], + }, }, }); const dirPath = await fakeModule.tmpdir(); @@ -218,10 +236,14 @@ describe('ThirdPartyAttributions', () => { test('errors when attribution missing for bundled dependencies', async() => { fakeModule = new FakeModule({ - packagejson: { - bundledDependencies: ['dep1', 'dep2'], + files: { + 'package.json': { + bundledDependencies: ['dep1', 'dep2'], + }, + 'node_modules/dep1/package.json': {}, + 'node_modules/dep2/package.json': {}, + 'NOTICE': '', }, - notice: [], }); const dirPath = await fakeModule.tmpdir(); @@ -242,14 +264,17 @@ describe('ThirdPartyAttributions', () => { test('errors when there are excessive attributions', async() => { fakeModule = new FakeModule({ - packagejson: { - bundledDependencies: ['dep1'], + files: { + 'package.json': { + bundledDependencies: ['dep1'], + }, + 'node_modules/dep1/package.json': {}, + 'NOTICE': [ + '** dep1 - https://link-somewhere', + '** dep2 - https://link-elsewhere', + '** dep3-rev - https://link-elsewhere', + ].join('\n'), }, - notice: [ - '** dep1 - https://link-somewhere', - '** dep2 - https://link-elsewhere', - '** dep3-rev - https://link-elsewhere', - ], }); const dirPath = await fakeModule.tmpdir(); @@ -270,13 +295,17 @@ describe('ThirdPartyAttributions', () => { test('passes when attribution is present', async() => { fakeModule = new FakeModule({ - packagejson: { - bundledDependencies: ['dep1', 'dep2'], + files: { + 'package.json': { + bundledDependencies: ['dep1', 'dep2'], + }, + 'node_modules/dep1/package.json': {}, + 'node_modules/dep2/package.json': {}, + 'NOTICE': [ + '** dep1 - https://link-somewhere', + '** dep2 - https://link-elsewhere', + ].join('\n'), }, - notice: [ - '** dep1 - https://link-somewhere', - '** dep2 - https://link-elsewhere', - ], }); const dirPath = await fakeModule.tmpdir(); @@ -288,11 +317,68 @@ describe('ThirdPartyAttributions', () => { expect(pkgJson.hasReports).toBe(false); }); + test('passes when attribution for transitive bundled deps are present', async() => { + fakeModule = new FakeModule({ + files: { + 'package.json': { + bundledDependencies: ['dep1'], + }, + 'node_modules/dep1/package.json': { + dependencies: { dep2: '1.2.3' }, + }, + 'node_modules/dep2/package.json': {}, + 'NOTICE': [ + '** dep1 - https://link-somewhere', + '** dep2 - https://link-elsewhere', + ].join('\n'), + }, + }); + const dirPath = await fakeModule.tmpdir(); + + const rule = new rules.ThirdPartyAttributions(); + + const pkgJson = new PackageJson(path.join(dirPath, 'package.json')); + rule.validate(pkgJson); + + expect(pkgJson.hasReports).toBe(false); + }); + + test('fails when attribution for transitive bundled deps are missing', async() => { + fakeModule = new FakeModule({ + files: { + 'package.json': { + bundledDependencies: ['dep1'], + }, + 'node_modules/dep1/package.json': { + dependencies: { dep2: '1.2.3' }, + }, + 'node_modules/dep2/package.json': {}, + 'NOTICE': [ + '** dep1 - https://link-somewhere', + ].join('\n'), + }, + }); + const dirPath = await fakeModule.tmpdir(); + + const rule = new rules.ThirdPartyAttributions(); + + const pkgJson = new PackageJson(path.join(dirPath, 'package.json')); + rule.validate(pkgJson); + + expect(pkgJson.hasReports).toBe(true); + expect(pkgJson.reports.length).toEqual(1); + expect(pkgJson.reports[0].ruleName).toEqual('license/3p-attributions'); + expect(pkgJson.reports[0].message).toContain('Missing attribution'); + expect(pkgJson.reports[0].message).toContain('dep2'); + }); + test('skipped when no bundled dependencies', async() => { fakeModule = new FakeModule({ - packagejson: { + files: { + 'package.json': { + }, + 'NOTICE': '', }, - notice: [], }); const dirPath = await fakeModule.tmpdir(); @@ -306,11 +392,15 @@ describe('ThirdPartyAttributions', () => { test('skipped for private packages', async () => { fakeModule = new FakeModule({ - packagejson: { - private: true, - bundledDependencies: ['dep1', 'dep2'], + files: { + 'package.json': { + private: true, + bundledDependencies: ['dep1', 'dep2'], + }, + 'node_modules/dep1/package.json': {}, + 'node_modules/dep2/package.json': {}, + 'NOTICE': '', }, - notice: [], }); const dirPath = await fakeModule.tmpdir(); diff --git a/yarn.lock b/yarn.lock index 9d88cd15951c2..6df6d22d0470f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3575,6 +3575,11 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +app-root-path@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" + integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== + append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -3842,7 +3847,7 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.791.0: +aws-sdk@^2.596.0, aws-sdk@^2.637.0, aws-sdk@^2.791.0: version "2.791.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.791.0.tgz#a85bedd46c97e0d262edb055651075c3171a171c" integrity sha512-oIWu0hLKmDS+rOmjud2Z1CaDXtmxKSJF4937dSNLf/vNkxxjJA/6HapSfKqsraLnekI9DLP8uop5HnCHC++Abw== @@ -5960,11 +5965,21 @@ dotenv-expand@^5.1.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== +dotenv-json@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dotenv-json/-/dotenv-json-1.0.0.tgz#fc7f672aafea04bed33818733b9f94662332815c" + integrity sha512-jAssr+6r4nKhKRudQ0HOzMskOFFi9+ubXWwmrSGJFgTvpjyPXCXsCsYbjif6mXp7uxA7xY3/LGaiTQukZzSbOQ== + dotenv@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== +dotenv@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + dotgitignore@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" @@ -6234,6 +6249,11 @@ escodegen@^1.11.0, escodegen@^1.14.1, escodegen@^1.8.1: optionalDependencies: source-map "~0.6.1" +eslint-config-standard@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" + integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== + eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" @@ -6261,6 +6281,14 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + eslint-plugin-import@^2.22.1: version "2.22.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" @@ -6280,11 +6308,33 @@ eslint-plugin-import@^2.22.1: resolve "^1.17.0" tsconfig-paths "^3.9.0" +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-promise@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" + integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== + eslint-plugin-rulesdir@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-rulesdir/-/eslint-plugin-rulesdir-0.1.0.tgz#ad144d7e98464fda82963eff3fab331aecb2bf08" integrity sha1-rRRNfphGT9qClj7/P6szGuyyvwg= +eslint-plugin-standard@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -7596,7 +7646,7 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -7828,6 +7878,13 @@ is-core-module@^2.0.0: dependencies: has "^1.0.3" +is-core-module@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" + integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9004,6 +9061,24 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +lambda-leak@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lambda-leak/-/lambda-leak-2.0.0.tgz#771985d3628487f6e885afae2b54510dcfb2cd7e" + integrity sha1-dxmF02KEh/boha+uK1RRDc+yzX4= + +lambda-tester@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/lambda-tester/-/lambda-tester-3.6.0.tgz#ceb7d4f4f0da768487a05cff37dcd088508b5247" + integrity sha512-F2ZTGWCLyIR95o/jWK46V/WnOCFAEUG/m/V7/CLhPJ7PCM+pror1rZ6ujP3TkItSGxUfpJi0kqwidw+M/nEqWw== + dependencies: + app-root-path "^2.2.1" + dotenv "^8.0.0" + dotenv-json "^1.0.0" + lambda-leak "^2.0.0" + semver "^6.1.1" + uuid "^3.3.2" + vandium-utils "^1.1.1" + lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" @@ -10044,7 +10119,7 @@ normalize-url@^3.0.0, normalize-url@^3.3.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -npm-bundled@^1.0.1: +npm-bundled@^1.0.1, npm-bundled@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== @@ -11949,6 +12024,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13 dependencies: path-parse "^1.0.6" +resolve@^1.10.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + resolve@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" @@ -12149,7 +12232,7 @@ semver@7.x, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -13762,6 +13845,11 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +vandium-utils@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vandium-utils/-/vandium-utils-1.2.0.tgz#44735de4b7641a05de59ebe945f174e582db4f59" + integrity sha1-RHNd5LdkGgXeWevpRfF05YLbT1k= + vendors@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" From c71a4e9644fdd64fa00a6d804c921b32bd1816d1 Mon Sep 17 00:00:00 2001 From: Rico Huijbers Date: Fri, 13 Nov 2020 14:08:05 +0100 Subject: [PATCH 24/41] feat(core): add easy importValue to CfnOutput (#11368) To transport values across Stages, users need to construct their own `{ Fn::ImportValue }` expressions, as we cannot properly do this for them in order to keep Stages deterministic and isolated. Add an expression constructor to make this API easier to use. Resolves #11360. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/core/lib/cfn-output.ts | 39 ++++++++++- packages/@aws-cdk/core/test/output.test.ts | 77 ++++++++++++++++++++-- 2 files changed, 110 insertions(+), 6 deletions(-) diff --git a/packages/@aws-cdk/core/lib/cfn-output.ts b/packages/@aws-cdk/core/lib/cfn-output.ts index ae1a52159244c..480de577db06c 100644 --- a/packages/@aws-cdk/core/lib/cfn-output.ts +++ b/packages/@aws-cdk/core/lib/cfn-output.ts @@ -103,7 +103,8 @@ export class CfnOutput extends CfnElement { /** * The name used to export the value of this output across stacks. * - * To import the value from another stack, use `Fn.importValue(exportName)`. + * To use the value in another stack, pass the value of + * `output.importValue` to it. * * @default - the output is not exported */ @@ -115,6 +116,38 @@ export class CfnOutput extends CfnElement { this._exportName = exportName; } + /** + * Return the `Fn.importValue` expression to import this value into another stack + * + * The returned value should not be used in the same stack, but in a + * different one. It must be deployed to the same environment, as + * CloudFormation exports can only be imported in the same Region and + * account. + * + * The is no automatic registration of dependencies between stacks when using + * this mechanism, so you should make sure to deploy them in the right order + * yourself. + * + * You can use this mechanism to share values across Stacks in different + * Stages. If you intend to share the value to another Stack inside the same + * Stage, the automatic cross-stack referencing mechanism is more convenient. + */ + public get importValue() { + // We made _exportName mutable so this will have to be lazy. + return Fn.importValue(Lazy.stringValue({ + produce: (ctx) => { + if (Stack.of(ctx.scope) === this.stack) { + throw new Error(`'importValue' property of '${this.node.path}' should only be used in a different Stack`); + } + if (!this._exportName) { + throw new Error(`Add an exportName to the CfnOutput at '${this.node.path}' in order to use 'output.importValue'`); + } + + return this._exportName; + }, + })); + } + /** * @internal */ @@ -133,3 +166,7 @@ export class CfnOutput extends CfnElement { } import { CfnCondition } from './cfn-condition'; +import { Fn } from './cfn-fn'; +import { Lazy } from './lazy'; +import { Stack } from './stack'; + diff --git a/packages/@aws-cdk/core/test/output.test.ts b/packages/@aws-cdk/core/test/output.test.ts index d7b509159a2bb..1179c3111c0c9 100644 --- a/packages/@aws-cdk/core/test/output.test.ts +++ b/packages/@aws-cdk/core/test/output.test.ts @@ -1,10 +1,16 @@ import { nodeunitShim, Test } from 'nodeunit-shim'; -import { CfnOutput, CfnResource, Stack } from '../lib'; +import { App, CfnOutput, CfnResource, Stack } from '../lib'; import { toCloudFormation } from './util'; +let app: App; +let stack: Stack; +beforeEach(() => { + app = new App(); + stack = new Stack(app, 'Stack'); +}); + nodeunitShim({ 'outputs can be added to the stack'(test: Test) { - const stack = new Stack(); const res = new CfnResource(stack, 'MyResource', { type: 'R' }); const ref = res.ref; @@ -29,9 +35,6 @@ nodeunitShim({ }, 'No export is created by default'(test: Test) { - // GIVEN - const stack = new Stack(); - // WHEN new CfnOutput(stack, 'SomeOutput', { value: 'x' }); @@ -46,4 +49,68 @@ nodeunitShim({ test.done(); }, + + 'importValue can be used to obtain a Fn::ImportValue expression'(test: Test) { + // GIVEN + const stack2 = new Stack(app, 'Stack2'); + + // WHEN + const output = new CfnOutput(stack, 'SomeOutput', { value: 'x', exportName: 'asdf' }); + new CfnResource(stack2, 'Resource', { + type: 'Some::Resource', + properties: { + input: output.importValue, + }, + }); + + // THEN + test.deepEqual(toCloudFormation(stack2), { + Resources: { + Resource: { + Type: 'Some::Resource', + Properties: { + input: { 'Fn::ImportValue': 'asdf' }, + }, + }, + }, + }); + + test.done(); + }, + + 'importValue used inside the same stack produces an error'(test: Test) { + // WHEN + const output = new CfnOutput(stack, 'SomeOutput', { value: 'x', exportName: 'asdf' }); + new CfnResource(stack, 'Resource', { + type: 'Some::Resource', + properties: { + input: output.importValue, + }, + }); + + // THEN + expect(() => toCloudFormation(stack)).toThrow(/should only be used in a different Stack/); + + test.done(); + }, + + 'error message if importValue is used and Output is not exported'(test: Test) { + // GIVEN + const stack2 = new Stack(app, 'Stack2'); + + // WHEN + const output = new CfnOutput(stack, 'SomeOutput', { value: 'x' }); + new CfnResource(stack2, 'Resource', { + type: 'Some::Resource', + properties: { + input: output.importValue, + }, + }); + + test.throws(() => { + toCloudFormation(stack2); + }, /Add an exportName to the CfnOutput/); + + test.done(); + }, }); From 39e277f65666e96fe1ad662254327967f666dbad Mon Sep 17 00:00:00 2001 From: Rico Huijbers Date: Fri, 13 Nov 2020 20:30:24 +0100 Subject: [PATCH 25/41] fix(autoscaling): `targetRequestsPerSecond` is actually requests per minute (#11457) Scaling to a request rate per instance was advertised to scale to a rate/second, but the underlying API was actually expecting a rate/minute. Upscale the value of `targetRequestsPerSecond` by a factor of 60 to make its name actually correct, deprecate it, and add a `targetRequestsPerMinute` property which should have been the original API. Fixes #11446. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../aws-autoscaling/lib/auto-scaling-group.ts | 28 ++++++++++- .../test/integ.asg-w-elbv2.expected.json | 2 +- .../aws-autoscaling/test/scaling.test.ts | 50 ++++++++++++++++++- 3 files changed, 76 insertions(+), 4 deletions(-) diff --git a/packages/@aws-cdk/aws-autoscaling/lib/auto-scaling-group.ts b/packages/@aws-cdk/aws-autoscaling/lib/auto-scaling-group.ts index 3b6ade93606be..cf5f6acbcbf71 100644 --- a/packages/@aws-cdk/aws-autoscaling/lib/auto-scaling-group.ts +++ b/packages/@aws-cdk/aws-autoscaling/lib/auto-scaling-group.ts @@ -10,6 +10,7 @@ import { Aws, CfnAutoScalingRollingUpdate, CfnCreationPolicy, CfnUpdatePolicy, Duration, Fn, IResource, Lazy, PhysicalName, Resource, Stack, Tags, + Token, Tokenization, withResolved, } from '@aws-cdk/core'; import { Construct } from 'constructs'; @@ -765,10 +766,24 @@ abstract class AutoScalingGroupBase extends Resource implements IAutoScalingGrou const resourceLabel = `${this.albTargetGroup.firstLoadBalancerFullName}/${this.albTargetGroup.targetGroupFullName}`; + if ((props.targetRequestsPerMinute === undefined) === (props.targetRequestsPerSecond === undefined)) { + throw new Error('Specify exactly one of \'targetRequestsPerMinute\' or \'targetRequestsPerSecond\''); + } + + let rpm: number; + if (props.targetRequestsPerSecond !== undefined) { + if (Token.isUnresolved(props.targetRequestsPerSecond)) { + throw new Error('\'targetRequestsPerSecond\' cannot be an unresolved value; use \'targetRequestsPerMinute\' instead.'); + } + rpm = props.targetRequestsPerSecond * 60; + } else { + rpm = props.targetRequestsPerMinute!; + } + const policy = new TargetTrackingScalingPolicy(this, `ScalingPolicy${id}`, { autoScalingGroup: this, predefinedMetric: PredefinedMetric.ALB_REQUEST_COUNT_PER_TARGET, - targetValue: props.targetRequestsPerSecond, + targetValue: rpm, resourceLabel, ...props, }); @@ -1603,8 +1618,17 @@ export interface NetworkUtilizationScalingProps extends BaseTargetTrackingProps export interface RequestCountScalingProps extends BaseTargetTrackingProps { /** * Target average requests/seconds on each instance + * + * @deprecated Use 'targetRequestsPerMinute' instead + * @default - Specify exactly one of 'targetRequestsPerSecond' and 'targetRequestsPerSecond' + */ + readonly targetRequestsPerSecond?: number; + + /** + * Target average requests/minute on each instance + * @default - Specify exactly one of 'targetRequestsPerSecond' and 'targetRequestsPerSecond' */ - readonly targetRequestsPerSecond: number; + readonly targetRequestsPerMinute?: number; } /** diff --git a/packages/@aws-cdk/aws-autoscaling/test/integ.asg-w-elbv2.expected.json b/packages/@aws-cdk/aws-autoscaling/test/integ.asg-w-elbv2.expected.json index e6dde4e4c0d4e..34f240a76559d 100644 --- a/packages/@aws-cdk/aws-autoscaling/test/integ.asg-w-elbv2.expected.json +++ b/packages/@aws-cdk/aws-autoscaling/test/integ.asg-w-elbv2.expected.json @@ -568,7 +568,7 @@ ] } }, - "TargetValue": 1 + "TargetValue": 60 } }, "DependsOn": [ diff --git a/packages/@aws-cdk/aws-autoscaling/test/scaling.test.ts b/packages/@aws-cdk/aws-autoscaling/test/scaling.test.ts index 10687702a56b1..86604a52d3404 100644 --- a/packages/@aws-cdk/aws-autoscaling/test/scaling.test.ts +++ b/packages/@aws-cdk/aws-autoscaling/test/scaling.test.ts @@ -75,7 +75,7 @@ nodeunitShim({ test.done(); }, - 'request count'(test: Test) { + 'request count per second'(test: Test) { // GIVEN const stack = new cdk.Stack(); const fixture = new ASGFixture(stack, 'Fixture'); @@ -99,6 +99,54 @@ nodeunitShim({ ], }; + expect(stack).to(haveResource('AWS::AutoScaling::ScalingPolicy', { + PolicyType: 'TargetTrackingScaling', + TargetTrackingConfiguration: { + TargetValue: 600, + PredefinedMetricSpecification: { + PredefinedMetricType: 'ALBRequestCountPerTarget', + ResourceLabel: { + 'Fn::Join': ['', [ + { 'Fn::Select': [1, arnParts] }, + '/', + { 'Fn::Select': [2, arnParts] }, + '/', + { 'Fn::Select': [3, arnParts] }, + '/', + { 'Fn::GetAtt': ['ALBListenerTargetsGroup01D7716A', 'TargetGroupFullName'] }, + ]], + }, + }, + }, + })); + + test.done(); + }, + + 'request count per minute'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const fixture = new ASGFixture(stack, 'Fixture'); + const alb = new elbv2.ApplicationLoadBalancer(stack, 'ALB', { vpc: fixture.vpc }); + const listener = alb.addListener('Listener', { port: 80 }); + listener.addTargets('Targets', { + port: 80, + targets: [fixture.asg], + }); + + // WHEN + fixture.asg.scaleOnRequestCount('ScaleRequest', { + targetRequestsPerMinute: 10, + }); + + // THEN + const arnParts = { + 'Fn::Split': [ + '/', + { Ref: 'ALBListener3B99FF85' }, + ], + }; + expect(stack).to(haveResource('AWS::AutoScaling::ScalingPolicy', { PolicyType: 'TargetTrackingScaling', TargetTrackingConfiguration: { From 3d4df34e76c1c7684e1457f4615b9025fadd3117 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Nov 2020 20:15:49 +0000 Subject: [PATCH 26/41] chore(deps): bump aws-sdk from 2.791.0 to 2.792.0 (#11467) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.791.0 to 2.792.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.791.0...v2.792.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .../aws-cloudfront-origins/package.json | 2 +- packages/@aws-cdk/aws-cloudfront/package.json | 2 +- packages/@aws-cdk/aws-cloudtrail/package.json | 2 +- packages/@aws-cdk/aws-codebuild/package.json | 2 +- packages/@aws-cdk/aws-codecommit/package.json | 2 +- packages/@aws-cdk/aws-dynamodb/package.json | 2 +- packages/@aws-cdk/aws-eks/package.json | 2 +- .../@aws-cdk/aws-events-targets/package.json | 2 +- packages/@aws-cdk/aws-logs/package.json | 2 +- packages/@aws-cdk/aws-route53/package.json | 2 +- packages/@aws-cdk/aws-sqs/package.json | 2 +- .../@aws-cdk/custom-resources/package.json | 2 +- packages/aws-cdk/package.json | 2 +- packages/cdk-assets/package.json | 2 +- yarn.lock | 100 ++---------------- 15 files changed, 20 insertions(+), 108 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudfront-origins/package.json b/packages/@aws-cdk/aws-cloudfront-origins/package.json index 6891422fe274b..8d8b0c2b4d64f 100644 --- a/packages/@aws-cdk/aws-cloudfront-origins/package.json +++ b/packages/@aws-cdk/aws-cloudfront-origins/package.json @@ -72,7 +72,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-ec2": "0.0.0", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "pkglint": "0.0.0" diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 8cf3a2c5fc632..7a1649e201239 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index c31375fc5b528..462a90b482570 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index f776977503df6..93ac42962e90c 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -79,7 +79,7 @@ "@aws-cdk/aws-sns": "0.0.0", "@aws-cdk/aws-sqs": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index 872966c9a78e6..aa76ed05a103f 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -79,7 +79,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-sns": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index 9ffc897f1b28a..6df9c614e864d 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -74,7 +74,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.15", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index 0a5df12a22a81..39feb03c3f7db 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", "@types/yaml": "1.9.6", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-events-targets/package.json b/packages/@aws-cdk/aws-events-targets/package.json index cbd86ca1e61f5..444131100fd25 100644 --- a/packages/@aws-cdk/aws-events-targets/package.json +++ b/packages/@aws-cdk/aws-events-targets/package.json @@ -75,7 +75,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index f2e0056471229..d3df5c52c5a63 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index c0857a6fe8b85..301fee1bba9fe 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index 8abfea7aca109..0a88a1730515f 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index f1e07fa3ae06e..8f17efcc963b9 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -79,7 +79,7 @@ "@types/aws-lambda": "^8.10.64", "@types/fs-extra": "^8.1.1", "@types/sinon": "^9.0.8", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 475c599e4289a..1a4edb29ad992 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -71,7 +71,7 @@ "@aws-cdk/region-info": "0.0.0", "@aws-cdk/yaml-cfn": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "camelcase": "^6.2.0", "cdk-assets": "0.0.0", "colors": "^1.4.0", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 15ccfe61cad61..f42f0673a35a6 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -47,7 +47,7 @@ "@aws-cdk/cloud-assembly-schema": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.791.0", + "aws-sdk": "^2.792.0", "glob": "^7.1.6", "yargs": "^16.1.0" }, diff --git a/yarn.lock b/yarn.lock index 6df6d22d0470f..aaec31d38eb86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3575,11 +3575,6 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" -app-root-path@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" - integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== - append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -3847,10 +3842,10 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.596.0, aws-sdk@^2.637.0, aws-sdk@^2.791.0: - version "2.791.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.791.0.tgz#a85bedd46c97e0d262edb055651075c3171a171c" - integrity sha512-oIWu0hLKmDS+rOmjud2Z1CaDXtmxKSJF4937dSNLf/vNkxxjJA/6HapSfKqsraLnekI9DLP8uop5HnCHC++Abw== +aws-sdk@^2.637.0, aws-sdk@^2.792.0: + version "2.792.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.792.0.tgz#d124a6074244a4675e0416887734e8f6934bdd30" + integrity sha512-h7oSlrCDtZkW5qNw/idKmMjjNJaaPlXFY+NbqtaTjejpCyVuIonUmFvm8GW16V58Avj/hujJfhpX9q0BMCg+VQ== dependencies: buffer "4.9.2" events "1.1.1" @@ -5965,21 +5960,11 @@ dotenv-expand@^5.1.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv-json@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dotenv-json/-/dotenv-json-1.0.0.tgz#fc7f672aafea04bed33818733b9f94662332815c" - integrity sha512-jAssr+6r4nKhKRudQ0HOzMskOFFi9+ubXWwmrSGJFgTvpjyPXCXsCsYbjif6mXp7uxA7xY3/LGaiTQukZzSbOQ== - dotenv@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== -dotenv@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - dotgitignore@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" @@ -6249,11 +6234,6 @@ escodegen@^1.11.0, escodegen@^1.14.1, escodegen@^1.8.1: optionalDependencies: source-map "~0.6.1" -eslint-config-standard@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" - integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== - eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" @@ -6281,14 +6261,6 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - eslint-plugin-import@^2.22.1: version "2.22.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" @@ -6308,33 +6280,11 @@ eslint-plugin-import@^2.22.1: resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-promise@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" - integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== - eslint-plugin-rulesdir@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-rulesdir/-/eslint-plugin-rulesdir-0.1.0.tgz#ad144d7e98464fda82963eff3fab331aecb2bf08" integrity sha1-rRRNfphGT9qClj7/P6szGuyyvwg= -eslint-plugin-standard@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== - eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -7646,7 +7596,7 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -7878,13 +7828,6 @@ is-core-module@^2.0.0: dependencies: has "^1.0.3" -is-core-module@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" - integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9061,24 +9004,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -lambda-leak@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lambda-leak/-/lambda-leak-2.0.0.tgz#771985d3628487f6e885afae2b54510dcfb2cd7e" - integrity sha1-dxmF02KEh/boha+uK1RRDc+yzX4= - -lambda-tester@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/lambda-tester/-/lambda-tester-3.6.0.tgz#ceb7d4f4f0da768487a05cff37dcd088508b5247" - integrity sha512-F2ZTGWCLyIR95o/jWK46V/WnOCFAEUG/m/V7/CLhPJ7PCM+pror1rZ6ujP3TkItSGxUfpJi0kqwidw+M/nEqWw== - dependencies: - app-root-path "^2.2.1" - dotenv "^8.0.0" - dotenv-json "^1.0.0" - lambda-leak "^2.0.0" - semver "^6.1.1" - uuid "^3.3.2" - vandium-utils "^1.1.1" - lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" @@ -12024,14 +11949,6 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13 dependencies: path-parse "^1.0.6" -resolve@^1.10.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" - resolve@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" @@ -12232,7 +12149,7 @@ semver@7.x, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -13845,11 +13762,6 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -vandium-utils@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vandium-utils/-/vandium-utils-1.2.0.tgz#44735de4b7641a05de59ebe945f174e582db4f59" - integrity sha1-RHNd5LdkGgXeWevpRfF05YLbT1k= - vendors@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" From 03e7cd5ebaf07be22f8fff8edacbc384989ebf7c Mon Sep 17 00:00:00 2001 From: Jonathan Goldwasser Date: Fri, 13 Nov 2020 22:43:17 +0100 Subject: [PATCH 27/41] feat(ecs): secret JSON field for Fargate tasks (#11348) Fargate tasks running on platform version 1.4 can now reference a specific JSON field of a secret stored in Secrets Manager. Remove the error in `ContainerDefinition` and add a check on the platform version in `FargateService`. See https://aws.amazon.com/about-aws/whats-new/2020/11/aws-fargate-for-amazon-ecs-launches-features-focused-on-configuration-and-metrics/ See https://github.com/aws/containers-roadmap/issues/385#issuecomment-722696672 Closes #11341 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-ecs/README.md | 2 +- .../aws-ecs/lib/base/task-definition.ts | 13 ++++++++ .../aws-ecs/lib/container-definition.ts | 13 ++++++-- .../aws-ecs/lib/fargate/fargate-service.ts | 13 ++++++++ .../test/fargate/integ.secret.expected.json | 16 +++++++++- .../aws-ecs/test/fargate/integ.secret.ts | 1 + .../test/fargate/test.fargate-service.ts | 26 +++++++++++++++ .../aws-ecs/test/test.container-definition.ts | 32 ++++++++++++++++--- 8 files changed, 107 insertions(+), 9 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/README.md b/packages/@aws-cdk/aws-ecs/README.md index d63f9974cc76c..d0c7cce7965d2 100644 --- a/packages/@aws-cdk/aws-ecs/README.md +++ b/packages/@aws-cdk/aws-ecs/README.md @@ -298,7 +298,7 @@ taskDefinition.addContainer('container', { }, secrets: { // Retrieved from AWS Secrets Manager or AWS Systems Manager Parameter Store at container start-up. SECRET: ecs.Secret.fromSecretsManager(secret), - DB_PASSWORD: ecs.Secret.fromSecretsManager(dbSecret, 'password'), // Reference a specific JSON field + DB_PASSWORD: ecs.Secret.fromSecretsManager(dbSecret, 'password'), // Reference a specific JSON field, (requires platform version 1.4.0 or later for Fargate tasks) PARAMETER: ecs.Secret.fromSsmParameter(parameter), } }); diff --git a/packages/@aws-cdk/aws-ecs/lib/base/task-definition.ts b/packages/@aws-cdk/aws-ecs/lib/base/task-definition.ts index 948ce4ea8ae90..862193b11fe3b 100644 --- a/packages/@aws-cdk/aws-ecs/lib/base/task-definition.ts +++ b/packages/@aws-cdk/aws-ecs/lib/base/task-definition.ts @@ -261,6 +261,8 @@ export class TaskDefinition extends TaskDefinitionBase { private _executionRole?: iam.IRole; + private _referencesSecretJsonField?: boolean; + /** * Constructs a new instance of the TaskDefinition class. */ @@ -435,6 +437,9 @@ export class TaskDefinition extends TaskDefinitionBase { if (this.defaultContainer === undefined && container.essential) { this.defaultContainer = container; } + if (container.referencesSecretJsonField) { + this._referencesSecretJsonField = true; + } } /** @@ -476,6 +481,14 @@ export class TaskDefinition extends TaskDefinitionBase { return this._executionRole; } + /** + * Whether this task definition has at least a container that references a + * specific JSON field of a secret stored in Secrets Manager. + */ + public get referencesSecretJsonField(): boolean | undefined { + return this._referencesSecretJsonField; + } + /** * Validates the task definition. */ diff --git a/packages/@aws-cdk/aws-ecs/lib/container-definition.ts b/packages/@aws-cdk/aws-ecs/lib/container-definition.ts index 93fa347799d38..d8ceec33c4a1c 100644 --- a/packages/@aws-cdk/aws-ecs/lib/container-definition.ts +++ b/packages/@aws-cdk/aws-ecs/lib/container-definition.ts @@ -355,6 +355,12 @@ export class ContainerDefinition extends cdk.Construct { */ public readonly logDriverConfig?: LogDriverConfig; + /** + * Whether this container definition references a specific JSON field of a secret + * stored in Secrets Manager. + */ + public readonly referencesSecretJsonField?: boolean; + /** * The configured container links */ @@ -384,13 +390,12 @@ export class ContainerDefinition extends cdk.Construct { if (props.logging) { this.logDriverConfig = props.logging.bind(this, this); } - props.taskDefinition._linkContainer(this); if (props.secrets) { this.secrets = []; for (const [name, secret] of Object.entries(props.secrets)) { - if (this.taskDefinition.isFargateCompatible && secret.hasField) { - throw new Error(`Cannot specify secret JSON field for a task using the FARGATE launch type: '${name}' in container '${this.node.id}'`); + if (secret.hasField) { + this.referencesSecretJsonField = true; } secret.grantRead(this.taskDefinition.obtainExecutionRole()); this.secrets.push({ @@ -399,6 +404,8 @@ export class ContainerDefinition extends cdk.Construct { }); } } + + props.taskDefinition._linkContainer(this); } /** diff --git a/packages/@aws-cdk/aws-ecs/lib/fargate/fargate-service.ts b/packages/@aws-cdk/aws-ecs/lib/fargate/fargate-service.ts index e709b705dfa29..fd0c4bbac64b5 100644 --- a/packages/@aws-cdk/aws-ecs/lib/fargate/fargate-service.ts +++ b/packages/@aws-cdk/aws-ecs/lib/fargate/fargate-service.ts @@ -141,6 +141,12 @@ export class FargateService extends BaseService implements IFargateService { throw new Error('Only one of SecurityGroup or SecurityGroups can be populated.'); } + if (props.taskDefinition.referencesSecretJsonField + && props.platformVersion + && SECRET_JSON_FIELD_UNSUPPORTED_PLATFORM_VERSIONS.includes(props.platformVersion)) { + throw new Error(`The task definition of this service uses at least one container that references a secret JSON field. This feature requires platform version ${FargatePlatformVersion.VERSION1_4} or later.`); + } + const propagateTagsFromSource = props.propagateTaskTagsFrom !== undefined ? props.propagateTaskTagsFrom : (props.propagateTags !== undefined ? props.propagateTags : PropagatedTagSource.NONE); @@ -219,3 +225,10 @@ export enum FargatePlatformVersion { */ VERSION1_0 = '1.0.0', } + +const SECRET_JSON_FIELD_UNSUPPORTED_PLATFORM_VERSIONS = [ + FargatePlatformVersion.VERSION1_0, + FargatePlatformVersion.VERSION1_1, + FargatePlatformVersion.VERSION1_2, + FargatePlatformVersion.VERSION1_3, +]; diff --git a/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.expected.json b/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.expected.json index 39896001c0e67..2ef36fdc4d94a 100644 --- a/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.expected.json +++ b/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.expected.json @@ -40,6 +40,20 @@ "ValueFrom": { "Ref": "SecretA720EF05" } + }, + { + "Name": "PASSWORD", + "ValueFrom": { + "Fn::Join": [ + "", + [ + { + "Ref": "SecretA720EF05" + }, + ":password::" + ] + ] + } } ] } @@ -109,4 +123,4 @@ } } } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.ts b/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.ts index 7cc743c05209c..4e3599145dffd 100644 --- a/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.ts +++ b/packages/@aws-cdk/aws-ecs/test/fargate/integ.secret.ts @@ -18,6 +18,7 @@ taskDefinition.addContainer('web', { image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), secrets: { SECRET: ecs.Secret.fromSecretsManager(secret), + PASSWORD: ecs.Secret.fromSecretsManager(secret, 'password'), }, }); diff --git a/packages/@aws-cdk/aws-ecs/test/fargate/test.fargate-service.ts b/packages/@aws-cdk/aws-ecs/test/fargate/test.fargate-service.ts index be05fbbac3e9b..7b8dc6975bae1 100644 --- a/packages/@aws-cdk/aws-ecs/test/fargate/test.fargate-service.ts +++ b/packages/@aws-cdk/aws-ecs/test/fargate/test.fargate-service.ts @@ -3,6 +3,7 @@ import * as appscaling from '@aws-cdk/aws-applicationautoscaling'; import * as cloudwatch from '@aws-cdk/aws-cloudwatch'; import * as ec2 from '@aws-cdk/aws-ec2'; import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2'; +import * as secretsmanager from '@aws-cdk/aws-secretsmanager'; import * as cloudmap from '@aws-cdk/aws-servicediscovery'; import * as cdk from '@aws-cdk/core'; import { Test } from 'nodeunit'; @@ -301,6 +302,31 @@ export = { test.done(); }, + 'throws whith secret json field on unsupported platform version'(test: Test) { + const stack = new cdk.Stack(); + const vpc = new ec2.Vpc(stack, 'MyVpc', {}); + const cluster = new ecs.Cluster(stack, 'EcsCluster', { vpc }); + const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaksDef'); + const secret = new secretsmanager.Secret(stack, 'Secret'); + taskDefinition.addContainer('BaseContainer', { + image: ecs.ContainerImage.fromRegistry('test'), + secrets: { + SECRET_KEY: ecs.Secret.fromSecretsManager(secret, 'specificKey'), + }, + }); + + // THEN + test.throws(() => { + new ecs.FargateService(stack, 'FargateService', { + cluster, + taskDefinition, + platformVersion: ecs.FargatePlatformVersion.VERSION1_3, + }); + }, new RegExp(`uses at least one container that references a secret JSON field.+platform version ${ecs.FargatePlatformVersion.VERSION1_4} or later`)); + + test.done(); + }, + 'ignore task definition and launch type if deployment controller is set to be EXTERNAL'(test: Test) { // GIVEN const stack = new cdk.Stack(); diff --git a/packages/@aws-cdk/aws-ecs/test/test.container-definition.ts b/packages/@aws-cdk/aws-ecs/test/test.container-definition.ts index 06acd4f620083..8f5c9f5de0c0f 100644 --- a/packages/@aws-cdk/aws-ecs/test/test.container-definition.ts +++ b/packages/@aws-cdk/aws-ecs/test/test.container-definition.ts @@ -846,21 +846,45 @@ export = { }, - 'throws when using a specific secret JSON field as environment variable for a Fargate task'(test: Test) { + 'use a specific secret JSON field as environment variable for a Fargate task'(test: Test) { // GIVEN const stack = new cdk.Stack(); const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef'); const secret = new secretsmanager.Secret(stack, 'Secret'); - // THEN - test.throws(() => taskDefinition.addContainer('cont', { + // WHEN + taskDefinition.addContainer('cont', { image: ecs.ContainerImage.fromRegistry('test'), memoryLimitMiB: 1024, secrets: { SECRET_KEY: ecs.Secret.fromSecretsManager(secret, 'specificKey'), }, - }), /Cannot specify secret JSON field for a task using the FARGATE launch type/); + }); + + // THEN + expect(stack).to(haveResourceLike('AWS::ECS::TaskDefinition', { + ContainerDefinitions: [ + { + Secrets: [ + { + Name: 'SECRET_KEY', + ValueFrom: { + 'Fn::Join': [ + '', + [ + { + Ref: 'SecretA720EF05', + }, + ':specificKey::', + ], + ], + }, + }, + ], + }, + ], + })); test.done(); }, From ab248c61e4d29c31c340993d7311701f1109a7d6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 14 Nov 2020 00:49:47 +0000 Subject: [PATCH 28/41] chore(deps-dev): bump parcel from 2.0.0-nightly.445 to 2.0.0-nightly.446 (#11469) Bumps [parcel](https://github.com/parcel-bundler/parcel) from 2.0.0-nightly.445 to 2.0.0-nightly.446. - [Release notes](https://github.com/parcel-bundler/parcel/releases) - [Changelog](https://github.com/parcel-bundler/parcel/blob/v2/CHANGELOG.md) - [Commits](https://github.com/parcel-bundler/parcel/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .../@aws-cdk/aws-lambda-nodejs/package.json | 2 +- yarn.lock | 920 +++++++++--------- 2 files changed, 461 insertions(+), 461 deletions(-) diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index 7a60283364ac8..40d6d3d93dbce 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "delay": "4.4.0", - "parcel": "2.0.0-nightly.445", + "parcel": "2.0.0-nightly.446", "pkglint": "0.0.0" }, "dependencies": { diff --git a/yarn.lock b/yarn.lock index aaec31d38eb86..df2e87a342527 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2159,128 +2159,128 @@ dependencies: "@types/node" ">= 8" -"@parcel/babel-ast-utils@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2069.tgz#40a56e7ad51b7e0c7ede4d1b661cf32ea9f78a0f" - integrity sha512-AWeNeJVJPf3U8KBf5TiB/ZNC0WvdnY3gAPhEpDoSOM4fpUiTsQSzDjfh+lCJarVnDgATudPIvQCXmQJXn6+dug== +"@parcel/babel-ast-utils@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2070.tgz#ada4316f5ef2df8ddd795362383fc365dbd1629c" + integrity sha512-4NMO2W90IcQd8U15RhYPp8v33YekcKS4zqZELF8sdI12Iu5DdN5llo8mnAn2bRNZ/s3IK6RFrpkqvZndKTr9wQ== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/babel-preset-env@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.447.tgz#049c3b3d3a5f56885e5c50bb15673f92ad76e6f8" - integrity sha512-84Ya/ACzm65xyWQm+NiWNOeN3vR6dgQSl0BLPHOGVf08SrpNzfdt2qVotPp4lfPP/tEjuMTElcOWzwI3zD7EUQ== +"@parcel/babel-preset-env@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.448.tgz#f90703841f0ff19f2a0408d77e290ff6dcdca454" + integrity sha512-9pGTMjIV7l2qLDZdXhLFfbVUir6osHMCD4qPm746D2dHFTm0FlGefyiLN2b52ky8CfNixrfxX2qwpjaK7CdOuA== dependencies: "@babel/preset-env" "^7.4.0" semver "^5.4.1" -"@parcel/babylon-walk@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2069.tgz#68c4ce70174031b1c8a3ddd0c079ab0704489968" - integrity sha512-B1ZO4c3pQWfB5D0TsVYzHMQ6R949yOvqxuS++WTxbGYEgDgwp2cyQt2Hurqn/fmnadxkCY/kwWaMPpasg+xSiQ== +"@parcel/babylon-walk@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2070.tgz#3064eb2f8da6a8c88cd85a795898258f1f3292b8" + integrity sha512-XPiOe/lWsWkvfeEbXPHgYldGOnpuR1FhMEXgH6RKa9ZBrGUWBDdC3KuY9AFwxDx5TVZGZxHmuV4LgOE7wpwqSw== dependencies: "@babel/types" "^7.0.0" lodash.clone "^4.5.0" -"@parcel/bundler-default@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.447.tgz#9e9e6457fafdb922c0b292e856cea20c8808e8fb" - integrity sha512-FEKLVtPIef47YxMJFzw0xB3EWwBEn9dVlA18semsIEOGIp3wrpNLceEVU+IKstbMx3r/VjdpOeoquXrfMJUYLA== +"@parcel/bundler-default@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.448.tgz#295cf5e8001f67d593695939f196f0117dda0cfb" + integrity sha512-CIrn1pem9aEdKFeCzTNrRcjqC3W2ASIWCt1Aps73QWUjwmL+TUwDYQ/CuLSNpTUhfG0no4lZqPnBLwAcfoKZRA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" -"@parcel/cache@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.447.tgz#02b84b134095738b4c6dcd1b64d2cc4d0bb5bdf1" - integrity sha512-GOr2zrrp39IKv+px7SEWRge+akUvXl7QlL3cXrqe01XngGc4ZEtnDZ6sI1B38zv+mIlIW/cPghfv8KTMZsGOPg== +"@parcel/cache@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.448.tgz#9fe492e17113df4494605fb475e9ec374e73fdfe" + integrity sha512-Q6Fbxpxc55dK/qz/Uv/uKTGcHoYLLQrHqRjK2K3xx22CYUzmyoXhXFlkpyEjiEVMW83USS5aAScEEX469qV7nQ== dependencies: - "@parcel/logger" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/logger" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/codeframe@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.447.tgz#c5605048882a26d32b6715fd5523dcd9b420934c" - integrity sha512-XWJe+soRxSs/iwEBGlXYtOXE1X5ZkCR6St9XDgVMJZKTf/zT3PTU2i28ni8+TQForI3bugK1/UqnF5sOvsuXmw== +"@parcel/codeframe@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.448.tgz#a4c2892a1c75ef49d3a4891e6e82a328a86b78e2" + integrity sha512-/m8vL2PYfc7v9QT9+lBYywQkM/oKHm6FnJxwDCIyxpwU+HSn9oeL8YQyEMG25hWzAZ/c9UK3chPk206JtHJ3iw== dependencies: chalk "^2.4.2" emphasize "^2.1.0" slice-ansi "^4.0.0" string-width "^4.2.0" -"@parcel/config-default@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.447.tgz#82224b0981ebbfbd9f69886eaea0e491ea8a17b8" - integrity sha512-kpOQh5N9mdo2Se8ihOVvup3VoEFZAVtXsmEO69hylsdjugmM/v9cqnIZVY2ouVaVCI6ARpfie7l/zaPIHkJNyQ== - dependencies: - "@parcel/bundler-default" "2.0.0-nightly.447+3df3153b" - "@parcel/namer-default" "2.0.0-nightly.447+3df3153b" - "@parcel/optimizer-cssnano" "2.0.0-nightly.447+3df3153b" - "@parcel/optimizer-data-url" "2.0.0-nightly.447+3df3153b" - "@parcel/optimizer-htmlnano" "2.0.0-nightly.447+3df3153b" - "@parcel/optimizer-terser" "2.0.0-nightly.447+3df3153b" - "@parcel/packager-css" "2.0.0-nightly.447+3df3153b" - "@parcel/packager-html" "2.0.0-nightly.447+3df3153b" - "@parcel/packager-js" "2.0.0-nightly.447+3df3153b" - "@parcel/packager-raw" "2.0.0-nightly.447+3df3153b" - "@parcel/packager-raw-url" "2.0.0-nightly.2069+3df3153b" - "@parcel/packager-ts" "2.0.0-nightly.447+3df3153b" - "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2069+3df3153b" - "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2069+3df3153b" - "@parcel/reporter-cli" "2.0.0-nightly.447+3df3153b" - "@parcel/reporter-dev-server" "2.0.0-nightly.447+3df3153b" - "@parcel/resolver-default" "2.0.0-nightly.447+3df3153b" - "@parcel/runtime-browser-hmr" "2.0.0-nightly.447+3df3153b" - "@parcel/runtime-js" "2.0.0-nightly.447+3df3153b" - "@parcel/runtime-react-refresh" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-babel" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-coffeescript" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-css" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-glsl" "2.0.0-nightly.2069+3df3153b" - "@parcel/transformer-graphql" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-html" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-image" "2.0.0-nightly.2069+3df3153b" - "@parcel/transformer-inline-string" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-js" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-json" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-jsonld" "2.0.0-nightly.2069+3df3153b" - "@parcel/transformer-less" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-mdx" "2.0.0-nightly.2069+3df3153b" - "@parcel/transformer-postcss" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-posthtml" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-pug" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-raw" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-sass" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-stylus" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-sugarss" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-toml" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-typescript-types" "2.0.0-nightly.447+3df3153b" - "@parcel/transformer-vue" "2.0.0-nightly.2069+3df3153b" - "@parcel/transformer-yaml" "2.0.0-nightly.447+3df3153b" - -"@parcel/core@2.0.0-nightly.445+3df3153b": - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.445.tgz#a1d337cdf33e7be7371e8001813afad9db7ef5dc" - integrity sha512-KLhER08w9dL2lgKu+NjkPs1OpFMiBZGdnvdy0A8T7rOTBqtApyTBm+x1NnlTQMywpTCODctPYLGf8vYAXo7ZKA== - dependencies: - "@parcel/cache" "2.0.0-nightly.447+3df3153b" - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/events" "2.0.0-nightly.447+3df3153b" - "@parcel/fs" "2.0.0-nightly.447+3df3153b" - "@parcel/logger" "2.0.0-nightly.447+3df3153b" - "@parcel/package-manager" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" +"@parcel/config-default@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.448.tgz#e625d9ca0e07deeb3b1d8b2a45786ea81630e962" + integrity sha512-4PG03VHrqxJaczDQBoBbT1LP74RIgoBf/ZVI/5NxywiDFcUmTRptK79gQTpTGEqOKr16SKGtNcOfBHBrnEc2iw== + dependencies: + "@parcel/bundler-default" "2.0.0-nightly.448+61001140" + "@parcel/namer-default" "2.0.0-nightly.448+61001140" + "@parcel/optimizer-cssnano" "2.0.0-nightly.448+61001140" + "@parcel/optimizer-data-url" "2.0.0-nightly.448+61001140" + "@parcel/optimizer-htmlnano" "2.0.0-nightly.448+61001140" + "@parcel/optimizer-terser" "2.0.0-nightly.448+61001140" + "@parcel/packager-css" "2.0.0-nightly.448+61001140" + "@parcel/packager-html" "2.0.0-nightly.448+61001140" + "@parcel/packager-js" "2.0.0-nightly.448+61001140" + "@parcel/packager-raw" "2.0.0-nightly.448+61001140" + "@parcel/packager-raw-url" "2.0.0-nightly.2070+61001140" + "@parcel/packager-ts" "2.0.0-nightly.448+61001140" + "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2070+61001140" + "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2070+61001140" + "@parcel/reporter-cli" "2.0.0-nightly.448+61001140" + "@parcel/reporter-dev-server" "2.0.0-nightly.448+61001140" + "@parcel/resolver-default" "2.0.0-nightly.448+61001140" + "@parcel/runtime-browser-hmr" "2.0.0-nightly.448+61001140" + "@parcel/runtime-js" "2.0.0-nightly.448+61001140" + "@parcel/runtime-react-refresh" "2.0.0-nightly.448+61001140" + "@parcel/transformer-babel" "2.0.0-nightly.448+61001140" + "@parcel/transformer-coffeescript" "2.0.0-nightly.448+61001140" + "@parcel/transformer-css" "2.0.0-nightly.448+61001140" + "@parcel/transformer-glsl" "2.0.0-nightly.2070+61001140" + "@parcel/transformer-graphql" "2.0.0-nightly.448+61001140" + "@parcel/transformer-html" "2.0.0-nightly.448+61001140" + "@parcel/transformer-image" "2.0.0-nightly.2070+61001140" + "@parcel/transformer-inline-string" "2.0.0-nightly.448+61001140" + "@parcel/transformer-js" "2.0.0-nightly.448+61001140" + "@parcel/transformer-json" "2.0.0-nightly.448+61001140" + "@parcel/transformer-jsonld" "2.0.0-nightly.2070+61001140" + "@parcel/transformer-less" "2.0.0-nightly.448+61001140" + "@parcel/transformer-mdx" "2.0.0-nightly.2070+61001140" + "@parcel/transformer-postcss" "2.0.0-nightly.448+61001140" + "@parcel/transformer-posthtml" "2.0.0-nightly.448+61001140" + "@parcel/transformer-pug" "2.0.0-nightly.448+61001140" + "@parcel/transformer-raw" "2.0.0-nightly.448+61001140" + "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.448+61001140" + "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.448+61001140" + "@parcel/transformer-sass" "2.0.0-nightly.448+61001140" + "@parcel/transformer-stylus" "2.0.0-nightly.448+61001140" + "@parcel/transformer-sugarss" "2.0.0-nightly.448+61001140" + "@parcel/transformer-toml" "2.0.0-nightly.448+61001140" + "@parcel/transformer-typescript-types" "2.0.0-nightly.448+61001140" + "@parcel/transformer-vue" "2.0.0-nightly.2070+61001140" + "@parcel/transformer-yaml" "2.0.0-nightly.448+61001140" + +"@parcel/core@2.0.0-nightly.446+61001140": + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.446.tgz#7e3da2766dcfcf75fc196d348ad727a2e827a737" + integrity sha512-+dNgVJzZyknoSaHOm826ShIZIWtW8TK0+C0Jiv75feqg91l3K6aqBhlTzuIbWkbF8xLVssPO2xK6WTJJY3J1NQ== + dependencies: + "@parcel/cache" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/events" "2.0.0-nightly.448+61001140" + "@parcel/fs" "2.0.0-nightly.448+61001140" + "@parcel/logger" "2.0.0-nightly.448+61001140" + "@parcel/package-manager" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/types" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" - "@parcel/workers" "2.0.0-nightly.447+3df3153b" + "@parcel/types" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/workers" "2.0.0-nightly.448+61001140" abortcontroller-polyfill "^1.1.9" base-x "^3.0.8" browserslist "^4.6.6" @@ -2294,72 +2294,72 @@ querystring "^0.2.0" semver "^5.4.1" -"@parcel/diagnostic@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.447.tgz#f8de06669979e438b5985ee06585e0400a9acf2a" - integrity sha512-VMoMK4xc83/bKITgzkB4vzz2YlYlKVDgHAIXUijISVnE1pvZHFJP9Uyw4aQ2l4nA1uILa8fQER0J14ayIGouoQ== +"@parcel/diagnostic@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.448.tgz#a72226caebd76e6825bd85c3fe387a7400724a8f" + integrity sha512-ZMUHUFF/r7BtJWJZY5yKLm+9vt9Hk+YgXwOMTkVSwPvP23+bRkfSviJ0VlP0uPkf156X+sCJ+B1VV5ciVmz8NQ== dependencies: json-source-map "^0.6.1" nullthrows "^1.1.1" -"@parcel/events@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.447.tgz#2608cd24c70993028f04a2d150e11e41c0554af1" - integrity sha512-5f6/d8i8Gavc6/RTC8XNZY0X4wpwnjx/edWUchk74j+RQd9ddslvVV41sHRkFER0ZlxQsMStDUZwKk+rmLwn7g== +"@parcel/events@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.448.tgz#2f7ab992fc408466b20dbfac6ba52092acd39b61" + integrity sha512-mtI51poyfkI+VDIsq21PRvHr0v98PTDxOJp/r1j5Pw9Tb4XGA+nVXhTakxYtHylOTxKVzDQD+0EDHBPVLWE5xQ== -"@parcel/fs-write-stream-atomic@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2069.tgz#75c14d11ce7eec960202527dc5530c97b2f38463" - integrity sha512-T3k8rhynHVQL12BKbvb4HYi3FjpJh4bEMAAoPoPY/VYDZ3nox3hE1vZGFyRyJqgQBP5gFCggj8MUvd5DeLt4AQ== +"@parcel/fs-write-stream-atomic@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2070.tgz#d81f8e474b053d87a3dda403a00ed00ce4819ff2" + integrity sha512-lFRZn69fOWdDwZi7elHDS6vuUN8sCsvsKJZnLvZwMaQqvdOrjX5J5drlwhqTknRUr9lW38aq3+j6FJ6ZRpyF4A== dependencies: graceful-fs "^4.1.2" iferr "^1.0.2" imurmurhash "^0.1.4" readable-stream "1 || 2" -"@parcel/fs@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.447.tgz#73cade111d8a6944f891417de7e982db3d12ac41" - integrity sha512-WregzLdnoQ3bl3/UzZp6SJp1CklMoSQM7fqzbGsbdnfON9e/MalfvjSmKtOUqCpqcK2RzvI1LFLw6alOxqOuHg== +"@parcel/fs@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.448.tgz#4f9fd79f9c484a3a36aa64e800a45b6f865ccc85" + integrity sha512-UFQhgB8+YL645RXoWSu0hbCMxs2j9XhYcVF5jpHPEYAwWcvM0buoc/DEdURFqDWHuZSzH9MDXIlLkbBSqmlygA== dependencies: - "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2069+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2070+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" "@parcel/watcher" "2.0.0-alpha.8" - "@parcel/workers" "2.0.0-nightly.447+3df3153b" + "@parcel/workers" "2.0.0-nightly.448+61001140" graceful-fs "^4.2.4" mkdirp "^0.5.1" ncp "^2.0.0" nullthrows "^1.1.1" rimraf "^3.0.2" -"@parcel/logger@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.447.tgz#5b39252973dc175ea5e879c0852640f39b227400" - integrity sha512-nknzbNd+aCPLy9F5gOKbeHneGXQ3wcye0feVZK4JeBS1S5d0dx4kCE1K9oclDMwCVOQSVSoXP6JtUBG6xxFw0g== +"@parcel/logger@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.448.tgz#7dc2892121f1d3dab1e81f9916ee6bf8465a29df" + integrity sha512-N0tCrbhvqPlCjDCCrlZMpqXXSbfKLUr7XRrgD8dkNZS8HnQiq9n/pnjPf9igs8cjqjtwMB8sY2b5JCTYvsKyBA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/events" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/events" "2.0.0-nightly.448+61001140" -"@parcel/markdown-ansi@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.447.tgz#cb063df65e44f34aa0b1ef1b7d12293ea60c798a" - integrity sha512-t070G7y5DZhuyEdWFWKwWivqxDdlyEmFTHh7FFvKcAWQUXQcoAUudsqcQhDTvnc3E+4jERPIi24wZy+Ymt5UpA== +"@parcel/markdown-ansi@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.448.tgz#d1b85e6d1a464f4688a34cb6f7836628dad1febc" + integrity sha512-7RqTHs8BFHc3/ykZtznPoEitXcKrWeeL4qwrQDhwLHq1eZHEIP4O9YnWnhYwf0EB8S1p8i5dMhxfBdAkMFsZ9w== dependencies: chalk "^2.4.2" -"@parcel/namer-default@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.447.tgz#e1dab70d0833ea5d83128beb3203d480fedd587a" - integrity sha512-yymDEo2Idr43t6z/az73rBnTbuynGm9pau7LihV/pPISXh+ShNqyeAn3v8M4fb11uJIOUNo7zQIfKHCuyahS7A== +"@parcel/namer-default@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.448.tgz#60271e4a23e9166ec0806bacbc14675716839c2b" + integrity sha512-qHLuDrFAmnY0ZWL29tVTo/5Z6RyC3athnc99QNlQm8XILgCLy3rvH05JcUqbw+YHhfhfz6k+OTrrJFRZPhGiiQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" -"@parcel/node-libs-browser@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2069.tgz#8e62d0240229edcf99f4363c6828ef0af7bf749d" - integrity sha512-3bOjrkoK7Q1aiftR0Z1MgdJqtrapxkTbCPx69XOUW+wV8f29Chi4KKhVrAIczEPLEmrboYhWfQ05flvkKgocuw== +"@parcel/node-libs-browser@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2070.tgz#188bf0e01b89e9d96f999e6a309ab4494d512c80" + integrity sha512-4vAZKdBTlg25h0bliLyFbqFP6WHZdg9YyfOkp+lBpIqUGHuM+NZ2ZTsH6UFg5A/EvGa/xca8/Ey3SHB7YXNDXg== dependencies: assert "^2.0.0" browserify-zlib "^0.2.0" @@ -2384,71 +2384,71 @@ util "^0.12.3" vm-browserify "^1.1.2" -"@parcel/node-resolver-core@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2069.tgz#127ddbe7e528c8a3083610dd583f65cbc130e5b0" - integrity sha512-u/nFM7ZLy8s8WSuyxf4O9gjOCDk1aZSeRzSpEpK4RyvRayiF/c1D//aipZlH7HBQ4YxdXJ3ztciFjHAiHwnDiQ== +"@parcel/node-resolver-core@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2070.tgz#c30381c8e67241ee3fe53a1840f4c6de1d6f36da" + integrity sha512-W+pORF950wI8PTZn0oT3atTiiH3slIn2li8QKJ7igzQjPLcGJLkuJ27amcT5D7jZP7bsjg2SCcU4gT94yMGKzg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/node-libs-browser" "2.0.0-nightly.2069+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/node-libs-browser" "2.0.0-nightly.2070+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" micromatch "^3.0.4" nullthrows "^1.1.1" querystring "^0.2.0" -"@parcel/optimizer-cssnano@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.447.tgz#7d7c1f63d807d805a134556f61d678ca31d01bc3" - integrity sha512-l4Kdn0U/ozGmsGLZI5PlW/8H/t+gXhIT5ON9AFPiX0q0iGDKXrusdgpVglKRQwIICFslWXcvH3FcKqxabvu6pA== +"@parcel/optimizer-cssnano@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.448.tgz#3538c50740bb815e62bcbef8eef4087a6508ddfa" + integrity sha512-4R8euOaGFq+4Vcl8mGHIAskPePTQZGvO77W07h4wgwRIq7pmBHJGUfzuzmNeXAwZACMbq5vxCIU85dxRFPpenA== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" cssnano "^4.1.10" postcss "^8.0.5" -"@parcel/optimizer-data-url@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.447.tgz#9bf7e3b58c1eccb7c5fd69a3c2a45bd59d8b3012" - integrity sha512-XmL0VtiUHRHWkzVh2qq/PQWa3gIa/AHUBcbefpSKexbu3V2ivd6pAlEyy5c78VRtbKKQ/BfJkYvFlaNJsRfQUg== +"@parcel/optimizer-data-url@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.448.tgz#317ffb418cc8f49bf57260bfa7472e9cb72b31a2" + integrity sha512-yf7OeMqYAeVf9X2J0wNiCKKklyfR4HgtNgm5GZoMsSmrvgvKjRGgFzqOkPp2GZWzKQn8F9UjuBbBleDzSM6nJw== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" isbinaryfile "^4.0.2" mime "^2.4.4" -"@parcel/optimizer-htmlnano@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.447.tgz#2e114e8db03d44d5c60f67cd02ff608ab669936a" - integrity sha512-lCvjK2/Ts5XqE1UXMYV4gblwLiOifdh5Nvi/wv7hllvyASIyln2SIW58cIrR6J56iH0gpIs1+heQ30XkvoWvWg== +"@parcel/optimizer-htmlnano@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.448.tgz#10766700e0d023e1f14b655940a3f1d881af5ae5" + integrity sha512-uY7IJrlo9DqUnf9LpG4B73BSEah6KRQxGaHo9jPkeM4/V+lQwjVoW1GZIbGc2MO1CKy/8jchbIInuymkN97T7w== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" htmlnano "^0.2.2" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/optimizer-terser@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.447.tgz#1e2fa5b53cc9944b27d09303575ac72dd8ca0267" - integrity sha512-yRXsFokdTiePWi63TzQZ6Ia1tmejf6VotzlEx9HAtiMCfE0rwkZL4BPdY/ontaOr6uLMBgKfMJHfTOSYd7gV9g== +"@parcel/optimizer-terser@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.448.tgz#f2adf245de3de239c484994750f9e80687c291b1" + integrity sha512-uZEog58leFd7P7ezlAznv7r+45tUM6P2G2b5XH6tP6oiKaYyjw77n25Dnd22/mWU8CvPnVyQdsotR4AScgniig== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" terser "^5.2.0" -"@parcel/package-manager@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.447.tgz#c8ffcc3e4b315223c1245b4c8284c8c5e22246ec" - integrity sha512-zcOz79FKIve/QNzeN18CyOlSHcMKz4teMJYJVDg7IhgdeLOdDD/jStQO5h9vocXONTLr0umcqf+n/exFVlzQ1Q== +"@parcel/package-manager@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.448.tgz#2cdda14e0a51222ad16c13eea49f68f73412b144" + integrity sha512-e39qTXU5OGsXB/607JZslwFJhyW+wLxvvKnreYDXp+MW/R/klkzQd4TuAXdF2aqDtcaLFvug4HRrK2rji5YC4w== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/fs" "2.0.0-nightly.447+3df3153b" - "@parcel/logger" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" - "@parcel/workers" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/fs" "2.0.0-nightly.448+61001140" + "@parcel/logger" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/workers" "2.0.0-nightly.448+61001140" command-exists "^1.2.6" cross-spawn "^6.0.4" nullthrows "^1.1.1" @@ -2456,91 +2456,91 @@ semver "^5.4.1" split2 "^3.1.1" -"@parcel/packager-css@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.447.tgz#574fbfd64161c12a26f262f848dd47d660f44f32" - integrity sha512-R0jYtiIUrDts7VDCStSg/5ew5YSijLQflPUCTXhcyxqQqglP9+oAvoLFoKV7WH3WsnN5sDw3le6V+eGBP+6QtQ== +"@parcel/packager-css@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.448.tgz#cbb079321c319fa07025c4569f946fde06177030" + integrity sha512-gEx4nU6k8sAqkxBTnCbbTr6VolI7flbPcG00GXJrukmthKjuZT1N4jBkQHZIXP3RvgxbcKXGzzEKkU/v3SvnRg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/packager-html@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.447.tgz#48af24a3d04e4c741e1f34ec4f1853d7166178e2" - integrity sha512-+I77EZztonC2u5/Tq6Sy6KBjvRRYyFg/V4Ts1LfkG4eWKQSdezB+TKr6ccG8mYrN4LcdtHwRdc8SROMaodHEAA== +"@parcel/packager-html@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.448.tgz#9f5bcd24c8c24e88b00893ac20a0977783828bed" + integrity sha512-NA3fHpKHYBpfV5KuZzi0SD6gndZbzgSEld+8s3kxSfiO5kJtdh8tWCtGhr5Wx0CWAEbZBHd6c6AJUHCS5HlXUw== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/types" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/types" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/packager-js@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.447.tgz#d90a439980fdf2e15faec2e54d980ac978d79a0a" - integrity sha512-UKpiqjaP6EbFfkm30kQYornokxumN7KVMHfVwkYmjOpy2yQ4WgdCQ/ll8p8Rucu58mge6s7rVmdhsLyk7S/H8A== +"@parcel/packager-js@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.448.tgz#aa49cd99b2f7fcbc5ba9a835aeb0c90bc3d428c6" + integrity sha512-LlplwBJaxJvyDuE5ijb5UNLRwLNHg3UKTrt12K0k6hPVkKTjNr3MKs0w2omHpjC7pKS7SZdDE9JFcxG4Jx0bBw== dependencies: "@babel/traverse" "^7.2.3" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/scope-hoisting" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/scope-hoisting" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" -"@parcel/packager-raw-url@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2069.tgz#2644768f087350aa4130ae9c5c90a77b985aa1b1" - integrity sha512-2N68cU1Ij0EHZqszFjbz9L8zzbCQ3x11V3EsxHtS0cqlKjHggN5BDpz3ZUA3nEy6vBf5mo5JcqfYdlG8VTtKgA== +"@parcel/packager-raw-url@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2070.tgz#a64aa1e712b6f51ad51b8d9f3e3c9ea6661a4e6b" + integrity sha512-ani2TWgt9xRDwOTcuJGwQCwigzDrvLD8M3Xk0WW4Cy9Ncf9Yi9LtrOEV6nmT4zmJyuSymvMpbAI7or1G4DhrNg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/packager-raw@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.447.tgz#78b78df56ce00320d00731b54fd0339c8eb91fe3" - integrity sha512-NHVusjJCCaLlTw40eUcGisrLHM5VOYtejJfcbI0PmmQpfk4tltuMIDn8a7JaVBLP7fMYjuEbCnrr0AiEKR6bkQ== +"@parcel/packager-raw@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.448.tgz#8ddc7e4cd10f58dc89f5980b12309baee5b589a2" + integrity sha512-/oo/55HTmpcXo2RtDz9XuZodAorS59gaGJIALfcRAN6BeCS0MbbuSlIuB9txcElTal5YiKH2orkyUN57KL74Ng== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/packager-ts@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.447.tgz#e1bceb09202a169bc8029b77c650b8e9416308b8" - integrity sha512-hGRhGiQDy/UT1ce4zGPuE6lqBV7XPQm4/tv+Po2IlmItqlhqMy21XqtW1dMrdeKq1b0lEmAKdxi3cbrP67F39g== +"@parcel/packager-ts@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.448.tgz#322e5c0339ae3fec5a5199cbefbed01ea476724e" + integrity sha512-aUVo0j7+WBkIw84Npoeki7SL+5kHsdnq/kBHmpzVdSbbA+0/5uPcnyQQLxOikxSjFaHlwYWtMjRcnTPlVT26BQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/plugin@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.447.tgz#4a6b38c910298c3b15cceb0dbd39e04e0076692f" - integrity sha512-GKVmQjHbHW02XwPzpJkI+XYgsnLbV5C5v/zyjZyjrfmQqSRgPs1L0OqCnCLG9SoK71lelwAXA7YchpIo+DJqWQ== +"@parcel/plugin@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.448.tgz#421df2a9a994d32c794926ba9678f57e73bbc26e" + integrity sha512-OAzSe3lJcemLF3tlxcbDh8r9DmkYWq19cFkmL6ycWUWoFsFTSPF2hx9LTARKWdbnVKGTtkvXVfDWW9ns75Wzbw== dependencies: - "@parcel/types" "2.0.0-nightly.447+3df3153b" + "@parcel/types" "2.0.0-nightly.448+61001140" -"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2069.tgz#9b6e6bd1db96bd727676c6fcddc9fc086261f44e" - integrity sha512-umwO5l1RiKm6rvLsAz48tulVdd2PrtOHvMUiasq1jJwwkKWO23Qql5Ag/HBSokMjDYRTJDYN8i8bLReWbNrK5g== +"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2070.tgz#6c641bd74da01ea35f4dee4d422ad913dc159504" + integrity sha512-aL0FsrTPN4p16cui1zCk0OWZXhLMms3ZRHh+w+kWKPIVkjjqG1pwRWYjo0cBO0dJb94T79kRA3NeuteV2QGVaw== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" -"@parcel/reporter-bundle-buddy@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2069.tgz#c658df5262d82866c455ae83a96fe24eade7fdf7" - integrity sha512-11n9gECbvOaEQ3LrXTzB6VpeHbnzxi+TMI/TlamUO7U1PNM9TSPVCN2OEwv1NgtQ4/wvQ2NPyDzgkxutLVbc7g== +"@parcel/reporter-bundle-buddy@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2070.tgz#355e45650a7d3602bf2bc66648277841427eb5e0" + integrity sha512-N/ctv0QmDZtm1PDxCJZebS+RgKSgQlM5kp5dAmIw29gxPvJarxI4y0K3IQaSf7PqJ9TXxB2AthToJOMO5lMD4A== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/reporter-cli@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.447.tgz#14a77213f3e3d88402786ca612d7babc27a9b19e" - integrity sha512-3DhVXIo5JJ1jQsnkl2NQmA8ngVRxCRErJzhoBV7zM2fnjtPUkfbx3/HJBTDDqmkqCPDosbrSeF3srUMCt6n15g== +"@parcel/reporter-cli@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.448.tgz#50e1c76be7294d6d4cfacedd7cc940dde17f9343" + integrity sha512-SiinYZeuy+QBvWrw9NVQWi0vddxnB3VNFQ9Uk24V4bXeRMol6QfzeDWR6myErpdxdyWY08wdzwv+m+grWXL1wQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/types" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/types" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" chalk "^3.0.0" filesize "^3.6.0" nullthrows "^1.1.1" @@ -2549,13 +2549,13 @@ strip-ansi "^6.0.0" term-size "^2.1.1" -"@parcel/reporter-dev-server@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.447.tgz#0f2eeae52ea0357fa6e1344da7fd15ff2d5c0055" - integrity sha512-HN43ip84zy0rH6uPXlnyhKa4qfbr66U0+OSUrusk8nKFpJG/vVj05nhvSEbYud/7xKx9L53moO/bNVLym83TjA== +"@parcel/reporter-dev-server@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.448.tgz#bf36522a9118c68b07ce9cd0b9c5de984b2ea4fa" + integrity sha512-M3X+/d9FxGisqx6dxUt58AD0vr/a9PoJRfhsoN8RZq+sIDFzQjbXrqTPBO7OjcDSbxBTP5fKOWMDmx6qwHxyxw== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" connect "^3.7.0" ejs "^2.6.1" http-proxy-middleware "^1.0.0" @@ -2563,54 +2563,54 @@ serve-handler "^6.0.0" ws "^6.2.0" -"@parcel/resolver-default@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.447.tgz#7ccca87db789e731e46687862732455bbfc3ec28" - integrity sha512-bfbvVOywPcBs0qwK5thUlcSADoPCul+DIQVPYqacvq8XFY8mZMVqP6erckaxK+Fe0dcYJmJB5wRi+LFK6OI2kQ== +"@parcel/resolver-default@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.448.tgz#a40451311860b83ec130c8ed49cc3a27e1f857fe" + integrity sha512-+R1i+DoAR1Magj5biYSV3eFN+Imu51qHao84eLp2A8eUfungngoQ9FE30bZHIvyHj7+QJGMdALomImQd09ic1w== dependencies: - "@parcel/node-resolver-core" "2.0.0-nightly.2069+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/node-resolver-core" "2.0.0-nightly.2070+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/runtime-browser-hmr@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.447.tgz#1e5d449cbcfd5a5470ff7317189fdda3536c0e59" - integrity sha512-F3R7dtBqSVTlbM6dZc2mo0171hx9HR8frPPOoC0cNh/NPRZcL7AkVE6oPp9gD74J16uHktYuOZqeDjGL7otnJA== +"@parcel/runtime-browser-hmr@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.448.tgz#b5a87e9d7178e2c1a53a22237010af586a1611c7" + integrity sha512-L7VIoTyGyLt6jIMU/W5F1KfvgysS3coQOYvUYt1JKSqhdGH3yh7gB7DNmHpib9fRez7hFvRWqIjnMUUc0zS+zA== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/runtime-js@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.447.tgz#694b2f8f069484ab348a44bc74f74c5853698935" - integrity sha512-yqCBktSjxdmq1Z2t85CwdN33oPYTMQ9SUtXWJHCtLwbSLiKRnKl7JpLqFhcRPQ0EAf5H9/MYPGyA6M863M5zRg== +"@parcel/runtime-js@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.448.tgz#8de0900812e02b03cf0efe4f0be4ce9001009771" + integrity sha512-oArigY5HHAQaqYXK+TXcIQfsyo5IqoHWC1ZE74dcZv1wAl6wedEcU6ynldLJmX2aE/aA+87UYQR8jpoGQtJd1Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" -"@parcel/runtime-react-refresh@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.447.tgz#8d3da34983d7b4d35297fc22a0dd362e51cc0d0a" - integrity sha512-7oF0NqOc4UBgaLm4FY58xyZS3zSNnCAhMNQPDvvglFGY83VLK2vWUKXxgVZzYO+TDPLuGr42E6m5f0eb241iqg== +"@parcel/runtime-react-refresh@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.448.tgz#f2bb37ed81c60613ea1baacfe085cdaec333b88c" + integrity sha512-+OYBXFxlVpcG2ONCdy6y3QDj9s7T0PbKpxQz6MFT0T28vwhsjMlRD4mts0R5oemKtNSN/gse3HCb4gkMuDXayg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" react-refresh "^0.9.0" -"@parcel/scope-hoisting@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.447.tgz#03142a49b96dd7134b2a196684d14630ff7144f7" - integrity sha512-sEXeDYbz6CQg5RmhAF4qkGVzrWiMuEtrEJ91b2LQYxNdJR4F7hApz+gh5qCFLfTIB2KfRZd1cUCyGh0GDE3EEQ== +"@parcel/scope-hoisting@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.448.tgz#5b30f89b667447b6bd48dfed7e16f0ec572a349c" + integrity sha512-Zh842WzUMgM7X2IdHBFhdkY3g9WyQ8govjuvtw6jc+7Q69np7MZ8rEB2s4BuNYVpj850QM3laxUZGi64JfuBhw== dependencies: "@babel/generator" "^7.3.3" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/traverse" "^7.2.3" "@babel/types" "^7.3.3" - "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" - "@parcel/babylon-walk" "2.0.0-nightly.2069+3df3153b" - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" + "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" + "@parcel/babylon-walk" "2.0.0-nightly.2070+61001140" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" "@parcel/source-map@2.0.0-alpha.4.16": @@ -2621,10 +2621,10 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -"@parcel/transformer-babel@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.447.tgz#a936a737d4bdec282dc23cbb9142b0bc80d5fe0e" - integrity sha512-9wMqAV7kO4YcYb1in6YhM3PbmMz5GgNHcMI63aOtDhXCxqi4uYSo6gS1wHkPK3iv+naGqrPGxvNbopXmzcSkSw== +"@parcel/transformer-babel@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.448.tgz#cc8b5fcceed090c230be6304fd68084fc5e62325" + integrity sha512-9dPujGq9e90cYA3TM+aupWzw3Yz90PwqrY93KqRKWEkFYiwQed28hMGjS78uJerjnAmfKDBB1HFO/hFSnZf5/A== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2634,85 +2634,85 @@ "@babel/preset-env" "^7.0.0" "@babel/preset-react" "^7.0.0" "@babel/traverse" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" - "@parcel/babel-preset-env" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" + "@parcel/babel-preset-env" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" browserslist "^4.6.6" core-js "^3.2.1" nullthrows "^1.1.1" semver "^5.7.0" -"@parcel/transformer-coffeescript@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.447.tgz#cae039862eb29c5f2e2a234e19dc2634e3ec489e" - integrity sha512-JrWad88HP1VsW6FTxOboS9wOr8b9AR+TwJEG5ps+Vu5iTmklyWuwnDDcJIos7Rk+ew58F1lWhqDN+/qxCdsv9Q== +"@parcel/transformer-coffeescript@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.448.tgz#7273a9a58c2dd933eb8db967373539ee74efb7f2" + integrity sha512-4scl68ppphsAxsh9ad0jgTuIHHSB2ferxRsl8DQBIVF+rTL5q/VoLqwI4jTPmI7RZ77N6ec7M7hwro00MSFipQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" coffeescript "^2.0.3" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-css@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.447.tgz#9c54780291b93ee7760553390a3f3fec8ab09dd0" - integrity sha512-/ImYwUPOKDZ3Bw/qXVDAkV7yKL82Qhrb6zOcjzyKm1Le27KJ82mGe6eGhCPHokKA/pFiIrj5xGiwCxNH3W67vA== +"@parcel/transformer-css@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.448.tgz#0af630f67795d02f7a2508e7f05602c80115f8e9" + integrity sha512-vGE4B68Dl8Z8v2Cm3/2z5jjgX1hQHzLbghUNxwrI9YkzqKFsXBrxyeMeaRJMztD1jj4y4v/Dbj5pvY8TWZOpzw== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" postcss "^8.0.5" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-glsl@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2069.tgz#62deacd5029604b826686c072cfeb8d21a12403c" - integrity sha512-qJabAfGUpl2V/tqnJFqOXemKFyyz3RGajVYSHvFVabNC4sO/pUiz4nFNQmqhO64UGJSbS5TxEWB115h5beGwaA== +"@parcel/transformer-glsl@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2070.tgz#aa0231c37e5fc86738fda62940d336dc749c92d5" + integrity sha512-vB4d7Yu8rL3rM23JfJJ42KWnPZlA/LcxkvSAF+NOwUzhnmd9B6toLPcPM124lg3VmuRb93gSyvACA5WrPIYpVg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/transformer-graphql@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.447.tgz#3859d22ee1af541e2a9178c5de362eff64f5b240" - integrity sha512-jG8f5pz7rytvhwDaAvxoh7JaleKeLnWwOSTfFCMwAWZJD6O4IeP7/D4Jrg1jbPkpl4H/v6zyHnERxJbQL3bjIg== +"@parcel/transformer-graphql@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.448.tgz#0060cc1404d5fc82a842cb61396aef79bf7c0021" + integrity sha512-OuCfnz51EMF3jboL/tdg3oUDin2OxIii6Yy8GzVuf7ETUs1Ztx7esVx4eZYTZIDm3y8AuMYasHl57ZIvcUAYKg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-html@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.447.tgz#4f169a9b2808ae76509e56a5afe039f32db04370" - integrity sha512-aKPyz5bkfTNw//wiltwKbpmtUT7bt7yVvdobAH70axj2z6xtjfHxYQdCu0DVRfDPt/OrRe9zBHzNY5moMaZcrw== +"@parcel/transformer-html@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.448.tgz#9de1e385b02cbe90258e11d711818a2159daa534" + integrity sha512-1am34PMszyH6A4pq5k/AbDUUP2jR5Z0OlvGUaW4m2lrUSvN+NKyUaU/S+2VpKPrHdfpQJ3h3UmhedxjK+LmZhA== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-image@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2069.tgz#350557404818b48e692fabc83be3716ff0937368" - integrity sha512-bkZ7+I+EjIdzlsc1AzfYB/BLP7hxX14Go3JQHPCSoEshWCh1dPGrejFdicaBUNdlDCZpM0EXt0kvJ0AA4Ho22Q== +"@parcel/transformer-image@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2070.tgz#1d48841ee1863cce6ae0f2338eaf9b38988102bc" + integrity sha512-2LXpxC+tJr17sY0Y67g7G4ixhR8iXQki8tmqcCW8+/f6BTlyU9yaIJ6n8AmkpvXadI9PQ8zsrlDCMbAIzbAb7Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-inline-string@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.447.tgz#350955c01bff31971d8649abc576bfabc2e03460" - integrity sha512-qSRij/gO1DBH+JKEq2nhbADCUR/gxmVnivWVKKujB/Nc3P9BF2+oCM9NFYbgGdkuSOkAxiL0EUUMcONUXCStcw== +"@parcel/transformer-inline-string@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.448.tgz#aa92bad18fbb02b1ac505edf4d2cb6358b0bd596" + integrity sha512-o9vcSp3xuvnp7r5mzTfcitT2zCVIA6yVzedfidcRuQSbzhmjC/zzz+mIMnhjWkYkFL955jLG5hp/4yE8r6oIHQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-js@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.447.tgz#c7f8ed7cdd0d8a10c073cc48324c9fd3b78a7ad7" - integrity sha512-+1Feek8staUtc956JJwPoP9UKJdyLplFxozL/Qz/tJCfd30gyUwe6G1Ds5TvVZIxMbA+04kejSwVPbHBUatUNQ== +"@parcel/transformer-js@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.448.tgz#503bf70113eee3f08291f8d6843cae1bb13333fa" + integrity sha512-hm5lOGha+Ves/e1+lyK5JxREsqZToRO5W676/Qq60dINQilyiujt3mRwUr+xB2IJKcwT63W1JzmwkN0iOu6SeQ== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2721,193 +2721,193 @@ "@babel/template" "^7.4.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" - "@parcel/babylon-walk" "2.0.0-nightly.2069+3df3153b" - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/scope-hoisting" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" + "@parcel/babylon-walk" "2.0.0-nightly.2070+61001140" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/scope-hoisting" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" micromatch "^4.0.2" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-json@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.447.tgz#8c63b72374cbe47c0517cd0be490d667b5c7ddd0" - integrity sha512-79aIUcQzlnw+/7EJj9dmZNgyLH8RRGCsqul7sreiZam1hfXLTtK8v9EyrgIDC9BvZbJPBe3fUyDRGzXXK54b1A== +"@parcel/transformer-json@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.448.tgz#356250f2a7455ab861f0a7f4bd6b820ce0f8464e" + integrity sha512-wGJfMpBNCV3Oz3emEPzk+mGl1i3YR/6V0ptDHrhHlgv3hIafMUew+MCpFsgoBkYPrs98bhhP/3QakfHcnCtmzQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" json5 "^2.1.0" -"@parcel/transformer-jsonld@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2069.tgz#b1b69e540b214fd2cf46d62304321c8f598de1d9" - integrity sha512-n3zAblC4I/XM67NvIgZdx5N3tsS5WYBay5BO0cwij36+dt/nF5aBGiYfomPXgV0fnoSFMbku5W3ZAGnMHoGURg== +"@parcel/transformer-jsonld@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2070.tgz#ff1c24a0c6dd530f08c83c110b2a50c04771d8ca" + integrity sha512-2cMHUf6mpug/ao5hgn/J9GzfW6IDB4/XLcPJNjvXz2QI7kVJ4Sz6jXf/1kAyw8OLTIyELjFjoxjxRt/r6Ktymw== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/types" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/types" "2.0.0-nightly.448+61001140" json5 "^2.1.2" -"@parcel/transformer-less@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.447.tgz#bc6ace825b022045222483ca072dca28243c3217" - integrity sha512-hcRxSjnqaNgi6O6bNltX0PTvMlO0D/yAhiI/T9YKbrlxvHhBTn8CL3YgCQjstfYNrO6G/g6cRZpRLFZo2SbCxw== +"@parcel/transformer-less@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.448.tgz#b39837ed2301d97c9c8e0544663c9de16ecc4d57" + integrity sha512-OiTugud9sWxZsme4qeaS7g4AZfIhvapCf4Momj6Q9/ECoShZqYVlai6FlR3y+MspYS8ziyQpEeLVA2C90Wt71w== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" -"@parcel/transformer-mdx@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2069.tgz#0aa3abc1c1aacf6027ee3a0314432b61ea0d4cc3" - integrity sha512-j/aDSFblTPkgF4i3x3k14EeK2/hMMEkXsdUpMpy9/z9Tmfw8snED9bJVZtDrxo1xd9T2+odixrmryjqzGPy+Tg== +"@parcel/transformer-mdx@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2070.tgz#e5a62c3423e744df12261ed606a65a57ea76ff4f" + integrity sha512-23efIf7gQimSu/S8JEQWxhFZozWSdbbYVtTM7L54qJaLhN3yFW0VG1/vKnY7wMJKtaP3K44mmtc/BQjd4HNpLg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-postcss@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.447.tgz#d92ed2ebb9517f510326911561297192e56333c7" - integrity sha512-VikvWEjYa8Y4pEIypd8FnI+SxIMjgcV0dFE5yjVI1OUfGtdlQCWrbXVLJhom572Wsz5yRrD1VH/WeFPrW+oM8g== +"@parcel/transformer-postcss@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.448.tgz#6ff15db706e4aadf0512a49ad2b3863eb5ea49d8" + integrity sha512-qWMmWSAhCZJklLBqNk1Q1dfXcEM2o7RYwyKgOIH9Ch0KOzf7nrkVUSFcoBARNhtzQTQlb6zyD+VI8yeG0Iz/Lg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" css-modules-loader-core "^1.1.0" nullthrows "^1.1.1" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-posthtml@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.447.tgz#17af0da915e54ba7bc48d39830175a3b3c371034" - integrity sha512-ySg5FHlxoYJpEaASO6Sps7KIzYoH5bkJona5fqR6amdYuTdAJfJ6gR4LC+kH4BNyox+lwhjoQMyewGp3zBnpaQ== +"@parcel/transformer-posthtml@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.448.tgz#384e2ff2e177a554253a9f7b9e950ec707dc5aa9" + integrity sha512-uKyHIXwZTRUwXtdbMPOKXqmaPX3t5sQdCDDaPlq9aZBv5cEflDZYN3+t0Na3tXPRcdotbT/vUkpP1kfdPKrFAg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-pug@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.447.tgz#c1b9f723c6ce600a774a0a95eb21374e5ff48555" - integrity sha512-oku+QaCVwchwoH/ggbdcM0KNxoOWLz4DVKkIbCLE+PHynd8WjBQlVz5PIpsQhonF+GXPtvBMzKYoashPaQQXhw== +"@parcel/transformer-pug@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.448.tgz#2991434b5ca082aa1738ba3d86e6c96ae04f9bfb" + integrity sha512-+Tzkd3tnwVoXAWD/ZV58nhBe8c5GuDKHmPHImm1x6KSCPYVhxd3L76wS5BJfP3oxAAZqznSDl61nl7rpDnAlfg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-raw@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.447.tgz#aab7a4a69645d8752e31c42c4aa0800dcc623faf" - integrity sha512-oLJPQO7gLRicpH8gNqQ7JvGR3/Gt/OUSsVRx89Q24pPsS45Ezi42Yw5KyF0Oe4o9S8LD45Ues5IDrfUB5OF8NA== +"@parcel/transformer-raw@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.448.tgz#01e08d920564c82113e18c528e1194f0c16c2181" + integrity sha512-8O8O09UMMelrwe5Lu95u/6xBVrQcrjQmb/Twahjx7hmkd3Q0/AA8MlnGiE26Yyt8fxeL8lVniGaJdRTIaesZrg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-react-refresh-babel@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.447.tgz#bed4fde19be51ae4ef62c180a040c8ec6c2c206d" - integrity sha512-IxNejXXl90cCFp/yg2qU8WoHx1HjistRcgS0kU1xJe5E771I1jR5MRSHblrgRf60d4qvXMNBHeoqLKCKAkjjKA== +"@parcel/transformer-react-refresh-babel@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.448.tgz#12ad681cf7679a8f0927a6ed1a55b873a72bd625" + integrity sha512-OwGSYDIHbvzsLG67jOqv1leglXaPqUAHSVU0JbNQGHxZYX6RdKbCLhr1wOEhWn4J+ja8+8uuC1gAdKf8h5nT2g== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" react-refresh "^0.9.0" -"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.447.tgz#037e529039756c9611381bf5df8910b06e887dcb" - integrity sha512-PJvGn6LEPl+r90FoGsc3VQ+AIO1OCxSXrUqnAt7yNTh5aFfWbfeYBjkjQc9akC7qwFa/uwJ6fep6p5f8mFVUJA== +"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.448.tgz#b4e627df0c9c4e61398cda9e10fc574b20185c4b" + integrity sha512-zwV372zAOK3gakOtwkotCUaBi0WoZaDcxZmNaImcjcXh8CzLMtGypV+i6XesvLrUygeiLnyhrUoJfIJL6+2Klg== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2069+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" react-refresh "^0.9.0" semver "^5.4.1" -"@parcel/transformer-sass@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.447.tgz#9fd3433ba146eaeae08db218905b2d765f7b3aad" - integrity sha512-JT2GQG1gsiVGUgmUI1Q8RHUvZvVC3rurTyTuunhD5knYXdc+s9wHgtxuGhG+lvf85Ye/yfUJqk3VYdNSm8zI2w== +"@parcel/transformer-sass@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.448.tgz#ff8bd034bc82f95fe960fab0247ae1a9d0129f13" + integrity sha512-s5E3Zv2GKjAF2sRdtw/0RxcS5xEcdVeAOaR5D7OEvq6QzAC5nldAOHtjV89wm9Ahp63liWsbb66x13njTWbKpQ== dependencies: - "@parcel/fs" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/fs" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/transformer-stylus@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.447.tgz#09b33292139020649b599e51523758974495c00c" - integrity sha512-hEkixaT6amarEzxlzNPWWRTWT0WSUnTUT9bFGS1o0MCorZwZJroPKMr9qlK8WCLY+xGzNKnSP2lWrCRLPFX7wA== +"@parcel/transformer-stylus@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.448.tgz#2e195338c6573f02f25b20c00186fe78096527c5" + integrity sha512-1XEj/0Y5GyhwFbSTva/HKjgYRwmBrjNhUMs/IcIutOsCjlU6+p0ebO0LpKIc1aZkme13ja50/LLmb+jKh8abGQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" -"@parcel/transformer-sugarss@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.447.tgz#fef45b98a6ee8cbd7c5757e54945c3f611ee2ae6" - integrity sha512-8AXGFGyPvpyS6IZPf+sEk/Y8oYdBU6U0bKqzZgCK1PX1+IcHAI43TW2kmS3WXTxRbmwfsXWXKNOFsVyIZa/XmA== +"@parcel/transformer-sugarss@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.448.tgz#f3d18ffd99c0301d70454aad2f9174964e859700" + integrity sha512-a7Qtj3Jak/hPc1c+zirN16Gh6BATI/qLyGRs8/0UpTjNfnJ/Bj1Mb4Lu8pu6t2vwwK4BM+kscaxeTAOS5QiSrg== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" postcss "^8.0.5" -"@parcel/transformer-toml@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.447.tgz#4cec07a505e307620dd9695c748e756ffe020d16" - integrity sha512-MHcdfpdhY7cMQN3pkvEe6K+2anunmtoZ+wUP7LnHT//itzRyRpm5zY8Tzbxgg+4whgNh8YK9CQw1Xt48fu3fzQ== +"@parcel/transformer-toml@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.448.tgz#cb1a96f75f251876ef134c68960cfdb65ae34814" + integrity sha512-FBv3LYCJ0SObDOM73BJ75axtQOrm4PoqwBHRjsVwi1h4JUbkdp0ySPOmf4fEVShz8HYUaWO5zJVe9nC7jT1E8g== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/transformer-typescript-types@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.447.tgz#2125b9828eb646861e01f279ae05cd84015bfae2" - integrity sha512-CeDyafYkCa/bm94q5Jia1IyE5Ar2ixOgN75ImlUh+W1MdbB0JPAmRoubIT/Fd5++/q79bqK1mL1sSoyEt//TAQ== +"@parcel/transformer-typescript-types@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.448.tgz#fddbf25a5b55056e7e1e3036624dab3474288628" + integrity sha512-rX9uIPDTC4xJqwNKo1MQTX7p6DumCGo6vaYXxE3ZIneTgHgBfbGyNoC9Kn8tNosptZ3HHmoyp4vjZNcovGS2LA== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/ts-utils" "2.0.0-nightly.447+3df3153b" + "@parcel/ts-utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" -"@parcel/transformer-vue@2.0.0-nightly.2069+3df3153b": - version "2.0.0-nightly.2069" - resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2069.tgz#0d910b0c35e50ff31bf3a2b28d28b57e30dcafe6" - integrity sha512-atJXwGxKpACMJsNV1iQTCkf/ZviPMvzQAKs6DwgocVrrqfaLCC81oc4S3h+TjRJGLZWk08vlB9uJloeOwfkkpQ== +"@parcel/transformer-vue@2.0.0-nightly.2070+61001140": + version "2.0.0-nightly.2070" + resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2070.tgz#e707a838f05493f7cbb9912c83b7e711363cb59c" + integrity sha512-gpSh/ucbw5bHrqW69rvdCvWA9o5Bixed9/KPhXoFf15Gn/bAZ65QE+omBrfSkiTVbHl5dJvXR/Yq+539PM+tyQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/utils" "2.0.0-nightly.448+61001140" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-yaml@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.447.tgz#b39860a7c8eb9ca396ce0241ee90d00c88d7edae" - integrity sha512-hUe9NBt24k1dUx49ThKbmvPSnsMZoxHOMGNslZhW2MV6QepDOuXj7xnXEMvyAkimuxDlcvGtkfhHJJD8RaGEWA== +"@parcel/transformer-yaml@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.448.tgz#9886798f6b3193091d5f7276fac703f7bf736b08" + integrity sha512-MfNDX5e1n3b2NaGly0pO5RjttOKP/pkJJHNJRE2RlEAUOagxQSxqK3xUeLua8bSV6KFnP4NYeCeds4YxGGkB8w== dependencies: - "@parcel/plugin" "2.0.0-nightly.447+3df3153b" + "@parcel/plugin" "2.0.0-nightly.448+61001140" -"@parcel/ts-utils@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.447.tgz#8a6f5e683b2cf03c6cbd655dfa710db280c3d385" - integrity sha512-5h53In5xgGewdOCqqtQaCZrrXp0CR13ADspBJ+l6NfJQRdcOSJS/j4C0TvxfZeM1SPg84EHRcfYVPhowQrMXaw== +"@parcel/ts-utils@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.448.tgz#e3e5c69725efe5f94813420676e6e2f36fd18165" + integrity sha512-cWXI9pTAVlnXm65LzWk1IfVTZzgbq+qramWqdmfxVEYiR3dZd3RwC4/AYz5yxJMJNrWYFSnuu82BO0ilcOnDww== dependencies: nullthrows "^1.1.1" -"@parcel/types@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.447.tgz#f3e71cd8c5590714169159c30dae9a6ad1e336bc" - integrity sha512-+ejywUnBj9g+iOLoFF7TguQi+P05JzZKmkkkX2hg6K5DvC511xIASZfPa/kxFWUK1vDvNmgP445i8TSgkuMyLA== +"@parcel/types@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.448.tgz#67e48bb912a57f43e1a2e6d89b840e8994c7d63c" + integrity sha512-AynPc+Up7eOJZxvwcANbJjzyTkgfXRmvuwE1nOLNuupV0wUi53RHf3+ibw/Vd/FZSW918IJgcHc3bXtp31OmJQ== -"@parcel/utils@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.447.tgz#0fccebed5482983b44d2ef46de283f7054850a6e" - integrity sha512-I/rSrHCjpRDtJXyNfkpfHVa4Uz8li1dsFBRoeTJ2mTmxiCig3Yc8WWlzZgP6Ltk4eLEL5hI5pcKAmDrljeM41Q== +"@parcel/utils@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.448.tgz#c1f21fc92f681da530ec3fb778cc1cb8432bda17" + integrity sha512-MrdjG8zTidg0YkgBCbsk7z74agA1TY2FTXNqMWAH1mPvMePsn3Cz5Xwt131JtOrul5we/HZszObRz/S5rb+pag== dependencies: "@iarna/toml" "^2.2.0" - "@parcel/codeframe" "2.0.0-nightly.447+3df3153b" - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/logger" "2.0.0-nightly.447+3df3153b" - "@parcel/markdown-ansi" "2.0.0-nightly.447+3df3153b" + "@parcel/codeframe" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/logger" "2.0.0-nightly.448+61001140" + "@parcel/markdown-ansi" "2.0.0-nightly.448+61001140" "@parcel/source-map" "2.0.0-alpha.4.16" ansi-html "^0.0.7" chalk "^2.4.2" @@ -2932,14 +2932,14 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.1" -"@parcel/workers@2.0.0-nightly.447+3df3153b": - version "2.0.0-nightly.447" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.447.tgz#b5ab0a096b7bb18fdcaf1a61c43ffe875454be59" - integrity sha512-Ytgv5KfLzgouneaASrLWuAPGpbdPnyWyZimgjC8BpNvn4pSzFJ/TUKI/Yswhp9RbH6/lwT6efuwPOmGFrz3wkQ== +"@parcel/workers@2.0.0-nightly.448+61001140": + version "2.0.0-nightly.448" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.448.tgz#4a202add2214dc7468dcf313d8cdc760b1c1479b" + integrity sha512-lOiRhUW+B2hA6bZeoNOKPASgKj97+w50o0yZk03i1C9ohIHLhC8u2L2Ze/KqII8cjrVcK+skUfvNZ6UbZ+V3Cw== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/logger" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/logger" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" chrome-trace-event "^1.0.2" nullthrows "^1.1.1" @@ -10587,19 +10587,19 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -parcel@2.0.0-nightly.445: - version "2.0.0-nightly.445" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.445.tgz#bd76f4ace9455cdbda6938deee49366f72480379" - integrity sha512-i2FZrDKrNsmIw/Dwqs1MNXKjakymP62ZM/31gtEfdFlfRh/HJLxD8qVHbVW0q7fmhVD33dT5mtCuSTxAiqDQHg== - dependencies: - "@parcel/config-default" "2.0.0-nightly.447+3df3153b" - "@parcel/core" "2.0.0-nightly.445+3df3153b" - "@parcel/diagnostic" "2.0.0-nightly.447+3df3153b" - "@parcel/events" "2.0.0-nightly.447+3df3153b" - "@parcel/fs" "2.0.0-nightly.447+3df3153b" - "@parcel/logger" "2.0.0-nightly.447+3df3153b" - "@parcel/package-manager" "2.0.0-nightly.447+3df3153b" - "@parcel/utils" "2.0.0-nightly.447+3df3153b" +parcel@2.0.0-nightly.446: + version "2.0.0-nightly.446" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.446.tgz#e40357f1e4a575b528c9497000c0a32d2c557590" + integrity sha512-EJIzoudyOn2KafmgcuSFQnqzKLWnQR/tpjdf7+E+vhu9Mwvu1X+fYmsGA7OAGRVWCx18dKwHCrgSDj0GQBpMbA== + dependencies: + "@parcel/config-default" "2.0.0-nightly.448+61001140" + "@parcel/core" "2.0.0-nightly.446+61001140" + "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/events" "2.0.0-nightly.448+61001140" + "@parcel/fs" "2.0.0-nightly.448+61001140" + "@parcel/logger" "2.0.0-nightly.448+61001140" + "@parcel/package-manager" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.448+61001140" chalk "^2.1.0" commander "^2.19.0" get-port "^4.2.0" From d12fcd31ecad03e8e8721e0c64241362d853aa71 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 15 Nov 2020 00:58:39 +0000 Subject: [PATCH 29/41] chore(deps-dev): bump parcel from 2.0.0-nightly.446 to 2.0.0-nightly.447 (#11476) Bumps [parcel](https://github.com/parcel-bundler/parcel) from 2.0.0-nightly.446 to 2.0.0-nightly.447. - [Release notes](https://github.com/parcel-bundler/parcel/releases) - [Changelog](https://github.com/parcel-bundler/parcel/blob/v2/CHANGELOG.md) - [Commits](https://github.com/parcel-bundler/parcel/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .../@aws-cdk/aws-lambda-nodejs/package.json | 2 +- yarn.lock | 920 +++++++++--------- 2 files changed, 461 insertions(+), 461 deletions(-) diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index 40d6d3d93dbce..8dcc7caa033d9 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "delay": "4.4.0", - "parcel": "2.0.0-nightly.446", + "parcel": "2.0.0-nightly.447", "pkglint": "0.0.0" }, "dependencies": { diff --git a/yarn.lock b/yarn.lock index df2e87a342527..9e50ce03d754b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2159,128 +2159,128 @@ dependencies: "@types/node" ">= 8" -"@parcel/babel-ast-utils@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2070.tgz#ada4316f5ef2df8ddd795362383fc365dbd1629c" - integrity sha512-4NMO2W90IcQd8U15RhYPp8v33YekcKS4zqZELF8sdI12Iu5DdN5llo8mnAn2bRNZ/s3IK6RFrpkqvZndKTr9wQ== +"@parcel/babel-ast-utils@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2071.tgz#e2f0f84f9da701debb36d412fbe9b9f0a793f261" + integrity sha512-Y5qKBqvneFuDEMT0G9SZlbxJz5dEyF1+BIFyQC01zydNCzbrff/BVyLsEzFRBthSefzW6wUfTKnxUdWcpygTeQ== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/babel-preset-env@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.448.tgz#f90703841f0ff19f2a0408d77e290ff6dcdca454" - integrity sha512-9pGTMjIV7l2qLDZdXhLFfbVUir6osHMCD4qPm746D2dHFTm0FlGefyiLN2b52ky8CfNixrfxX2qwpjaK7CdOuA== +"@parcel/babel-preset-env@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.449.tgz#90b382dc53f040585a7f69b18c9c56003b24e7cd" + integrity sha512-xoUBvWrkft85Ch9bai4vLytgUeYshHJS/jRGJgbhaa4Vle6/R4QfP4i9mmq/Ai3Wbk2iErznlkFVS9T4gCQI/g== dependencies: "@babel/preset-env" "^7.4.0" semver "^5.4.1" -"@parcel/babylon-walk@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2070.tgz#3064eb2f8da6a8c88cd85a795898258f1f3292b8" - integrity sha512-XPiOe/lWsWkvfeEbXPHgYldGOnpuR1FhMEXgH6RKa9ZBrGUWBDdC3KuY9AFwxDx5TVZGZxHmuV4LgOE7wpwqSw== +"@parcel/babylon-walk@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2071.tgz#f4d49163214074d2cd2bbc43cd2602eaf993cb53" + integrity sha512-MXStP3yWHGCY2nRGi6kh9ezeS3x9ITUCZn0zX80TJc183I/Cz1PHcJKqeS0lwXl8VtPFqDvjXVqoSBY8UCFQ9g== dependencies: "@babel/types" "^7.0.0" lodash.clone "^4.5.0" -"@parcel/bundler-default@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.448.tgz#295cf5e8001f67d593695939f196f0117dda0cfb" - integrity sha512-CIrn1pem9aEdKFeCzTNrRcjqC3W2ASIWCt1Aps73QWUjwmL+TUwDYQ/CuLSNpTUhfG0no4lZqPnBLwAcfoKZRA== +"@parcel/bundler-default@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.449.tgz#1898eb0a5b2bc42748a1b56eb695787ee4d808dc" + integrity sha512-92vgvqsBKPSamstAcfAkKDLCbw5r2IP9FL6PVSb0u6gmCuOKCUMM4JUtoiAWm0njSSmW1B3Zqtzbhfu2JlNflQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" -"@parcel/cache@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.448.tgz#9fe492e17113df4494605fb475e9ec374e73fdfe" - integrity sha512-Q6Fbxpxc55dK/qz/Uv/uKTGcHoYLLQrHqRjK2K3xx22CYUzmyoXhXFlkpyEjiEVMW83USS5aAScEEX469qV7nQ== +"@parcel/cache@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.449.tgz#8d3cbcfd79657fc8a83a8fa920b14e985b57e878" + integrity sha512-SYtpAKL4+AuHINgxfqrKwdG26jxsAJgeETpk9ILm9FvwOw40H9ImktNYIiT5dYaehpmuOl35msVlkocNWWHOjA== dependencies: - "@parcel/logger" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/logger" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/codeframe@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.448.tgz#a4c2892a1c75ef49d3a4891e6e82a328a86b78e2" - integrity sha512-/m8vL2PYfc7v9QT9+lBYywQkM/oKHm6FnJxwDCIyxpwU+HSn9oeL8YQyEMG25hWzAZ/c9UK3chPk206JtHJ3iw== +"@parcel/codeframe@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.449.tgz#77c7ba848cdef8dd7cedfa122b422acf824fc821" + integrity sha512-GrA41h6DCM9zTwo0LRu6aWCoFhlAVIB5hsZO1i6GcKrl9hb5RxRWt56YSPdigN67S4FCY0XyfrS6M98yaHrb2w== dependencies: chalk "^2.4.2" emphasize "^2.1.0" slice-ansi "^4.0.0" string-width "^4.2.0" -"@parcel/config-default@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.448.tgz#e625d9ca0e07deeb3b1d8b2a45786ea81630e962" - integrity sha512-4PG03VHrqxJaczDQBoBbT1LP74RIgoBf/ZVI/5NxywiDFcUmTRptK79gQTpTGEqOKr16SKGtNcOfBHBrnEc2iw== - dependencies: - "@parcel/bundler-default" "2.0.0-nightly.448+61001140" - "@parcel/namer-default" "2.0.0-nightly.448+61001140" - "@parcel/optimizer-cssnano" "2.0.0-nightly.448+61001140" - "@parcel/optimizer-data-url" "2.0.0-nightly.448+61001140" - "@parcel/optimizer-htmlnano" "2.0.0-nightly.448+61001140" - "@parcel/optimizer-terser" "2.0.0-nightly.448+61001140" - "@parcel/packager-css" "2.0.0-nightly.448+61001140" - "@parcel/packager-html" "2.0.0-nightly.448+61001140" - "@parcel/packager-js" "2.0.0-nightly.448+61001140" - "@parcel/packager-raw" "2.0.0-nightly.448+61001140" - "@parcel/packager-raw-url" "2.0.0-nightly.2070+61001140" - "@parcel/packager-ts" "2.0.0-nightly.448+61001140" - "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2070+61001140" - "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2070+61001140" - "@parcel/reporter-cli" "2.0.0-nightly.448+61001140" - "@parcel/reporter-dev-server" "2.0.0-nightly.448+61001140" - "@parcel/resolver-default" "2.0.0-nightly.448+61001140" - "@parcel/runtime-browser-hmr" "2.0.0-nightly.448+61001140" - "@parcel/runtime-js" "2.0.0-nightly.448+61001140" - "@parcel/runtime-react-refresh" "2.0.0-nightly.448+61001140" - "@parcel/transformer-babel" "2.0.0-nightly.448+61001140" - "@parcel/transformer-coffeescript" "2.0.0-nightly.448+61001140" - "@parcel/transformer-css" "2.0.0-nightly.448+61001140" - "@parcel/transformer-glsl" "2.0.0-nightly.2070+61001140" - "@parcel/transformer-graphql" "2.0.0-nightly.448+61001140" - "@parcel/transformer-html" "2.0.0-nightly.448+61001140" - "@parcel/transformer-image" "2.0.0-nightly.2070+61001140" - "@parcel/transformer-inline-string" "2.0.0-nightly.448+61001140" - "@parcel/transformer-js" "2.0.0-nightly.448+61001140" - "@parcel/transformer-json" "2.0.0-nightly.448+61001140" - "@parcel/transformer-jsonld" "2.0.0-nightly.2070+61001140" - "@parcel/transformer-less" "2.0.0-nightly.448+61001140" - "@parcel/transformer-mdx" "2.0.0-nightly.2070+61001140" - "@parcel/transformer-postcss" "2.0.0-nightly.448+61001140" - "@parcel/transformer-posthtml" "2.0.0-nightly.448+61001140" - "@parcel/transformer-pug" "2.0.0-nightly.448+61001140" - "@parcel/transformer-raw" "2.0.0-nightly.448+61001140" - "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.448+61001140" - "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.448+61001140" - "@parcel/transformer-sass" "2.0.0-nightly.448+61001140" - "@parcel/transformer-stylus" "2.0.0-nightly.448+61001140" - "@parcel/transformer-sugarss" "2.0.0-nightly.448+61001140" - "@parcel/transformer-toml" "2.0.0-nightly.448+61001140" - "@parcel/transformer-typescript-types" "2.0.0-nightly.448+61001140" - "@parcel/transformer-vue" "2.0.0-nightly.2070+61001140" - "@parcel/transformer-yaml" "2.0.0-nightly.448+61001140" - -"@parcel/core@2.0.0-nightly.446+61001140": - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.446.tgz#7e3da2766dcfcf75fc196d348ad727a2e827a737" - integrity sha512-+dNgVJzZyknoSaHOm826ShIZIWtW8TK0+C0Jiv75feqg91l3K6aqBhlTzuIbWkbF8xLVssPO2xK6WTJJY3J1NQ== - dependencies: - "@parcel/cache" "2.0.0-nightly.448+61001140" - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/events" "2.0.0-nightly.448+61001140" - "@parcel/fs" "2.0.0-nightly.448+61001140" - "@parcel/logger" "2.0.0-nightly.448+61001140" - "@parcel/package-manager" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" +"@parcel/config-default@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.449.tgz#0b34f279469c3cf5b343da369b7c77b5472992c5" + integrity sha512-5gsByLMQbUmKAtLf79diY4AcP2mTkMd2ljuLZ6oJMNDL8viqG0pCFvp88KBC/xKg8NpU5gvj2mLrwG6pkOzu+Q== + dependencies: + "@parcel/bundler-default" "2.0.0-nightly.449+837d1fbd" + "@parcel/namer-default" "2.0.0-nightly.449+837d1fbd" + "@parcel/optimizer-cssnano" "2.0.0-nightly.449+837d1fbd" + "@parcel/optimizer-data-url" "2.0.0-nightly.449+837d1fbd" + "@parcel/optimizer-htmlnano" "2.0.0-nightly.449+837d1fbd" + "@parcel/optimizer-terser" "2.0.0-nightly.449+837d1fbd" + "@parcel/packager-css" "2.0.0-nightly.449+837d1fbd" + "@parcel/packager-html" "2.0.0-nightly.449+837d1fbd" + "@parcel/packager-js" "2.0.0-nightly.449+837d1fbd" + "@parcel/packager-raw" "2.0.0-nightly.449+837d1fbd" + "@parcel/packager-raw-url" "2.0.0-nightly.2071+837d1fbd" + "@parcel/packager-ts" "2.0.0-nightly.449+837d1fbd" + "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2071+837d1fbd" + "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2071+837d1fbd" + "@parcel/reporter-cli" "2.0.0-nightly.449+837d1fbd" + "@parcel/reporter-dev-server" "2.0.0-nightly.449+837d1fbd" + "@parcel/resolver-default" "2.0.0-nightly.449+837d1fbd" + "@parcel/runtime-browser-hmr" "2.0.0-nightly.449+837d1fbd" + "@parcel/runtime-js" "2.0.0-nightly.449+837d1fbd" + "@parcel/runtime-react-refresh" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-babel" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-coffeescript" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-css" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-glsl" "2.0.0-nightly.2071+837d1fbd" + "@parcel/transformer-graphql" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-html" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-image" "2.0.0-nightly.2071+837d1fbd" + "@parcel/transformer-inline-string" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-js" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-json" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-jsonld" "2.0.0-nightly.2071+837d1fbd" + "@parcel/transformer-less" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-mdx" "2.0.0-nightly.2071+837d1fbd" + "@parcel/transformer-postcss" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-posthtml" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-pug" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-raw" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-sass" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-stylus" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-sugarss" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-toml" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-typescript-types" "2.0.0-nightly.449+837d1fbd" + "@parcel/transformer-vue" "2.0.0-nightly.2071+837d1fbd" + "@parcel/transformer-yaml" "2.0.0-nightly.449+837d1fbd" + +"@parcel/core@2.0.0-nightly.447+837d1fbd": + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.447.tgz#ddf02b86f3a62b5f74259d9d97703592d8797ea6" + integrity sha512-UUL9+mytJo48Uze954POXkWEnv4l1NuPNFdP4FKunyeRSQp4hK8jBMFctLDigVYXXs/pQ8q0pxDIkWfucf86dg== + dependencies: + "@parcel/cache" "2.0.0-nightly.449+837d1fbd" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/events" "2.0.0-nightly.449+837d1fbd" + "@parcel/fs" "2.0.0-nightly.449+837d1fbd" + "@parcel/logger" "2.0.0-nightly.449+837d1fbd" + "@parcel/package-manager" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/types" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" - "@parcel/workers" "2.0.0-nightly.448+61001140" + "@parcel/types" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" + "@parcel/workers" "2.0.0-nightly.449+837d1fbd" abortcontroller-polyfill "^1.1.9" base-x "^3.0.8" browserslist "^4.6.6" @@ -2294,72 +2294,72 @@ querystring "^0.2.0" semver "^5.4.1" -"@parcel/diagnostic@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.448.tgz#a72226caebd76e6825bd85c3fe387a7400724a8f" - integrity sha512-ZMUHUFF/r7BtJWJZY5yKLm+9vt9Hk+YgXwOMTkVSwPvP23+bRkfSviJ0VlP0uPkf156X+sCJ+B1VV5ciVmz8NQ== +"@parcel/diagnostic@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.449.tgz#5ea6f709fad1376ae833497b507422661115a95e" + integrity sha512-HUR5X9cDjBpTeWzB0kBhudv6enSTBPng1f5x2SJUnPKIK1EdpEKGXIei4xwvTH1Tz0oIHcIVhrx2k4AZtaALPg== dependencies: json-source-map "^0.6.1" nullthrows "^1.1.1" -"@parcel/events@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.448.tgz#2f7ab992fc408466b20dbfac6ba52092acd39b61" - integrity sha512-mtI51poyfkI+VDIsq21PRvHr0v98PTDxOJp/r1j5Pw9Tb4XGA+nVXhTakxYtHylOTxKVzDQD+0EDHBPVLWE5xQ== +"@parcel/events@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.449.tgz#e7e41c368c7f1357e118c1da4264e7add57b6475" + integrity sha512-gOGHFGWW3tvBXSmXj6fKGfCTsjVV0KHrka5mL0vrNpi6n0LUQgpPtsZJokyQy91U/B5neUtLX/ubQT0gordqjA== -"@parcel/fs-write-stream-atomic@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2070.tgz#d81f8e474b053d87a3dda403a00ed00ce4819ff2" - integrity sha512-lFRZn69fOWdDwZi7elHDS6vuUN8sCsvsKJZnLvZwMaQqvdOrjX5J5drlwhqTknRUr9lW38aq3+j6FJ6ZRpyF4A== +"@parcel/fs-write-stream-atomic@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2071.tgz#e239927e1d6b55a7b8ae2445f3839483752e75d6" + integrity sha512-Liv3eXtB5Ap/HvLyAmbBNdil9K33YlPJkDcTQjji9vt9PS7K53rX4woHIgdBvFmzOk54jZMbBgfwwxr1Z3Qu1g== dependencies: graceful-fs "^4.1.2" iferr "^1.0.2" imurmurhash "^0.1.4" readable-stream "1 || 2" -"@parcel/fs@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.448.tgz#4f9fd79f9c484a3a36aa64e800a45b6f865ccc85" - integrity sha512-UFQhgB8+YL645RXoWSu0hbCMxs2j9XhYcVF5jpHPEYAwWcvM0buoc/DEdURFqDWHuZSzH9MDXIlLkbBSqmlygA== +"@parcel/fs@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.449.tgz#07822ea3db9a558015db223fa0dbb1edaca6a449" + integrity sha512-k2MiwJr0NSodBUKud1h2cxYurJXgscrYpFDZTPYnyoJk0YBPHZcjmQBivXkX0ImH9MwOYIpRg/7dPDwnSaykXg== dependencies: - "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2070+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2071+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" "@parcel/watcher" "2.0.0-alpha.8" - "@parcel/workers" "2.0.0-nightly.448+61001140" + "@parcel/workers" "2.0.0-nightly.449+837d1fbd" graceful-fs "^4.2.4" mkdirp "^0.5.1" ncp "^2.0.0" nullthrows "^1.1.1" rimraf "^3.0.2" -"@parcel/logger@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.448.tgz#7dc2892121f1d3dab1e81f9916ee6bf8465a29df" - integrity sha512-N0tCrbhvqPlCjDCCrlZMpqXXSbfKLUr7XRrgD8dkNZS8HnQiq9n/pnjPf9igs8cjqjtwMB8sY2b5JCTYvsKyBA== +"@parcel/logger@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.449.tgz#0a088eacaa32fca33fc835d382feecda86b3d54c" + integrity sha512-ZEuV2tx3aPTW/Ceo2SzS9cQbyNPmkJHKESGwFx7SWke2hZaIsyh6BqgDNGpnNkzK6mD2fgMzgNajb+FeH0IJww== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/events" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/events" "2.0.0-nightly.449+837d1fbd" -"@parcel/markdown-ansi@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.448.tgz#d1b85e6d1a464f4688a34cb6f7836628dad1febc" - integrity sha512-7RqTHs8BFHc3/ykZtznPoEitXcKrWeeL4qwrQDhwLHq1eZHEIP4O9YnWnhYwf0EB8S1p8i5dMhxfBdAkMFsZ9w== +"@parcel/markdown-ansi@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.449.tgz#27f75e203b4fa67bebfb0b34c4951319e32d4ea3" + integrity sha512-MaygzYxLEc9IzIttqe+W8W9XpgsthoSiPgkJOpWlY7ICvKr3yHAlbmPgawbbNpMukjSzqOrcgDTwe22F/wV5ww== dependencies: chalk "^2.4.2" -"@parcel/namer-default@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.448.tgz#60271e4a23e9166ec0806bacbc14675716839c2b" - integrity sha512-qHLuDrFAmnY0ZWL29tVTo/5Z6RyC3athnc99QNlQm8XILgCLy3rvH05JcUqbw+YHhfhfz6k+OTrrJFRZPhGiiQ== +"@parcel/namer-default@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.449.tgz#448a1ad3b0dc38f0431cf1ebdee8403d73d05519" + integrity sha512-KVskg+otIp5P2hRnezWqmPMN5h44Bgh2pJ/1gcktfsKJUVygYeb1oPz+4Z+l32dkYlLlR05A0/+oZTzhCb0KcA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" -"@parcel/node-libs-browser@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2070.tgz#188bf0e01b89e9d96f999e6a309ab4494d512c80" - integrity sha512-4vAZKdBTlg25h0bliLyFbqFP6WHZdg9YyfOkp+lBpIqUGHuM+NZ2ZTsH6UFg5A/EvGa/xca8/Ey3SHB7YXNDXg== +"@parcel/node-libs-browser@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2071.tgz#08a3a1de1e3d3c4fdab4e302abbbc325c0e604e0" + integrity sha512-L+0XNhMbQUvHyra9X3vvV+k2SnO5YPlHvew/6sClQNh+osXWz/FW/Uxi0pVwyrjqJAPS+0PQ4xV8CynvqYZUTg== dependencies: assert "^2.0.0" browserify-zlib "^0.2.0" @@ -2384,71 +2384,71 @@ util "^0.12.3" vm-browserify "^1.1.2" -"@parcel/node-resolver-core@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2070.tgz#c30381c8e67241ee3fe53a1840f4c6de1d6f36da" - integrity sha512-W+pORF950wI8PTZn0oT3atTiiH3slIn2li8QKJ7igzQjPLcGJLkuJ27amcT5D7jZP7bsjg2SCcU4gT94yMGKzg== +"@parcel/node-resolver-core@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2071.tgz#a725fa191419b2e1a64ef970ac1c08858c822cc3" + integrity sha512-3W1qH5QgExDLd82EJMF9EJkAd7vSN3B7u554CKjCnrv6+oUwwWYySI8o8pdPZNpDhlXx+amUhg76IMPfqfxWUw== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/node-libs-browser" "2.0.0-nightly.2070+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/node-libs-browser" "2.0.0-nightly.2071+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" micromatch "^3.0.4" nullthrows "^1.1.1" querystring "^0.2.0" -"@parcel/optimizer-cssnano@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.448.tgz#3538c50740bb815e62bcbef8eef4087a6508ddfa" - integrity sha512-4R8euOaGFq+4Vcl8mGHIAskPePTQZGvO77W07h4wgwRIq7pmBHJGUfzuzmNeXAwZACMbq5vxCIU85dxRFPpenA== +"@parcel/optimizer-cssnano@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.449.tgz#f22c22863df7b23a70fab857e89377fd2376ce3d" + integrity sha512-2iuro2UrzDbfJPgke0CpwmQpR+Nf9NiiUV31JvdM8m2uBRafhMVQV6DXlFUwqfvFu4WkBfgvt6tSOZtpaobKGA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" cssnano "^4.1.10" postcss "^8.0.5" -"@parcel/optimizer-data-url@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.448.tgz#317ffb418cc8f49bf57260bfa7472e9cb72b31a2" - integrity sha512-yf7OeMqYAeVf9X2J0wNiCKKklyfR4HgtNgm5GZoMsSmrvgvKjRGgFzqOkPp2GZWzKQn8F9UjuBbBleDzSM6nJw== +"@parcel/optimizer-data-url@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.449.tgz#afa33f9cc38b6f4f9b56b39e951529f5883f4549" + integrity sha512-RGFQ5KAv8/U05WnKA11vw7olWLAY5INuwIPZA22e6j1pr5mWNB0kdyHu3WgU4dAVmz7J7KcwWtPrBx+PgKvE6A== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" isbinaryfile "^4.0.2" mime "^2.4.4" -"@parcel/optimizer-htmlnano@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.448.tgz#10766700e0d023e1f14b655940a3f1d881af5ae5" - integrity sha512-uY7IJrlo9DqUnf9LpG4B73BSEah6KRQxGaHo9jPkeM4/V+lQwjVoW1GZIbGc2MO1CKy/8jchbIInuymkN97T7w== +"@parcel/optimizer-htmlnano@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.449.tgz#30ebdb834b2ac35fbd2ce8570e564c5c47a303f8" + integrity sha512-da4/qr+LlZn/QEyh+NAhkLY1rz64NjnHUR/49UweJSCmtTK4WKPmByawQPyg/++7fWVmeqUu39bKeZW7yzsqGA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" htmlnano "^0.2.2" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/optimizer-terser@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.448.tgz#f2adf245de3de239c484994750f9e80687c291b1" - integrity sha512-uZEog58leFd7P7ezlAznv7r+45tUM6P2G2b5XH6tP6oiKaYyjw77n25Dnd22/mWU8CvPnVyQdsotR4AScgniig== +"@parcel/optimizer-terser@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.449.tgz#7834577cb4a87071ae99d82d4ff1bab0853fdb80" + integrity sha512-WpGIbULuwIPhxbPmJ7do1fyxxmhY+aluQomptwopZsL9tPB4jqceGH3LHPbghn+r25qneaQKvwt5mjtrOHcYvg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" terser "^5.2.0" -"@parcel/package-manager@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.448.tgz#2cdda14e0a51222ad16c13eea49f68f73412b144" - integrity sha512-e39qTXU5OGsXB/607JZslwFJhyW+wLxvvKnreYDXp+MW/R/klkzQd4TuAXdF2aqDtcaLFvug4HRrK2rji5YC4w== +"@parcel/package-manager@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.449.tgz#3374d94997d48bc55f0c2c284a4fdde3c154eccc" + integrity sha512-hhBg3CZSe07dGAddE8Ft0ZP1fbaJ1v3jMgWSIO3uMwVYCIHiOs2KkIqMsiFaqlMesbeEQrSR0QiovTyUa3FGJg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/fs" "2.0.0-nightly.448+61001140" - "@parcel/logger" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" - "@parcel/workers" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/fs" "2.0.0-nightly.449+837d1fbd" + "@parcel/logger" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" + "@parcel/workers" "2.0.0-nightly.449+837d1fbd" command-exists "^1.2.6" cross-spawn "^6.0.4" nullthrows "^1.1.1" @@ -2456,91 +2456,91 @@ semver "^5.4.1" split2 "^3.1.1" -"@parcel/packager-css@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.448.tgz#cbb079321c319fa07025c4569f946fde06177030" - integrity sha512-gEx4nU6k8sAqkxBTnCbbTr6VolI7flbPcG00GXJrukmthKjuZT1N4jBkQHZIXP3RvgxbcKXGzzEKkU/v3SvnRg== +"@parcel/packager-css@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.449.tgz#961e747e88dfcaf7037454887412b57f10532a4a" + integrity sha512-QPb67kErKKIVohmFKNiH9oysW/NoLRJMgOeZXmXzQ8wT2IYHdKmcBuer7DcWKegU4dCkrCd7IRx8dSnQcoQqAA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/packager-html@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.448.tgz#9f5bcd24c8c24e88b00893ac20a0977783828bed" - integrity sha512-NA3fHpKHYBpfV5KuZzi0SD6gndZbzgSEld+8s3kxSfiO5kJtdh8tWCtGhr5Wx0CWAEbZBHd6c6AJUHCS5HlXUw== +"@parcel/packager-html@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.449.tgz#3a8e07496ae23da802a217ed6c82df5b9529a0e1" + integrity sha512-x6IWTU4w0Mfc1m8jcHUradSM9XrRX2umPk7QjhQ5X+v07N0diBpPoqnVSd4ujO29VYFHjh9by5dm3uEkF3mBLg== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/types" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/types" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/packager-js@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.448.tgz#aa49cd99b2f7fcbc5ba9a835aeb0c90bc3d428c6" - integrity sha512-LlplwBJaxJvyDuE5ijb5UNLRwLNHg3UKTrt12K0k6hPVkKTjNr3MKs0w2omHpjC7pKS7SZdDE9JFcxG4Jx0bBw== +"@parcel/packager-js@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.449.tgz#ce9e8c165c8f3f0c2ba8c447cc3b55c523c892e0" + integrity sha512-D/ixE0TzZ+Iq7t1gSsSWrh/HUzohJ2eBggxQnim0E/ymkj3TxuGRh4NLTSweThEiA2xyR7EVeYhM6aq4rZp/pw== dependencies: "@babel/traverse" "^7.2.3" - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/scope-hoisting" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/scope-hoisting" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" -"@parcel/packager-raw-url@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2070.tgz#a64aa1e712b6f51ad51b8d9f3e3c9ea6661a4e6b" - integrity sha512-ani2TWgt9xRDwOTcuJGwQCwigzDrvLD8M3Xk0WW4Cy9Ncf9Yi9LtrOEV6nmT4zmJyuSymvMpbAI7or1G4DhrNg== +"@parcel/packager-raw-url@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2071.tgz#6adda25e448f0edbf707b54a75129b21a4c99c44" + integrity sha512-sNAUDE35DCe/0yI3jjDC8Lfy8RY5xxT0RRBII89aVx2VxhpEqSAGSLw0xHSh2OsWPBxvFaLzGbyyLZ9TOe/Y6Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/packager-raw@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.448.tgz#8ddc7e4cd10f58dc89f5980b12309baee5b589a2" - integrity sha512-/oo/55HTmpcXo2RtDz9XuZodAorS59gaGJIALfcRAN6BeCS0MbbuSlIuB9txcElTal5YiKH2orkyUN57KL74Ng== +"@parcel/packager-raw@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.449.tgz#d3e14dc2d8c80d4ace8a01ce7a1718479c74dda6" + integrity sha512-PC5amaAv6cVzkP+CUDpgm58IKH0fS6AEHEJKuXbCUcLbYmnaDh2JUjDb2q6pXbTT7uITNUtC62FHTtXZdyHWCw== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/packager-ts@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.448.tgz#322e5c0339ae3fec5a5199cbefbed01ea476724e" - integrity sha512-aUVo0j7+WBkIw84Npoeki7SL+5kHsdnq/kBHmpzVdSbbA+0/5uPcnyQQLxOikxSjFaHlwYWtMjRcnTPlVT26BQ== +"@parcel/packager-ts@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.449.tgz#8970151da387141a7d0328a3d41c7d1e09b545f5" + integrity sha512-GxxdUaHX6BvxFST7UEK1oJF/btaXfv4cBMixuA4Ii+ENvcISh/X4bhA8KlfKoquyFo0/58Enq0zo6u/psjkBlA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/plugin@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.448.tgz#421df2a9a994d32c794926ba9678f57e73bbc26e" - integrity sha512-OAzSe3lJcemLF3tlxcbDh8r9DmkYWq19cFkmL6ycWUWoFsFTSPF2hx9LTARKWdbnVKGTtkvXVfDWW9ns75Wzbw== +"@parcel/plugin@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.449.tgz#3299648d71296068a2f259803e241fcbcc034b26" + integrity sha512-FocqYaPUytyrC5AE1aYszb+e1gdsFAecHPgJYc/iEnVwM+eCIRArVbLqvudZoFBTcSM26F2uyBoIjMtiqhWpmg== dependencies: - "@parcel/types" "2.0.0-nightly.448+61001140" + "@parcel/types" "2.0.0-nightly.449+837d1fbd" -"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2070.tgz#6c641bd74da01ea35f4dee4d422ad913dc159504" - integrity sha512-aL0FsrTPN4p16cui1zCk0OWZXhLMms3ZRHh+w+kWKPIVkjjqG1pwRWYjo0cBO0dJb94T79kRA3NeuteV2QGVaw== +"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2071.tgz#f4ff3848c0957c37dfe2c5107822268f86fce51e" + integrity sha512-V201PqmBwMy4JjuRaCDtMjKeTcQFB8QHaGRAtudD+FI2ulsms3m0yMTabmRrt2VAQH97gVF8HtqkHF5aKDU9rA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" -"@parcel/reporter-bundle-buddy@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2070.tgz#355e45650a7d3602bf2bc66648277841427eb5e0" - integrity sha512-N/ctv0QmDZtm1PDxCJZebS+RgKSgQlM5kp5dAmIw29gxPvJarxI4y0K3IQaSf7PqJ9TXxB2AthToJOMO5lMD4A== +"@parcel/reporter-bundle-buddy@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2071.tgz#a3a93797ec9554da98292f960975565296b88a72" + integrity sha512-/UfvDyhwqNP8AoDrvFMkpKTZIJVKDTr7sRi/2gxxnhf2LW+qoLOpSsWSWue679tTntOKCqMhAUI/SS6YlNI0rQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/reporter-cli@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.448.tgz#50e1c76be7294d6d4cfacedd7cc940dde17f9343" - integrity sha512-SiinYZeuy+QBvWrw9NVQWi0vddxnB3VNFQ9Uk24V4bXeRMol6QfzeDWR6myErpdxdyWY08wdzwv+m+grWXL1wQ== +"@parcel/reporter-cli@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.449.tgz#4d8df81dc6ad464b79c304ee4cfb1b52629af29a" + integrity sha512-GsgC96hWZPqVVU6xqj4o1ddAhSM+EoEu7LTm/41T6tyW3Qv9OmfprsKUbSMK+48HZLL1UVJ0mEK/T4f7K+dg0Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/types" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/types" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" chalk "^3.0.0" filesize "^3.6.0" nullthrows "^1.1.1" @@ -2549,13 +2549,13 @@ strip-ansi "^6.0.0" term-size "^2.1.1" -"@parcel/reporter-dev-server@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.448.tgz#bf36522a9118c68b07ce9cd0b9c5de984b2ea4fa" - integrity sha512-M3X+/d9FxGisqx6dxUt58AD0vr/a9PoJRfhsoN8RZq+sIDFzQjbXrqTPBO7OjcDSbxBTP5fKOWMDmx6qwHxyxw== +"@parcel/reporter-dev-server@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.449.tgz#5ec9ec25d3696f52ccc8c92018d78caff470e070" + integrity sha512-49s+jUBClCqdWMNTk2IvpAoRWf2axjXrB615mO5WGeVqBEZIHaSKA2WpfsaKb4mbJYmqNGKrBZbUqwK0lA2YlA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" connect "^3.7.0" ejs "^2.6.1" http-proxy-middleware "^1.0.0" @@ -2563,54 +2563,54 @@ serve-handler "^6.0.0" ws "^6.2.0" -"@parcel/resolver-default@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.448.tgz#a40451311860b83ec130c8ed49cc3a27e1f857fe" - integrity sha512-+R1i+DoAR1Magj5biYSV3eFN+Imu51qHao84eLp2A8eUfungngoQ9FE30bZHIvyHj7+QJGMdALomImQd09ic1w== +"@parcel/resolver-default@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.449.tgz#9d3465c225614598b0ab68f62fae0dab4c0d71d5" + integrity sha512-+V9IjjZPhkjCF2GppU/QSlnnQkOLGd3WNvJkRPOEWZtIpVOVy7lzoL9rBPFoE94aHwM0m4BolqyuiYv/6nqTpg== dependencies: - "@parcel/node-resolver-core" "2.0.0-nightly.2070+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/node-resolver-core" "2.0.0-nightly.2071+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/runtime-browser-hmr@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.448.tgz#b5a87e9d7178e2c1a53a22237010af586a1611c7" - integrity sha512-L7VIoTyGyLt6jIMU/W5F1KfvgysS3coQOYvUYt1JKSqhdGH3yh7gB7DNmHpib9fRez7hFvRWqIjnMUUc0zS+zA== +"@parcel/runtime-browser-hmr@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.449.tgz#5bb4f08873193dd4cab8e134ec5ead1066d2509d" + integrity sha512-okbif6vgJ6bMbjGuJk6I/+zBnP/OJeT8eKWii9uvZmN2tZv1MoIgXrXIJdNsUgunBPHur9dozk5K8cO1zTazuQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/runtime-js@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.448.tgz#8de0900812e02b03cf0efe4f0be4ce9001009771" - integrity sha512-oArigY5HHAQaqYXK+TXcIQfsyo5IqoHWC1ZE74dcZv1wAl6wedEcU6ynldLJmX2aE/aA+87UYQR8jpoGQtJd1Q== +"@parcel/runtime-js@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.449.tgz#26c4b28a1f05a26bddbbe95d45c9589048ed2086" + integrity sha512-GSUFxH/XxeN3tAezPOCHVS84NqYUJln2N1W8N8f1HRm1w52NB8VCIeB0mMuM0lGH1GM9le48oAHzISEixLkH4g== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" -"@parcel/runtime-react-refresh@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.448.tgz#f2bb37ed81c60613ea1baacfe085cdaec333b88c" - integrity sha512-+OYBXFxlVpcG2ONCdy6y3QDj9s7T0PbKpxQz6MFT0T28vwhsjMlRD4mts0R5oemKtNSN/gse3HCb4gkMuDXayg== +"@parcel/runtime-react-refresh@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.449.tgz#e3903b5c6dbf46c296966f4787905553f853ea13" + integrity sha512-ltrrakt2uCZ5Q6tDST2l5Ums4KpB9dM0kuZcwa6qJCpn4+YCYb1fVO3VSgk4zIVNhRdVwZspB+TEF2xLlBlWzA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" react-refresh "^0.9.0" -"@parcel/scope-hoisting@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.448.tgz#5b30f89b667447b6bd48dfed7e16f0ec572a349c" - integrity sha512-Zh842WzUMgM7X2IdHBFhdkY3g9WyQ8govjuvtw6jc+7Q69np7MZ8rEB2s4BuNYVpj850QM3laxUZGi64JfuBhw== +"@parcel/scope-hoisting@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.449.tgz#9fbe4b8bf479e7bfc96f076aef0308ae2545058e" + integrity sha512-R3lgrFVUccomYxN/A76qTCqav2+yU2OO5fb6qttUY7d0syQOuj72Vmj6X4djv8XD1wZMVpmGmWumr8if+UdqxQ== dependencies: "@babel/generator" "^7.3.3" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/traverse" "^7.2.3" "@babel/types" "^7.3.3" - "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" - "@parcel/babylon-walk" "2.0.0-nightly.2070+61001140" - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" + "@parcel/babel-ast-utils" "2.0.0-nightly.2071+837d1fbd" + "@parcel/babylon-walk" "2.0.0-nightly.2071+837d1fbd" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" "@parcel/source-map@2.0.0-alpha.4.16": @@ -2621,10 +2621,10 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -"@parcel/transformer-babel@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.448.tgz#cc8b5fcceed090c230be6304fd68084fc5e62325" - integrity sha512-9dPujGq9e90cYA3TM+aupWzw3Yz90PwqrY93KqRKWEkFYiwQed28hMGjS78uJerjnAmfKDBB1HFO/hFSnZf5/A== +"@parcel/transformer-babel@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.449.tgz#099259ef4ac9f02f61cc5c6ff8102d07489345cf" + integrity sha512-BTuOrG892ZmAx7M3jT0WX+2Yxi/bLtbuDWP8SfH9lXgrCJtx6fPObk7mqIrTvdmefKjeLcRmig1nS7XcnFKJPA== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2634,85 +2634,85 @@ "@babel/preset-env" "^7.0.0" "@babel/preset-react" "^7.0.0" "@babel/traverse" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" - "@parcel/babel-preset-env" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/babel-ast-utils" "2.0.0-nightly.2071+837d1fbd" + "@parcel/babel-preset-env" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" browserslist "^4.6.6" core-js "^3.2.1" nullthrows "^1.1.1" semver "^5.7.0" -"@parcel/transformer-coffeescript@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.448.tgz#7273a9a58c2dd933eb8db967373539ee74efb7f2" - integrity sha512-4scl68ppphsAxsh9ad0jgTuIHHSB2ferxRsl8DQBIVF+rTL5q/VoLqwI4jTPmI7RZ77N6ec7M7hwro00MSFipQ== +"@parcel/transformer-coffeescript@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.449.tgz#a1bcf008ec744aa29875081808e6e7f4072b2c68" + integrity sha512-VxpRqifHbgUlNLcJRqcScdcquqSpQ+PUEevZuJmFsGa1SWIFisG0enfSgQL3eI6DbcT+a06tDMwkOTwm9Fx4+w== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" coffeescript "^2.0.3" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-css@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.448.tgz#0af630f67795d02f7a2508e7f05602c80115f8e9" - integrity sha512-vGE4B68Dl8Z8v2Cm3/2z5jjgX1hQHzLbghUNxwrI9YkzqKFsXBrxyeMeaRJMztD1jj4y4v/Dbj5pvY8TWZOpzw== +"@parcel/transformer-css@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.449.tgz#78b87be06020aed3463f2acaa8761c7e535e888d" + integrity sha512-YN3mVmIsNHDpNasxevaY0m9jSJzESyRWIfN4P6LkhS1al69KEWxIOmshGB5EV+r7GJ7MmealZP1x74mjJCzK1Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" postcss "^8.0.5" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-glsl@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2070.tgz#aa0231c37e5fc86738fda62940d336dc749c92d5" - integrity sha512-vB4d7Yu8rL3rM23JfJJ42KWnPZlA/LcxkvSAF+NOwUzhnmd9B6toLPcPM124lg3VmuRb93gSyvACA5WrPIYpVg== +"@parcel/transformer-glsl@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2071.tgz#fe62e491bff66fdc4817895600ba207cff582fb2" + integrity sha512-qfs82sSYbm6CspMvoQczi6Ec7KbvDJewubnxOG0xVA+1RokNbOrpWGXDf6QNhCVy91rPipd+w/stG4y4Qn3ACQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-graphql@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.448.tgz#0060cc1404d5fc82a842cb61396aef79bf7c0021" - integrity sha512-OuCfnz51EMF3jboL/tdg3oUDin2OxIii6Yy8GzVuf7ETUs1Ztx7esVx4eZYTZIDm3y8AuMYasHl57ZIvcUAYKg== +"@parcel/transformer-graphql@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.449.tgz#6014a1ffd2f0d0af3c84b6c8616770c54f9c428b" + integrity sha512-vbsUYTpqLBVXHW0VoKxu+iXjdnwB7BPvxCxhIBa/iaNIZRiMuX5IPovLVY4AxL+9EjdbAN5K93GMP7hcsDxLMQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-html@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.448.tgz#9de1e385b02cbe90258e11d711818a2159daa534" - integrity sha512-1am34PMszyH6A4pq5k/AbDUUP2jR5Z0OlvGUaW4m2lrUSvN+NKyUaU/S+2VpKPrHdfpQJ3h3UmhedxjK+LmZhA== +"@parcel/transformer-html@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.449.tgz#c24aff17cce228fdd85da8604756e1f7165c28cd" + integrity sha512-hr3p6meUM+tZ2xL8NPEnc5b+9TIkAJIUJreMC1wpgcEmj6jqxTsDg0wnWNNP8hyYGE26VSal3aVGpnY+ad+Nww== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-image@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2070.tgz#1d48841ee1863cce6ae0f2338eaf9b38988102bc" - integrity sha512-2LXpxC+tJr17sY0Y67g7G4ixhR8iXQki8tmqcCW8+/f6BTlyU9yaIJ6n8AmkpvXadI9PQ8zsrlDCMbAIzbAb7Q== +"@parcel/transformer-image@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2071.tgz#bc45d8ebe906fa91aa7b8d9a6735c78aad96a905" + integrity sha512-xqM71Gjl5AqTuZCXGw7dzJ7UDmQTJbAAJ/3A5OqOycl1iTPL0c2pAGSUkDRJRIX4380vplAgqYTco+FvBBvj3A== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-inline-string@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.448.tgz#aa92bad18fbb02b1ac505edf4d2cb6358b0bd596" - integrity sha512-o9vcSp3xuvnp7r5mzTfcitT2zCVIA6yVzedfidcRuQSbzhmjC/zzz+mIMnhjWkYkFL955jLG5hp/4yE8r6oIHQ== +"@parcel/transformer-inline-string@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.449.tgz#015aca67e176adb080d324931053c2ce86d70441" + integrity sha512-HSgsZcUhPNY5d55TZDR7N8lMff1yyi7zNw1ONsQyQeRG0POfWA3kMWbCvnAaVbM+VA3+en0fLtpJ4Lurn6T7Mg== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-js@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.448.tgz#503bf70113eee3f08291f8d6843cae1bb13333fa" - integrity sha512-hm5lOGha+Ves/e1+lyK5JxREsqZToRO5W676/Qq60dINQilyiujt3mRwUr+xB2IJKcwT63W1JzmwkN0iOu6SeQ== +"@parcel/transformer-js@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.449.tgz#abd06895e8b3c0f1348f17a28bac9c7e87c2610f" + integrity sha512-5fPgwfW0+mJN4uq6yYHI9nkyGrS4Pg9U0Rc9Td7Fcc1jt82qIGE5LovZSonudw3tqnbpP6oqNEe/J48KdLdpBQ== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2721,193 +2721,193 @@ "@babel/template" "^7.4.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" - "@parcel/babylon-walk" "2.0.0-nightly.2070+61001140" - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/scope-hoisting" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/babel-ast-utils" "2.0.0-nightly.2071+837d1fbd" + "@parcel/babylon-walk" "2.0.0-nightly.2071+837d1fbd" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/scope-hoisting" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" micromatch "^4.0.2" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-json@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.448.tgz#356250f2a7455ab861f0a7f4bd6b820ce0f8464e" - integrity sha512-wGJfMpBNCV3Oz3emEPzk+mGl1i3YR/6V0ptDHrhHlgv3hIafMUew+MCpFsgoBkYPrs98bhhP/3QakfHcnCtmzQ== +"@parcel/transformer-json@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.449.tgz#18c4e9181bf55dd85bbee016427bda3864e742d7" + integrity sha512-2OIxk/Kk1AFj3ZrOK0DztchFFgnxp+sZBejKac8tPGrXO7IgixTKpsW+8wNCTWXdK8ohcg0+eCvIRw8IKfJgkQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" json5 "^2.1.0" -"@parcel/transformer-jsonld@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2070.tgz#ff1c24a0c6dd530f08c83c110b2a50c04771d8ca" - integrity sha512-2cMHUf6mpug/ao5hgn/J9GzfW6IDB4/XLcPJNjvXz2QI7kVJ4Sz6jXf/1kAyw8OLTIyELjFjoxjxRt/r6Ktymw== +"@parcel/transformer-jsonld@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2071.tgz#bb9d432d9efafb17c9832f848644e97e964e8ce6" + integrity sha512-cdbqRIefMSwbxIBsMoLjr1M8V30Bs1BpjdTsQ7gJsc9hMJsx59LdRtOg8Dx6iwyuJwdQrpIYdi1IyaUJVrKsag== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/types" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/types" "2.0.0-nightly.449+837d1fbd" json5 "^2.1.2" -"@parcel/transformer-less@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.448.tgz#b39837ed2301d97c9c8e0544663c9de16ecc4d57" - integrity sha512-OiTugud9sWxZsme4qeaS7g4AZfIhvapCf4Momj6Q9/ECoShZqYVlai6FlR3y+MspYS8ziyQpEeLVA2C90Wt71w== +"@parcel/transformer-less@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.449.tgz#a4798842c463b7f4aa9b6e85dd790db55ef3a41b" + integrity sha512-cknM1CZjcbLIzbaUpi1kp7kjdkGFB7uxX0Dj7MKCVZKXOYFJlwGCycb/DXw1LRw+N4Tc6IjHaIsCGaw6Z7LGOw== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" -"@parcel/transformer-mdx@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2070.tgz#e5a62c3423e744df12261ed606a65a57ea76ff4f" - integrity sha512-23efIf7gQimSu/S8JEQWxhFZozWSdbbYVtTM7L54qJaLhN3yFW0VG1/vKnY7wMJKtaP3K44mmtc/BQjd4HNpLg== +"@parcel/transformer-mdx@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2071.tgz#ff7e77aec3897a9c80ffda3b21145545c9817fc9" + integrity sha512-LjnKXkUI6fTXRnT21uKVTRoPi7d4+o6kBS9O/ojEniDqe97zQ6qb4R2teSS2UuMtxVKWVp2ojXchC+V+frke/w== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-postcss@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.448.tgz#6ff15db706e4aadf0512a49ad2b3863eb5ea49d8" - integrity sha512-qWMmWSAhCZJklLBqNk1Q1dfXcEM2o7RYwyKgOIH9Ch0KOzf7nrkVUSFcoBARNhtzQTQlb6zyD+VI8yeG0Iz/Lg== +"@parcel/transformer-postcss@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.449.tgz#d90d1ac841f253d04308603e78f21c93256b6705" + integrity sha512-QdAKy+dO9VEOAypJ7k75ah29zdPGgzECU7s6NqiAexcoAmgoOJEKQO9b3geVd7wyX7PBa+dHU1N1vnibUhA+ng== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" css-modules-loader-core "^1.1.0" nullthrows "^1.1.1" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-posthtml@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.448.tgz#384e2ff2e177a554253a9f7b9e950ec707dc5aa9" - integrity sha512-uKyHIXwZTRUwXtdbMPOKXqmaPX3t5sQdCDDaPlq9aZBv5cEflDZYN3+t0Na3tXPRcdotbT/vUkpP1kfdPKrFAg== +"@parcel/transformer-posthtml@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.449.tgz#076f3b05d6d02b0391e48de126a8db12af761021" + integrity sha512-wpueXMbZRQxaRPlxP9qyYcJNPtfnVfpRcj2CneJ99gze+1eEO6GmjMdxrr4jq0ejruy+/qL7dTzXwcoQ3LllwQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-pug@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.448.tgz#2991434b5ca082aa1738ba3d86e6c96ae04f9bfb" - integrity sha512-+Tzkd3tnwVoXAWD/ZV58nhBe8c5GuDKHmPHImm1x6KSCPYVhxd3L76wS5BJfP3oxAAZqznSDl61nl7rpDnAlfg== +"@parcel/transformer-pug@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.449.tgz#cdafcb2be4bf3726d8958ff630a93b6b4b804457" + integrity sha512-gxCUN5CM88DpEfo7w9/Rihs93vNAFkeb7kjFSLxVdMWdm7rRc0OBuwBGSkihOZpqalF7r6BVxmE+wEJUp775kQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-raw@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.448.tgz#01e08d920564c82113e18c528e1194f0c16c2181" - integrity sha512-8O8O09UMMelrwe5Lu95u/6xBVrQcrjQmb/Twahjx7hmkd3Q0/AA8MlnGiE26Yyt8fxeL8lVniGaJdRTIaesZrg== +"@parcel/transformer-raw@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.449.tgz#bd7af800b97d7ea45771ff8a0662d51b2e93f736" + integrity sha512-batlnjTd3Nda40r8aWwMjlB6z2I5OHjHHpXcNj12DPJO3amUN/4PU0banRK0WZ6FV8ab7hUnNsQLiC+GGKmW7w== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-react-refresh-babel@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.448.tgz#12ad681cf7679a8f0927a6ed1a55b873a72bd625" - integrity sha512-OwGSYDIHbvzsLG67jOqv1leglXaPqUAHSVU0JbNQGHxZYX6RdKbCLhr1wOEhWn4J+ja8+8uuC1gAdKf8h5nT2g== +"@parcel/transformer-react-refresh-babel@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.449.tgz#53bc3896bc88777115421b8f9dbd0c928493f153" + integrity sha512-qrBbT9jiUsAlEw7Q4qLgPmu7Qx8mc1YONarP06bC3hBv7fDE6nY40++mIpb9kxTwev9/CP0uYKBRyD3LrFk38w== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" react-refresh "^0.9.0" -"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.448.tgz#b4e627df0c9c4e61398cda9e10fc574b20185c4b" - integrity sha512-zwV372zAOK3gakOtwkotCUaBi0WoZaDcxZmNaImcjcXh8CzLMtGypV+i6XesvLrUygeiLnyhrUoJfIJL6+2Klg== +"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.449.tgz#4505f39499140bef21b9d2c9cf4cd8227f7591dd" + integrity sha512-3EwT7VFuWCB3qs4CaVEjw1y3vrMzNUFUYech5VZ673SP5tpOKg12+LOfJ3goEdhOZ8qvsknJhxOhpJzR/anbNQ== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2070+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/babel-ast-utils" "2.0.0-nightly.2071+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" react-refresh "^0.9.0" semver "^5.4.1" -"@parcel/transformer-sass@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.448.tgz#ff8bd034bc82f95fe960fab0247ae1a9d0129f13" - integrity sha512-s5E3Zv2GKjAF2sRdtw/0RxcS5xEcdVeAOaR5D7OEvq6QzAC5nldAOHtjV89wm9Ahp63liWsbb66x13njTWbKpQ== +"@parcel/transformer-sass@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.449.tgz#6a5e6f3c0b77e5db1ce8665fda07687373f6b586" + integrity sha512-vxAGmRUu8/AvH2WXF43q2gwFJajitx/UM+Rz42cl/YNUJanzlYZpqLSg4rPjiWIO1h8pY5atC7x4XbrNDOY/BA== dependencies: - "@parcel/fs" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/fs" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-stylus@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.448.tgz#2e195338c6573f02f25b20c00186fe78096527c5" - integrity sha512-1XEj/0Y5GyhwFbSTva/HKjgYRwmBrjNhUMs/IcIutOsCjlU6+p0ebO0LpKIc1aZkme13ja50/LLmb+jKh8abGQ== +"@parcel/transformer-stylus@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.449.tgz#8c30eb821c59360e2901688993a423726f496518" + integrity sha512-MJimqbrHvGlkh1gKu9xoMKhi2Boztm3Hc75h68wBWVqTc+OmBHGl8eftpCNFvBgbMaTjhTDLY+GkOODi9Xe9NA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-sugarss@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.448.tgz#f3d18ffd99c0301d70454aad2f9174964e859700" - integrity sha512-a7Qtj3Jak/hPc1c+zirN16Gh6BATI/qLyGRs8/0UpTjNfnJ/Bj1Mb4Lu8pu6t2vwwK4BM+kscaxeTAOS5QiSrg== +"@parcel/transformer-sugarss@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.449.tgz#5e577e3c6cb155ad3402e8366d50dcef35f71e6c" + integrity sha512-ccDVMSh5cvdHKT5lp2KKE+vyeqiRqQaVoBwW5S1QhVaAW7op/dHzhxCxA08SDQLaT/G5FzQC4lFGPfsTkeRQwA== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" postcss "^8.0.5" -"@parcel/transformer-toml@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.448.tgz#cb1a96f75f251876ef134c68960cfdb65ae34814" - integrity sha512-FBv3LYCJ0SObDOM73BJ75axtQOrm4PoqwBHRjsVwi1h4JUbkdp0ySPOmf4fEVShz8HYUaWO5zJVe9nC7jT1E8g== +"@parcel/transformer-toml@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.449.tgz#0141bedbc6746e702b31e3a64efc59bc211261a1" + integrity sha512-vDevoB6UP72FaoD6YybBbm8mVl8CVQFSS2Ef1XPHWWip0nYpWUA9CBnx7h7FRy4kvIzKU/Wq/Tn2W6gfySDjAQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/transformer-typescript-types@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.448.tgz#fddbf25a5b55056e7e1e3036624dab3474288628" - integrity sha512-rX9uIPDTC4xJqwNKo1MQTX7p6DumCGo6vaYXxE3ZIneTgHgBfbGyNoC9Kn8tNosptZ3HHmoyp4vjZNcovGS2LA== +"@parcel/transformer-typescript-types@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.449.tgz#254f735f17c302141ee5e710e55ecf1adc9ac025" + integrity sha512-9jMcRXJ13bMiRg7R3DgPkVNVr6uLjoBkOr33OX6Aat0o9ep8wFKalG1UbDHjLnTmISBsG3FJm9v+qKyQyzwHmQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/ts-utils" "2.0.0-nightly.448+61001140" + "@parcel/ts-utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" -"@parcel/transformer-vue@2.0.0-nightly.2070+61001140": - version "2.0.0-nightly.2070" - resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2070.tgz#e707a838f05493f7cbb9912c83b7e711363cb59c" - integrity sha512-gpSh/ucbw5bHrqW69rvdCvWA9o5Bixed9/KPhXoFf15Gn/bAZ65QE+omBrfSkiTVbHl5dJvXR/Yq+539PM+tyQ== +"@parcel/transformer-vue@2.0.0-nightly.2071+837d1fbd": + version "2.0.0-nightly.2071" + resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2071.tgz#37e4c6eb1bfb3af35d66bf9583c93deb32d97577" + integrity sha512-y2yzc8u//WyA9u/I0HNt9Dv4YueXWhTntNkL/TKuB+S4RaZyetUepQqEvUv0JWgzqbuj5XxXWZ5Lk74bNMHQVg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-yaml@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.448.tgz#9886798f6b3193091d5f7276fac703f7bf736b08" - integrity sha512-MfNDX5e1n3b2NaGly0pO5RjttOKP/pkJJHNJRE2RlEAUOagxQSxqK3xUeLua8bSV6KFnP4NYeCeds4YxGGkB8w== +"@parcel/transformer-yaml@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.449.tgz#7ee792f2fca24d1c7591b63e225296a046d80caa" + integrity sha512-n1GNhTXWPOvOoG3QGP1TXRGlbcOmyihkJH8hC73F4COvWxLzE3RgkB+nCBy34KgBO+yzFMeMzNpmIcg9HnMezQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.448+61001140" + "@parcel/plugin" "2.0.0-nightly.449+837d1fbd" -"@parcel/ts-utils@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.448.tgz#e3e5c69725efe5f94813420676e6e2f36fd18165" - integrity sha512-cWXI9pTAVlnXm65LzWk1IfVTZzgbq+qramWqdmfxVEYiR3dZd3RwC4/AYz5yxJMJNrWYFSnuu82BO0ilcOnDww== +"@parcel/ts-utils@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.449.tgz#1585e2e1a0c7a483936347cac5fc7f4c60c73e8d" + integrity sha512-jk/VoHAln8F6Q/qDSKosOPbxUwhJJw2dRptm3Zn0kznWXceWE8EYDmjzRB1JAUCjxJ5ux0n1EYjm+UcmwhbIbA== dependencies: nullthrows "^1.1.1" -"@parcel/types@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.448.tgz#67e48bb912a57f43e1a2e6d89b840e8994c7d63c" - integrity sha512-AynPc+Up7eOJZxvwcANbJjzyTkgfXRmvuwE1nOLNuupV0wUi53RHf3+ibw/Vd/FZSW918IJgcHc3bXtp31OmJQ== +"@parcel/types@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.449.tgz#549346dc2451927d5ad934a1179f031aadffebef" + integrity sha512-v4cpFFQtz5nUpsDxU+VsIPNlW1cV7pExYiv/oijAGH6S3XbY8GJ2XPX8lUHCH4Y6+WWQtnp3NJJCWzRtx4zEtA== -"@parcel/utils@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.448.tgz#c1f21fc92f681da530ec3fb778cc1cb8432bda17" - integrity sha512-MrdjG8zTidg0YkgBCbsk7z74agA1TY2FTXNqMWAH1mPvMePsn3Cz5Xwt131JtOrul5we/HZszObRz/S5rb+pag== +"@parcel/utils@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.449.tgz#575b88501650ce0ce1e3d34a5fc4e5bba3948471" + integrity sha512-eZn5+QV4BsNq9tEK4pylVJVNS8iH7xTKZIXssvM1i2dVLzpkjlRnky8PazLOyfk2ZkqwY73UvQ7Ltsq+MIEHYg== dependencies: "@iarna/toml" "^2.2.0" - "@parcel/codeframe" "2.0.0-nightly.448+61001140" - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/logger" "2.0.0-nightly.448+61001140" - "@parcel/markdown-ansi" "2.0.0-nightly.448+61001140" + "@parcel/codeframe" "2.0.0-nightly.449+837d1fbd" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/logger" "2.0.0-nightly.449+837d1fbd" + "@parcel/markdown-ansi" "2.0.0-nightly.449+837d1fbd" "@parcel/source-map" "2.0.0-alpha.4.16" ansi-html "^0.0.7" chalk "^2.4.2" @@ -2932,14 +2932,14 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.1" -"@parcel/workers@2.0.0-nightly.448+61001140": - version "2.0.0-nightly.448" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.448.tgz#4a202add2214dc7468dcf313d8cdc760b1c1479b" - integrity sha512-lOiRhUW+B2hA6bZeoNOKPASgKj97+w50o0yZk03i1C9ohIHLhC8u2L2Ze/KqII8cjrVcK+skUfvNZ6UbZ+V3Cw== +"@parcel/workers@2.0.0-nightly.449+837d1fbd": + version "2.0.0-nightly.449" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.449.tgz#d9cf498864cf263abdcf53ddac21cf2f6f830327" + integrity sha512-d0+z/JhsCwRrKns5KvDkZg0UiLbLWvnrMT1Rw+N2bE3FdHlUlgckbOPUGFAM0LStaFartC3nsXnBwbSou1BKQg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/logger" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/logger" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" chrome-trace-event "^1.0.2" nullthrows "^1.1.1" @@ -10587,19 +10587,19 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -parcel@2.0.0-nightly.446: - version "2.0.0-nightly.446" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.446.tgz#e40357f1e4a575b528c9497000c0a32d2c557590" - integrity sha512-EJIzoudyOn2KafmgcuSFQnqzKLWnQR/tpjdf7+E+vhu9Mwvu1X+fYmsGA7OAGRVWCx18dKwHCrgSDj0GQBpMbA== - dependencies: - "@parcel/config-default" "2.0.0-nightly.448+61001140" - "@parcel/core" "2.0.0-nightly.446+61001140" - "@parcel/diagnostic" "2.0.0-nightly.448+61001140" - "@parcel/events" "2.0.0-nightly.448+61001140" - "@parcel/fs" "2.0.0-nightly.448+61001140" - "@parcel/logger" "2.0.0-nightly.448+61001140" - "@parcel/package-manager" "2.0.0-nightly.448+61001140" - "@parcel/utils" "2.0.0-nightly.448+61001140" +parcel@2.0.0-nightly.447: + version "2.0.0-nightly.447" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.447.tgz#325e4f3797fe68d2e416ddfb9acbe80e818130a9" + integrity sha512-ZxUeUq+fudKskOXEpKKQCWgFRT1Y8b28AGes1Cd2uSgiioM5zhXC/5Jlu0W2QFTrPzt2TrUlU9ioFPV04T9Pgw== + dependencies: + "@parcel/config-default" "2.0.0-nightly.449+837d1fbd" + "@parcel/core" "2.0.0-nightly.447+837d1fbd" + "@parcel/diagnostic" "2.0.0-nightly.449+837d1fbd" + "@parcel/events" "2.0.0-nightly.449+837d1fbd" + "@parcel/fs" "2.0.0-nightly.449+837d1fbd" + "@parcel/logger" "2.0.0-nightly.449+837d1fbd" + "@parcel/package-manager" "2.0.0-nightly.449+837d1fbd" + "@parcel/utils" "2.0.0-nightly.449+837d1fbd" chalk "^2.1.0" commander "^2.19.0" get-port "^4.2.0" From 2ca31a87a8cbf0c5267b3d3b39c8dc75b142488e Mon Sep 17 00:00:00 2001 From: Rico Huijbers Date: Sun, 15 Nov 2020 09:13:51 +0100 Subject: [PATCH 30/41] fix(pipelines): synthesizes incorrect paths on Windows (#11464) Pipelines generates path references based on the local system's file tree, and uses `path.join()` (etc) to build those. On a Windows machine, those would use a `\\` as a path separator, but the path separator for CodePipeline and the Linux CodeBuild image we use should be a `/`. Translate them. Fixes #11359, fixes #11405, fixes #11424. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../lib/actions/deploy-cdk-stack-action.ts | 5 +++-- packages/@aws-cdk/pipelines/lib/private/fs.ts | 14 ++++++++++++++ .../pipelines/lib/synths/simple-synth-action.ts | 5 +++-- packages/@aws-cdk/pipelines/test/fs.test.ts | 11 +++++++++++ 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 packages/@aws-cdk/pipelines/lib/private/fs.ts create mode 100644 packages/@aws-cdk/pipelines/test/fs.test.ts diff --git a/packages/@aws-cdk/pipelines/lib/actions/deploy-cdk-stack-action.ts b/packages/@aws-cdk/pipelines/lib/actions/deploy-cdk-stack-action.ts index b491c9698e7a0..9fe520112931f 100644 --- a/packages/@aws-cdk/pipelines/lib/actions/deploy-cdk-stack-action.ts +++ b/packages/@aws-cdk/pipelines/lib/actions/deploy-cdk-stack-action.ts @@ -9,6 +9,7 @@ import { Aws, Stack } from '@aws-cdk/core'; import * as cxapi from '@aws-cdk/cx-api'; import { Construct, Node } from 'constructs'; import { appOf, assemblyBuilderOf } from '../private/construct-internals'; +import { toPosixPath } from '../private/fs'; // v2 - keep this import as a separate section to reduce merge conflict when forward merging with the v2 branch. // eslint-disable-next-line @@ -186,8 +187,8 @@ export class DeployCdkStackAction implements codepipeline.IAction { return new DeployCdkStackAction({ actionRole, cloudFormationExecutionRole, - templatePath: path.relative(appAsmRoot, fullTemplatePath), - templateConfigurationPath: fullConfigPath ? path.relative(appAsmRoot, fullConfigPath) : undefined, + templatePath: toPosixPath(path.relative(appAsmRoot, fullTemplatePath)), + templateConfigurationPath: fullConfigPath ? toPosixPath(path.relative(appAsmRoot, fullConfigPath)) : undefined, region, stackArtifactId: artifact.id, dependencyStackArtifactIds: artifact.dependencies.filter(isStackArtifact).map(s => s.id), diff --git a/packages/@aws-cdk/pipelines/lib/private/fs.ts b/packages/@aws-cdk/pipelines/lib/private/fs.ts new file mode 100644 index 0000000000000..b5f861a4abc76 --- /dev/null +++ b/packages/@aws-cdk/pipelines/lib/private/fs.ts @@ -0,0 +1,14 @@ +import * as path from 'path'; + +/** + * Convert a file path on the current system to a file path that can be used on Linux + * + * Takes the current OS' file separator and replaces all of them with a '/'. + * + * Relevant if the current system is a Windows machine but is generating + * commands for a Linux CodeBuild image. + */ +export function toPosixPath(osPath: string, currentSep?: string) { + const regex = new RegExp(`\\${currentSep ?? path.sep}`, 'g'); + return osPath.replace(regex, '/'); +} \ No newline at end of file diff --git a/packages/@aws-cdk/pipelines/lib/synths/simple-synth-action.ts b/packages/@aws-cdk/pipelines/lib/synths/simple-synth-action.ts index 8365a3404e120..d04408b9175cd 100644 --- a/packages/@aws-cdk/pipelines/lib/synths/simple-synth-action.ts +++ b/packages/@aws-cdk/pipelines/lib/synths/simple-synth-action.ts @@ -8,6 +8,7 @@ import * as events from '@aws-cdk/aws-events'; import * as iam from '@aws-cdk/aws-iam'; import { Construct, Stack } from '@aws-cdk/core'; import { cloudAssemblyBuildSpecDir } from '../private/construct-internals'; +import { toPosixPath } from '../private/fs'; import { copyEnvironmentVariables, filterEmpty } from './_util'; /** @@ -373,7 +374,7 @@ export class SimpleSynthAction implements codepipeline.IAction, iam.IGrantable { // using secondary artifacts or not. const cloudAsmArtifactSpec = { - 'base-directory': path.join(self.props.subdirectory ?? '.', cloudAssemblyBuildSpecDir(scope)), + 'base-directory': toPosixPath(path.join(self.props.subdirectory ?? '.', cloudAssemblyBuildSpecDir(scope))), 'files': '**/*', }; @@ -388,7 +389,7 @@ export class SimpleSynthAction implements codepipeline.IAction, iam.IGrantable { throw new Error('You must give the output artifact a name'); } secondary[art.artifact.artifactName] = { - 'base-directory': path.join(self.props.subdirectory ?? '.', art.directory), + 'base-directory': toPosixPath(path.join(self.props.subdirectory ?? '.', art.directory)), 'files': '**/*', }; }); diff --git a/packages/@aws-cdk/pipelines/test/fs.test.ts b/packages/@aws-cdk/pipelines/test/fs.test.ts new file mode 100644 index 0000000000000..49cbe2458e64a --- /dev/null +++ b/packages/@aws-cdk/pipelines/test/fs.test.ts @@ -0,0 +1,11 @@ +import * as path from 'path'; +import { toPosixPath } from '../lib/private/fs'; + +test('translate path.sep', () => { + expect(toPosixPath(`a${path.sep}b${path.sep}c`)).toEqual('a/b/c'); +}); + +test('windows path to posix path', () => { + const winPath = path.win32.join('a', 'b', 'c'); + expect(toPosixPath(winPath, path.win32.sep)).toEqual('a/b/c'); +}); \ No newline at end of file From b722f087af64621ddff5ecb3b38982b7ccfe964a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 15 Nov 2020 19:34:04 +0000 Subject: [PATCH 31/41] chore(deps): bump yargs from 16.1.0 to 16.1.1 (#11485) Bumps [yargs](https://github.com/yargs/yargs) from 16.1.0 to 16.1.1. - [Release notes](https://github.com/yargs/yargs/releases) - [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/yargs/compare/v16.1.0...v16.1.1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/aws-cdk/package.json | 2 +- packages/awslint/package.json | 2 +- packages/cdk-assets/package.json | 2 +- packages/decdk/package.json | 2 +- tools/cdk-build-tools/package.json | 2 +- tools/cdk-integ-tools/package.json | 2 +- tools/cfn2ts/package.json | 2 +- tools/pkglint/package.json | 2 +- tools/pkgtools/package.json | 2 +- yarn.lock | 18 +++++++++--------- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 1a4edb29ad992..2e8e5beea9f3d 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -87,7 +87,7 @@ "table": "^6.0.3", "uuid": "^8.3.1", "wrap-ansi": "^7.0.0", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/awslint/package.json b/packages/awslint/package.json index abe3c5a357ca1..393013289819a 100644 --- a/packages/awslint/package.json +++ b/packages/awslint/package.json @@ -21,7 +21,7 @@ "colors": "^1.4.0", "fs-extra": "^9.0.1", "jsii-reflect": "^1.14.1", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "devDependencies": { "@types/fs-extra": "^8.1.1", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index f42f0673a35a6..52aadabc11688 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -49,7 +49,7 @@ "archiver": "^5.0.2", "aws-sdk": "^2.792.0", "glob": "^7.1.6", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/decdk/package.json b/packages/decdk/package.json index adc9732761f1f..29d9c38d5bedf 100644 --- a/packages/decdk/package.json +++ b/packages/decdk/package.json @@ -196,7 +196,7 @@ "jsii-reflect": "^1.14.1", "jsonschema": "^1.4.0", "yaml": "1.10.0", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "devDependencies": { "@types/fs-extra": "^8.1.1", diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 5877dba95bcef..65ced771af1aa 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -56,7 +56,7 @@ "nyc": "^15.1.0", "ts-jest": "^26.4.4", "typescript": "~3.9.7", - "yargs": "^16.1.0", + "yargs": "^16.1.1", "yarn-cling": "0.0.0" }, "keywords": [ diff --git a/tools/cdk-integ-tools/package.json b/tools/cdk-integ-tools/package.json index 6237634e6be3d..fae89fa59d2a9 100644 --- a/tools/cdk-integ-tools/package.json +++ b/tools/cdk-integ-tools/package.json @@ -40,7 +40,7 @@ "@aws-cdk/assert": "0.0.0", "aws-cdk": "0.0.0", "fs-extra": "^9.0.1", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "keywords": [ "aws", diff --git a/tools/cfn2ts/package.json b/tools/cfn2ts/package.json index 7ef2c7f940205..6343ce98a7de5 100644 --- a/tools/cfn2ts/package.json +++ b/tools/cfn2ts/package.json @@ -33,7 +33,7 @@ "codemaker": "^1.14.1", "fast-json-patch": "^3.0.0-1", "fs-extra": "^9.0.1", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "devDependencies": { "@types/fs-extra": "^8.1.1", diff --git a/tools/pkglint/package.json b/tools/pkglint/package.json index e3b87b2a29d28..4c387a03ea16d 100644 --- a/tools/pkglint/package.json +++ b/tools/pkglint/package.json @@ -49,6 +49,6 @@ "glob": "^7.1.6", "npm-bundled": "^1.1.1", "semver": "^7.3.2", - "yargs": "^16.1.0" + "yargs": "^16.1.1" } } diff --git a/tools/pkgtools/package.json b/tools/pkgtools/package.json index 0337051d556fb..278d8531c2375 100644 --- a/tools/pkgtools/package.json +++ b/tools/pkgtools/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "fs-extra": "^9.0.1", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "keywords": [ "aws", diff --git a/yarn.lock b/yarn.lock index 9e50ce03d754b..9e859c0963d8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14094,10 +14094,10 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -y18n@^5.0.2: - version "5.0.4" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.4.tgz#0ab2db89dd5873b5ec4682d8e703e833373ea897" - integrity sha512-deLOfD+RvFgrpAmSZgfGdWYE+OKyHcVHaRQ7NphG/63scpRvTHHeQMAxGGvaLVGJ+HYVcCXlzcTK0ZehFf+eHQ== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== yallist@^2.1.2: version "2.1.2" @@ -14208,17 +14208,17 @@ yargs@^15.0.2, yargs@^15.3.1, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.3, yargs@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.0.tgz#fc333fe4791660eace5a894b39d42f851cd48f2a" - integrity sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g== +yargs@^16.0.3, yargs@^16.1.0, yargs@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.1.tgz#5a4a095bd1ca806b0a50d0c03611d38034d219a1" + integrity sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w== dependencies: cliui "^7.0.2" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.0" - y18n "^5.0.2" + y18n "^5.0.5" yargs-parser "^20.2.2" yn@3.1.1: From 4768c4411b6ad334abdfc310dd754c9d5fe1c7e3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 15 Nov 2020 21:21:28 +0000 Subject: [PATCH 32/41] chore(deps-dev): bump fast-check from 2.6.1 to 2.7.0 (#11486) Bumps [fast-check](https://github.com/dubzzz/fast-check) from 2.6.1 to 2.7.0. - [Release notes](https://github.com/dubzzz/fast-check/releases) - [Changelog](https://github.com/dubzzz/fast-check/blob/master/CHANGELOG.md) - [Commits](https://github.com/dubzzz/fast-check/compare/v2.6.1...v2.7.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/@aws-cdk/app-delivery/package.json | 2 +- .../aws-applicationautoscaling/package.json | 2 +- .../aws-autoscaling-common/package.json | 2 +- .../@aws-cdk/cloudformation-diff/package.json | 2 +- packages/@aws-cdk/core/package.json | 2 +- yarn.lock | 18 +++++++++--------- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/@aws-cdk/app-delivery/package.json b/packages/@aws-cdk/app-delivery/package.json index e0a95c03879eb..d860fe435fd24 100644 --- a/packages/@aws-cdk/app-delivery/package.json +++ b/packages/@aws-cdk/app-delivery/package.json @@ -63,7 +63,7 @@ "@types/nodeunit": "^0.0.31", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "fast-check": "^2.6.1", + "fast-check": "^2.7.0", "nodeunit": "^0.11.3", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/aws-applicationautoscaling/package.json b/packages/@aws-cdk/aws-applicationautoscaling/package.json index 3072fda41400d..39693f2db0d30 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/package.json +++ b/packages/@aws-cdk/aws-applicationautoscaling/package.json @@ -75,7 +75,7 @@ "@types/nodeunit": "^0.0.31", "cdk-build-tools": "0.0.0", "cfn2ts": "0.0.0", - "fast-check": "^2.6.1", + "fast-check": "^2.7.0", "nodeunit": "^0.11.3", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/aws-autoscaling-common/package.json b/packages/@aws-cdk/aws-autoscaling-common/package.json index 805460b6ef2ba..aa66b53be704c 100644 --- a/packages/@aws-cdk/aws-autoscaling-common/package.json +++ b/packages/@aws-cdk/aws-autoscaling-common/package.json @@ -67,7 +67,7 @@ "@types/nodeunit": "^0.0.31", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "fast-check": "^2.6.1", + "fast-check": "^2.7.0", "nodeunit": "^0.11.3", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 2fb02810b2182..e465c8aa10595 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -33,7 +33,7 @@ "@types/string-width": "^4.0.1", "@types/table": "^5.0.0", "cdk-build-tools": "0.0.0", - "fast-check": "^2.6.1", + "fast-check": "^2.7.0", "jest": "^26.6.3", "pkglint": "0.0.0", "ts-jest": "^26.4.4" diff --git a/packages/@aws-cdk/core/package.json b/packages/@aws-cdk/core/package.json index c673193b26427..3dec43079144e 100644 --- a/packages/@aws-cdk/core/package.json +++ b/packages/@aws-cdk/core/package.json @@ -174,7 +174,7 @@ "@types/sinon": "^9.0.8", "cdk-build-tools": "0.0.0", "cfn2ts": "0.0.0", - "fast-check": "^2.6.1", + "fast-check": "^2.7.0", "lodash": "^4.17.20", "nodeunit-shim": "0.0.0", "pkglint": "0.0.0", diff --git a/yarn.lock b/yarn.lock index 9e859c0963d8d..529eef937524c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6550,12 +6550,12 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-check@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-2.6.1.tgz#c9ff58b69c2eee872588985d8b93424c84359a6e" - integrity sha512-CauHEKfAjgAFpNDpFqSccu7C5kOlifCNfRxMjzY76MaAaH7ddkqqEzRE2Vm5bjpHJpndD0iVXiZC+d1rYzv5qg== +fast-check@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-2.7.0.tgz#d935243a43bc5e8ac4724ee2cb6c109533e8fd85" + integrity sha512-+frnWpxp43Egnx2wuqRVrbHj1YXpHRwLle6lhKJODnu7uH0krGjNRlUo+1oioKULA5jgQ6I6ctTrqFuaw4gZFA== dependencies: - pure-rand "^3.0.0" + pure-rand "^4.0.0" fast-deep-equal@^2.0.1: version "2.0.1" @@ -11472,10 +11472,10 @@ punycode@^2.0.0, punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pure-rand@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-3.1.0.tgz#646b812635cbac86105c46b0b03aa5dac1c759b3" - integrity sha512-xkCSMNjEnLG/A8iTH9M5ayXN4SCWRP+ih3rxi09Q7Fu0b9jAP6V9H59pOtcB37IsVt3eHxf1FMy9n7YrqdDdSA== +pure-rand@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-4.0.0.tgz#df8f44bc1b82c4f3d0e245e8f7ced6f09c1e9dc4" + integrity sha512-5+HGyGi+6VygEcP1O4jMj0c5HyFgsP9lEy2uA4c+KBq84y21hpmv85wAzPZ/H+q1TUbP3mIMZhqFg08/HAOUqw== purgecss@^2.3.0: version "2.3.0" From a4a555a9f5e8844a377d8de5041219346d0eb65c Mon Sep 17 00:00:00 2001 From: Rico Huijbers Date: Mon, 16 Nov 2020 10:47:13 +0100 Subject: [PATCH 33/41] fix(core): missing context in Stages is not filled by CLI (#11461) Missing context in Stages was reported at the inner-assembly level. Since the CLI only inspects the top-level assembly for missing context, it would never detect this and not query for it. Propagate the missing context up to the top-level assembly. Fixes #9226. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/core/test/stage.test.ts | 35 +++++++++++++++++++ .../@aws-cdk/cx-api/lib/cloud-assembly.ts | 12 +++++++ .../test/cloud-assembly-builder.test.ts | 22 ++++++++++++ 3 files changed, 69 insertions(+) diff --git a/packages/@aws-cdk/core/test/stage.test.ts b/packages/@aws-cdk/core/test/stage.test.ts index 8a4b27a4d412a..897b3513d6163 100644 --- a/packages/@aws-cdk/core/test/stage.test.ts +++ b/packages/@aws-cdk/core/test/stage.test.ts @@ -1,3 +1,4 @@ +import * as cxschema from '@aws-cdk/cloud-assembly-schema'; import * as cxapi from '@aws-cdk/cx-api'; import { nodeunitShim, Test } from 'nodeunit-shim'; import { App, CfnResource, Construct, IAspect, IConstruct, Stack, Stage, Aspects } from '../lib'; @@ -311,6 +312,40 @@ nodeunitShim({ }, }); +test('missing context in Stages is propagated up to root assembly', () => { + // GIVEN + const app = new App(); + const stage = new Stage(app, 'Stage', { + env: { account: 'account', region: 'region' }, + }); + const stack = new Stack(stage, 'Stack'); + new CfnResource(stack, 'Resource', { type: 'Something' }); + + // WHEN + stack.reportMissingContext({ + key: 'missing-context-key', + provider: cxschema.ContextProvider.AVAILABILITY_ZONE_PROVIDER, + props: { + account: 'account', + region: 'region', + }, + }); + + // THEN + const assembly = app.synth(); + + expect(assembly.manifest.missing).toEqual([ + { + key: 'missing-context-key', + provider: cxschema.ContextProvider.AVAILABILITY_ZONE_PROVIDER, + props: { + account: 'account', + region: 'region', + }, + }, + ]); +}); + class TouchingAspect implements IAspect { public readonly visits = new Array(); public visit(node: IConstruct): void { diff --git a/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts b/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts index df947f379ab46..53fafe3d37049 100644 --- a/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts +++ b/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts @@ -219,6 +219,13 @@ export interface CloudAssemblyBuilderProps { * @default - Same as the manifest outdir */ readonly assetOutdir?: string; + + /** + * If this builder is for a nested assembly, the parent assembly builder + * + * @default - This is a root assembly + */ + readonly parentBuilder?: CloudAssemblyBuilder; } /** @@ -237,6 +244,7 @@ export class CloudAssemblyBuilder { private readonly artifacts: { [id: string]: cxschema.ArtifactManifest } = { }; private readonly missing = new Array(); + private readonly parentBuilder?: CloudAssemblyBuilder; /** * Initializes a cloud assembly builder. @@ -245,6 +253,7 @@ export class CloudAssemblyBuilder { constructor(outdir?: string, props: CloudAssemblyBuilderProps = {}) { this.outdir = determineOutputDirectory(outdir); this.assetOutdir = props.assetOutdir ?? this.outdir; + this.parentBuilder = props.parentBuilder; // we leverage the fact that outdir is long-lived to avoid staging assets into it // that were already staged (copying can be expensive). this is achieved by the fact @@ -270,6 +279,8 @@ export class CloudAssemblyBuilder { if (this.missing.every(m => m.key !== missing.key)) { this.missing.push(missing); } + // Also report in parent + this.parentBuilder?.addMissing(missing); } /** @@ -320,6 +331,7 @@ export class CloudAssemblyBuilder { return new CloudAssemblyBuilder(innerAsmDir, { // Reuse the same asset output directory as the current Casm builder assetOutdir: this.assetOutdir, + parentBuilder: this, }); } } diff --git a/packages/@aws-cdk/cx-api/test/cloud-assembly-builder.test.ts b/packages/@aws-cdk/cx-api/test/cloud-assembly-builder.test.ts index fb7ad4d71a407..13b81c572a126 100644 --- a/packages/@aws-cdk/cx-api/test/cloud-assembly-builder.test.ts +++ b/packages/@aws-cdk/cx-api/test/cloud-assembly-builder.test.ts @@ -174,6 +174,28 @@ test('write and read nested cloud assembly artifact', () => { expect(nested?.artifacts.length).toEqual(0); }); +test('missing values are reported to top-level asm', () => { + // GIVEN + const outdir = fs.mkdtempSync(path.join(os.tmpdir(), 'cloud-assembly-builder-tests')); + const session = new cxapi.CloudAssemblyBuilder(outdir); + + const innerAsm = session.createNestedAssembly('hello', 'hello'); + + // WHEN + const props: cxschema.ContextQueryProperties = { + account: '1234', + region: 'asdf', + filter: { a: 'a' }, + }; + + innerAsm.addMissing({ key: 'foo', provider: cxschema.ContextProvider.VPC_PROVIDER, props }); + + // THEN + const assembly = session.buildAssembly(); + + expect(assembly.manifest.missing?.length).toEqual(1); +}); + test('artifcats are written in topological order', () => { // GIVEN const outdir = fs.mkdtempSync(path.join(os.tmpdir(), 'cloud-assembly-builder-tests')); From 715a0300ea44c7cfcb6ae9973bd4ca16585c8fa5 Mon Sep 17 00:00:00 2001 From: Niranjan Jayakar Date: Mon, 16 Nov 2020 11:54:07 +0000 Subject: [PATCH 34/41] fix(lambda): failed to add permission to an imported lambda from another account (#11369) Originally, when a function was imported into an account agnostic stack, it was assumed that the function was from a different account and hence its permission cannot be modified. A subsequent change - 99111f72adc210f48e269db50f2b8e8b78d21252 - changed this behaviour to its opposite. When an account agnostic stack was encountered in the context of an imported function, it was assumed that the function was part of the same account. This has caused customers to report regressions - #11278, #11141. This change reverts this behaviour back to its original assumption, with the additional ability to configure this explicitly by the user if needed for an advanced use case. fixes #11141 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../@aws-cdk/aws-lambda/lib/function-base.ts | 20 ++++++++++-- packages/@aws-cdk/aws-lambda/lib/function.ts | 2 +- .../@aws-cdk/aws-lambda/test/function.test.ts | 32 ++++++++++++++++++- 3 files changed, 49 insertions(+), 5 deletions(-) diff --git a/packages/@aws-cdk/aws-lambda/lib/function-base.ts b/packages/@aws-cdk/aws-lambda/lib/function-base.ts index ab1012b6015bc..d02f355f0c5f3 100644 --- a/packages/@aws-cdk/aws-lambda/lib/function-base.ts +++ b/packages/@aws-cdk/aws-lambda/lib/function-base.ts @@ -149,6 +149,19 @@ export interface FunctionAttributes { * to this Lambda. */ readonly securityGroup?: ec2.ISecurityGroup; + + /** + * Setting this property informs the CDK that the imported function is in the same environment as the stack. + * This affects certain behaviours such as, whether this function's permission can be modified. + * When not configured, the CDK attempts to auto-determine this. For environment agnostic stacks, i.e., stacks + * where the account is not specified with the `env` property, this is determined to be false. + * + * Set this to property *ONLY IF* the imported function is in the same account as the stack + * it's imported in. + * @default - depends: true, if the Stack is configured with an explicit `env` (account and region) and the account is the same as this function. + * For environment-agnostic stacks this will default to `false`. + */ + readonly sameEnvironment?: boolean; } export abstract class FunctionBase extends Resource implements IFunction { @@ -301,7 +314,8 @@ export abstract class FunctionBase extends Resource implements IFunction { const permissionNode = this._functionNode().tryFindChild(identifier); if (!permissionNode) { - throw new Error('Cannot modify permission to lambda function. Function is either imported or $LATEST version.'); + throw new Error('Cannot modify permission to lambda function. Function is either imported or $LATEST version. ' + + 'If the function is imported from the same account use `fromFunctionAttributes()` API with the `allowPermissions` flag.'); } return { statementAdded: true, policyDependable: permissionNode }; }, @@ -361,13 +375,13 @@ export abstract class FunctionBase extends Resource implements IFunction { * ..which means that in order to extract the `account-id` component from the ARN, we can * split the ARN using ":" and select the component in index 4. * - * @returns true if account id of function matches this account, or the accounts are unresolved. + * @returns true if account id of function matches the account specified on the stack, false otherwise. * * @internal */ protected _isStackAccount(): boolean { if (Token.isUnresolved(this.stack.account) || Token.isUnresolved(this.functionArn)) { - return true; + return false; } return this.stack.parseArn(this.functionArn).account === this.stack.account; } diff --git a/packages/@aws-cdk/aws-lambda/lib/function.ts b/packages/@aws-cdk/aws-lambda/lib/function.ts index d44a14a3aa4f1..e2d81c064c894 100644 --- a/packages/@aws-cdk/aws-lambda/lib/function.ts +++ b/packages/@aws-cdk/aws-lambda/lib/function.ts @@ -383,7 +383,7 @@ export class Function extends FunctionBase { public readonly role = role; public readonly permissionsNode = this.node; - protected readonly canCreatePermissions = this._isStackAccount(); + protected readonly canCreatePermissions = attrs.sameEnvironment ?? this._isStackAccount(); constructor(s: Construct, i: string) { super(s, i); diff --git a/packages/@aws-cdk/aws-lambda/test/function.test.ts b/packages/@aws-cdk/aws-lambda/test/function.test.ts index 761a688762c48..038167a460423 100644 --- a/packages/@aws-cdk/aws-lambda/test/function.test.ts +++ b/packages/@aws-cdk/aws-lambda/test/function.test.ts @@ -269,6 +269,24 @@ describe('function', () => { principal: new iam.ServicePrincipal('cloudformation.amazonaws.com'), }); + // THEN + expect(stack).not.toHaveResource('AWS::Lambda::Permission'); + }); + + test('imported Function w/ unresolved account & allowPermissions set', () => { + // GIVEN + const app = new cdk.App(); + const stack = new cdk.Stack(app, 'Imports'); + + // WHEN + const iFunc = lambda.Function.fromFunctionAttributes(stack, 'iFunc', { + functionArn: 'arn:aws:lambda:us-east-1:123456789012:function:BaseFunction', + sameEnvironment: true, // since this is false, by default, for env agnostic stacks + }); + iFunc.addPermission('iFunc', { + principal: new iam.ServicePrincipal('cloudformation.amazonaws.com'), + }); + // THEN expect(stack).toHaveResource('AWS::Lambda::Permission'); }); @@ -953,10 +971,22 @@ describe('function', () => { }); test('on an imported function (unresolved account)', () => { - // GIVEN const stack = new cdk.Stack(); const fn = lambda.Function.fromFunctionArn(stack, 'Function', 'arn:aws:lambda:us-east-1:123456789012:function:MyFn'); + expect( + () => fn.grantInvoke(new iam.ServicePrincipal('elasticloadbalancing.amazonaws.com')), + ).toThrow(/Cannot modify permission to lambda function/); + }); + + test('on an imported function (unresolved account & w/ allowPermissions)', () => { + // GIVEN + const stack = new cdk.Stack(); + const fn = lambda.Function.fromFunctionAttributes(stack, 'Function', { + functionArn: 'arn:aws:lambda:us-east-1:123456789012:function:MyFn', + sameEnvironment: true, + }); + // WHEN fn.grantInvoke(new iam.ServicePrincipal('elasticloadbalancing.amazonaws.com')); From a8c4f178e08cef4f306f54976076c21de2252a55 Mon Sep 17 00:00:00 2001 From: markus7811 Date: Mon, 16 Nov 2020 16:23:33 +0100 Subject: [PATCH 35/41] feat(iam): specify initial PolicyDocument for inline Policy (#11430) allow passing PolicyDocuments to Policys like it could be done right now for ManagedPolicys fixes #11236 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-iam/README.md | 10 ++++- packages/@aws-cdk/aws-iam/lib/policy.ts | 13 +++++++ packages/@aws-cdk/aws-iam/test/policy.test.ts | 38 ++++++++++++++++++- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-iam/README.md b/packages/@aws-cdk/aws-iam/README.md index 9e4db8498e2c1..1cc8740b89927 100644 --- a/packages/@aws-cdk/aws-iam/README.md +++ b/packages/@aws-cdk/aws-iam/README.md @@ -250,8 +250,16 @@ const policyDocument = { ] }; -const newPolicyDocument = PolicyDocument.fromJson(policyDocument); +const customPolicyDocument = PolicyDocument.fromJson(policyDocument); +// You can pass this document as an initial document to a ManagedPolicy +// or inline Policy. +const newManagedPolicy = new ManagedPolicy(stack, 'MyNewManagedPolicy', { + document: customPolicyDocument +}); +const newPolicy = new Policy(stack, 'MyNewPolicy', { + document: customPolicyDocument +}); ``` ### OpenID Connect Providers diff --git a/packages/@aws-cdk/aws-iam/lib/policy.ts b/packages/@aws-cdk/aws-iam/lib/policy.ts index c4fefd21b189d..45cd1fb138927 100644 --- a/packages/@aws-cdk/aws-iam/lib/policy.ts +++ b/packages/@aws-cdk/aws-iam/lib/policy.ts @@ -83,6 +83,15 @@ export interface PolicyProps { * @default false */ readonly force?: boolean; + + /** + * Initial PolicyDocument to use for this Policy. If omited, any + * `PolicyStatement` provided in the `statements` property will be applied + * against the empty default `PolicyDocument`. + * + * @default - An empty policy. + */ + readonly document?: PolicyDocument; } /** @@ -138,6 +147,10 @@ export class Policy extends Resource implements IPolicy { } } + if (props.document) { + this.document = props.document; + } + const resource = new CfnPolicyConditional(this, 'Resource', { policyDocument: this.document, policyName: this.physicalName, diff --git a/packages/@aws-cdk/aws-iam/test/policy.test.ts b/packages/@aws-cdk/aws-iam/test/policy.test.ts index 9facd4acd3973..d2ff50aa4dbb8 100644 --- a/packages/@aws-cdk/aws-iam/test/policy.test.ts +++ b/packages/@aws-cdk/aws-iam/test/policy.test.ts @@ -1,7 +1,7 @@ import { ResourcePart } from '@aws-cdk/assert'; import '@aws-cdk/assert/jest'; import { App, CfnResource, Stack } from '@aws-cdk/core'; -import { AnyPrincipal, CfnPolicy, Group, Policy, PolicyStatement, Role, ServicePrincipal, User } from '../lib'; +import { AnyPrincipal, CfnPolicy, Group, Policy, PolicyDocument, PolicyStatement, Role, ServicePrincipal, User } from '../lib'; /* eslint-disable quote-props */ @@ -52,6 +52,42 @@ describe('IAM policy', () => { }); }); + test('policy from policy document alone', () => { + const policy = new Policy(stack, 'MyPolicy', { + policyName: 'MyPolicyName', + document: PolicyDocument.fromJson({ + Statement: [ + { + Action: 'sqs:SendMessage', + Effect: 'Allow', + Resource: '*', + }, + ], + }), + }); + + const group = new Group(stack, 'MyGroup'); + group.attachInlinePolicy(policy); + + expect(stack).toMatchTemplate({ + Resources: { + MyPolicy39D66CF6: { + Type: 'AWS::IAM::Policy', + Properties: { + PolicyName: 'MyPolicyName', + Groups: [{ Ref: 'MyGroupCBA54B1B' }], + PolicyDocument: { + Statement: [ + { Action: 'sqs:SendMessage', Effect: 'Allow', Resource: '*' }, + ], + Version: '2012-10-17', + }, + }, + }, + MyGroupCBA54B1B: { Type: 'AWS::IAM::Group' }, + }, + }); + }); test('policy name can be omitted, in which case the logical id will be used', () => { const policy = new Policy(stack, 'MyPolicy'); policy.addStatements(new PolicyStatement({ resources: ['*'], actions: ['sqs:SendMessage'] })); From d5fe374dc971983d7484177d0d6f96fc2de6b6fd Mon Sep 17 00:00:00 2001 From: Niranjan Jayakar Date: Mon, 16 Nov 2020 16:23:11 +0000 Subject: [PATCH 36/41] chore(ecr): use CloudFormation property for imageScanOnPush (#11490) CloudFormation now supports the `ImageScanningConfiguration` property. Switch out the custom resource workaround with the native support from CloudFormation. Testing Verified by deploying a stack with `scanOnPush` enabled and confirming on the console that `scanOnPush` is enabled. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-ecr-assets/package.json | 2 - packages/@aws-cdk/aws-ecr/lib/repository.ts | 34 +-- packages/@aws-cdk/aws-ecr/package.json | 2 - .../test/integ.imagescan.expected.json | 202 +----------------- .../@aws-cdk/aws-ecr/test/test.repository.ts | 8 +- 5 files changed, 13 insertions(+), 235 deletions(-) diff --git a/packages/@aws-cdk/aws-ecr-assets/package.json b/packages/@aws-cdk/aws-ecr-assets/package.json index fcf7739ca7254..093fecd65c662 100644 --- a/packages/@aws-cdk/aws-ecr-assets/package.json +++ b/packages/@aws-cdk/aws-ecr-assets/package.json @@ -77,7 +77,6 @@ "dependencies": { "@aws-cdk/aws-ecr": "0.0.0", "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@aws-cdk/core": "0.0.0", "@aws-cdk/assets": "0.0.0", @@ -90,7 +89,6 @@ "@aws-cdk/aws-ecr": "0.0.0", "@aws-cdk/aws-iam": "0.0.0", "@aws-cdk/assets": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@aws-cdk/core": "0.0.0", "@aws-cdk/cx-api": "0.0.0", diff --git a/packages/@aws-cdk/aws-ecr/lib/repository.ts b/packages/@aws-cdk/aws-ecr/lib/repository.ts index de4034df584e1..53990d1e07934 100644 --- a/packages/@aws-cdk/aws-ecr/lib/repository.ts +++ b/packages/@aws-cdk/aws-ecr/lib/repository.ts @@ -1,7 +1,6 @@ import * as events from '@aws-cdk/aws-events'; import * as iam from '@aws-cdk/aws-iam'; import { IResource, Lazy, RemovalPolicy, Resource, Stack, Token } from '@aws-cdk/core'; -import * as cr from '@aws-cdk/custom-resources'; import { IConstruct, Construct } from 'constructs'; import { CfnRepository } from './ecr.generated'; import { LifecycleRule, TagStatus } from './lifecycle'; @@ -420,6 +419,9 @@ export class Repository extends RepositoryBase { // It says "Text", but they actually mean "Object". repositoryPolicyText: Lazy.anyValue({ produce: () => this.policyDocument }), lifecyclePolicy: Lazy.anyValue({ produce: () => this.renderLifecyclePolicy() }), + imageScanningConfiguration: !props.imageScanOnPush ? undefined : { + scanOnPush: true, + }, }); resource.applyRemovalPolicy(props.removalPolicy); @@ -435,36 +437,6 @@ export class Repository extends RepositoryBase { resource: 'repository', resourceName: this.physicalName, }); - - // image scanOnPush - if (props.imageScanOnPush) { - new cr.AwsCustomResource(this, 'ImageScanOnPush', { - resourceType: 'Custom::ECRImageScanOnPush', - onUpdate: { - service: 'ECR', - action: 'putImageScanningConfiguration', - parameters: { - repositoryName: this.repositoryName, - imageScanningConfiguration: { - scanOnPush: props.imageScanOnPush, - }, - }, - physicalResourceId: cr.PhysicalResourceId.of(this.repositoryArn), - }, - onDelete: { - service: 'ECR', - action: 'putImageScanningConfiguration', - parameters: { - repositoryName: this.repositoryName, - imageScanningConfiguration: { - scanOnPush: false, - }, - }, - physicalResourceId: cr.PhysicalResourceId.of(this.repositoryArn), - }, - policy: cr.AwsCustomResourcePolicy.fromSdkCalls({ resources: [this.repositoryArn] }), - }); - } } public addToResourcePolicy(statement: iam.PolicyStatement): iam.AddToResourcePolicyResult { diff --git a/packages/@aws-cdk/aws-ecr/package.json b/packages/@aws-cdk/aws-ecr/package.json index a7b56a5a00298..76833c3af96af 100644 --- a/packages/@aws-cdk/aws-ecr/package.json +++ b/packages/@aws-cdk/aws-ecr/package.json @@ -86,7 +86,6 @@ "dependencies": { "@aws-cdk/aws-events": "0.0.0", "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/custom-resources": "0.0.0", "@aws-cdk/core": "0.0.0", "constructs": "^3.2.0" }, @@ -94,7 +93,6 @@ "peerDependencies": { "@aws-cdk/aws-events": "0.0.0", "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/custom-resources": "0.0.0", "@aws-cdk/core": "0.0.0", "constructs": "^3.2.0" }, diff --git a/packages/@aws-cdk/aws-ecr/test/integ.imagescan.expected.json b/packages/@aws-cdk/aws-ecr/test/integ.imagescan.expected.json index 76cd5933128c1..5367d722f62c9 100644 --- a/packages/@aws-cdk/aws-ecr/test/integ.imagescan.expected.json +++ b/packages/@aws-cdk/aws-ecr/test/integ.imagescan.expected.json @@ -2,107 +2,13 @@ "Resources": { "Repo02AC86CF": { "Type": "AWS::ECR::Repository", - "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" - }, - "RepoImageScanOnPush94CFD98F": { - "Type": "Custom::ECRImageScanOnPush", "Properties": { - "ServiceToken": { - "Fn::GetAtt": [ - "AWS679f53fac002430cb0da5b7982bd22872D164C4C", - "Arn" - ] - }, - "Create": { - "service": "ECR", - "action": "putImageScanningConfiguration", - "parameters": { - "repositoryName": { - "Ref": "Repo02AC86CF" - }, - "imageScanningConfiguration": { - "scanOnPush": "TRUE:BOOLEAN" - } - }, - "physicalResourceId": { - "id": { - "Fn::GetAtt": [ - "Repo02AC86CF", - "Arn" - ] - } - } - }, - "Update": { - "service": "ECR", - "action": "putImageScanningConfiguration", - "parameters": { - "repositoryName": { - "Ref": "Repo02AC86CF" - }, - "imageScanningConfiguration": { - "scanOnPush": "TRUE:BOOLEAN" - } - }, - "physicalResourceId": { - "id": { - "Fn::GetAtt": [ - "Repo02AC86CF", - "Arn" - ] - } - } - }, - "Delete": { - "service": "ECR", - "action": "putImageScanningConfiguration", - "parameters": { - "repositoryName": { - "Ref": "Repo02AC86CF" - }, - "imageScanningConfiguration": { - "scanOnPush": "FALSE:BOOLEAN" - } - }, - "physicalResourceId": { - "id": { - "Fn::GetAtt": [ - "Repo02AC86CF", - "Arn" - ] - } - } - }, - "InstallLatestAwsSdk": true + "ImageScanningConfiguration": { + "scanOnPush": true + } }, "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete", - "DependsOn": [ - "RepoImageScanOnPushCustomResourcePolicy556E941E" - ] - }, - "RepoImageScanOnPushCustomResourcePolicy556E941E": { - "Type": "AWS::IAM::Policy", - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action":"ecr:PutImageScanningConfiguration", - "Effect":"Allow", - "Resource": { - "Fn::GetAtt": [ - "Repo02AC86CF", - "Arn" - ] - } - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "RepoImageScanOnPushCustomResourcePolicy556E941E", - "Roles": [{"Ref":"AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2"}] - } + "DeletionPolicy": "Delete" }, "RepoImageScanComplete7BC71935": { "Type": "AWS::Events::Rule", @@ -127,106 +33,6 @@ }, "State": "ENABLED" } - }, - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "AWS679f53fac002430cb0da5b7982bd22872D164C4C": { - "Type": "AWS::Lambda::Function", - "Properties": { - "Code": { - "S3Bucket": { - "Ref": "AssetParametersd731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557S3BucketA250C084" - }, - "S3Key": { - "Fn::Join": [ - "", - [ - { - "Fn::Select": [ - 0, - { - "Fn::Split": [ - "||", - { - "Ref": "AssetParametersd731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557S3VersionKeyDC4F0CD7" - } - ] - } - ] - }, - { - "Fn::Select": [ - 1, - { - "Fn::Split": [ - "||", - { - "Ref": "AssetParametersd731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557S3VersionKeyDC4F0CD7" - } - ] - } - ] - } - ] - ] - } - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", - "Arn" - ] - }, - "Runtime": "nodejs12.x", - "Timeout": 120 - }, - "DependsOn": [ - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2" - ] - } - }, - "Parameters": { - "AssetParametersd731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557S3BucketA250C084": { - "Type": "String", - "Description": "S3 bucket for asset \"d731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557\"" - }, - "AssetParametersd731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557S3VersionKeyDC4F0CD7": { - "Type": "String", - "Description": "S3 key for asset version \"d731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557\"" - }, - "AssetParametersd731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557ArtifactHash5701DE73": { - "Type": "String", - "Description": "Artifact hash for asset \"d731b1475f16a318a48a76c83d255f7422cfa5f025c5bff93537b8f0b8e94557\"" } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-ecr/test/test.repository.ts b/packages/@aws-cdk/aws-ecr/test/test.repository.ts index 73e5f21d28115..20c53f1a3032a 100644 --- a/packages/@aws-cdk/aws-ecr/test/test.repository.ts +++ b/packages/@aws-cdk/aws-ecr/test/test.repository.ts @@ -28,7 +28,7 @@ export = { test.done(); }, - 'repository creation with imageScanOnPush creates custom resource'(test: Test) { + 'repository creation with imageScanOnPush'(test: Test) { // GIVEN const stack = new cdk.Stack(); @@ -36,7 +36,11 @@ export = { new ecr.Repository(stack, 'Repo', { imageScanOnPush: true }); // THEN - expect(stack).to(haveResource('Custom::ECRImageScanOnPush')); + expect(stack).to(haveResource('AWS::ECR::Repository', { + ImageScanningConfiguration: { + scanOnPush: true, + }, + })); test.done(); }, From 26ee52a742bee73a9b263ecfc28baa84af587411 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 16 Nov 2020 16:55:56 +0000 Subject: [PATCH 37/41] chore(deps-dev): bump @types/eslint from 7.2.4 to 7.2.5 (#11491) Bumps [@types/eslint](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/eslint) from 7.2.4 to 7.2.5. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/eslint) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- tools/eslint-plugin-cdk/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/eslint-plugin-cdk/package.json b/tools/eslint-plugin-cdk/package.json index e07a275ab288a..9de20764c4898 100644 --- a/tools/eslint-plugin-cdk/package.json +++ b/tools/eslint-plugin-cdk/package.json @@ -12,7 +12,7 @@ "build+test": "npm run build && npm test" }, "devDependencies": { - "@types/eslint": "^7.2.4", + "@types/eslint": "^7.2.5", "@types/fs-extra": "^8.1.1", "@types/jest": "^26.0.15", "@types/node": "^10.17.44", diff --git a/yarn.lock b/yarn.lock index 529eef937524c..a36e5ee846666 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3034,10 +3034,10 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/eslint@^7.2.4": - version "7.2.4" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.4.tgz#d12eeed7741d2491b69808576ac2d20c14f74c41" - integrity sha512-YCY4kzHMsHoyKspQH+nwSe+70Kep7Vjt2X+dZe5Vs2vkRudqtoFoUIv1RlJmZB8Hbp7McneupoZij4PadxsK5Q== +"@types/eslint@^7.2.5": + version "7.2.5" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.5.tgz#92172ecf490c2fce4b076739693d75f30376d610" + integrity sha512-Dc6ar9x16BdaR3NSxSF7T4IjL9gxxViJq8RmFd+2UAyA+K6ck2W+gUwfgpG/y9TPyUuBL35109bbULpEynvltA== dependencies: "@types/estree" "*" "@types/json-schema" "*" From 10473b9562fb8c7e2e59f1b710c0e3f6bd1fd60e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 16 Nov 2020 19:05:37 +0000 Subject: [PATCH 38/41] chore(deps): bump @typescript-eslint/eslint-plugin from 4.7.0 to 4.8.0 (#11496) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.7.0 to 4.8.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.8.0/packages/eslint-plugin) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- tools/cdk-build-tools/package.json | 2 +- yarn.lock | 61 +++++++++++++++++++++++------- 2 files changed, 49 insertions(+), 14 deletions(-) diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 65ced771af1aa..c81340a9f7986 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -39,7 +39,7 @@ "pkglint": "0.0.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^4.7.0", + "@typescript-eslint/eslint-plugin": "^4.8.0", "@typescript-eslint/parser": "^4.7.0", "eslint-plugin-cdk": "0.0.0", "awslint": "0.0.0", diff --git a/yarn.lock b/yarn.lock index a36e5ee846666..d76198c99898f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3288,28 +3288,28 @@ resolved "https://registry.yarnpkg.com/@types/yarnpkg__lockfile/-/yarnpkg__lockfile-1.1.4.tgz#445251eb00bd9c1e751f82c7c6bf4f714edfd464" integrity sha512-/emrKCfQMQmFCqRqqBJ0JueHBT06jBRM3e8OgnvDUcvuExONujIk2hFA5dNsN9Nt41ljGVDdChvCydATZ+KOZw== -"@typescript-eslint/eslint-plugin@^4.7.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.7.0.tgz#85c9bbda00c0cb604d3c241f7bc7fb171a2d3479" - integrity sha512-li9aiSVBBd7kU5VlQlT1AqP0uWGDK6JYKUQ9cVDnOg34VNnd9t4jr0Yqc/bKxJr/tDCPDaB4KzoSFN9fgVxe/Q== +"@typescript-eslint/eslint-plugin@^4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.0.tgz#ad12cba28e426b24295291ad4c43b1cdc8b9dbb1" + integrity sha512-nm80Yy5D7Ot00bomzBYodnGmGhNdePHS3iaxJ3Th0wxRWEI/6KCgbmL8PR78fF7MtT1VDcYNtY5y+YYyGlRhBg== dependencies: - "@typescript-eslint/experimental-utils" "4.7.0" - "@typescript-eslint/scope-manager" "4.7.0" + "@typescript-eslint/experimental-utils" "4.8.0" + "@typescript-eslint/scope-manager" "4.8.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.7.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.7.0.tgz#8d1058c38bec3d3bbd9c898a1c32318d80faf3c5" - integrity sha512-cymzovXAiD4EF+YoHAB5Oh02MpnXjvyaOb+v+BdpY7lsJXZQN34oIETeUwVT2XfV9rSNpXaIcknDLfupO/tUoA== +"@typescript-eslint/experimental-utils@4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.0.tgz#ff035f917aec0698c156a6039166ecf9d7a24f57" + integrity sha512-1yOvI++HMdA9lpaAkXXQlVUwJjruNz7Z9K3lgpcU+JU/Szvsv42H6G6DECalAuz2Dd0KFU/MeUrPC0jXnuAvlA== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.7.0" - "@typescript-eslint/types" "4.7.0" - "@typescript-eslint/typescript-estree" "4.7.0" + "@typescript-eslint/scope-manager" "4.8.0" + "@typescript-eslint/types" "4.8.0" + "@typescript-eslint/typescript-estree" "4.8.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" @@ -3331,11 +3331,24 @@ "@typescript-eslint/types" "4.7.0" "@typescript-eslint/visitor-keys" "4.7.0" +"@typescript-eslint/scope-manager@4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.8.0.tgz#f960b6c5df1a5b230b8488e71c5c04e58dd494e0" + integrity sha512-eJ+SV6w5WcyFusQ/Ru4A/c7E65HMGzWWGPJAqSuM/1EKEE6wOw9LUQTqAvLa6v2oIcaDo9F+/EyOPZgoD/BcLA== + dependencies: + "@typescript-eslint/types" "4.8.0" + "@typescript-eslint/visitor-keys" "4.8.0" + "@typescript-eslint/types@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.7.0.tgz#5e95ef5c740f43d942542b35811f87b62fccca69" integrity sha512-uLszFe0wExJc+I7q0Z/+BnP7wao/kzX0hB5vJn4LIgrfrMLgnB2UXoReV19lkJQS1a1mHWGGODSxnBx6JQC3Sg== +"@typescript-eslint/types@4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.8.0.tgz#87e73883637f662d9a638b0e9b01ed77edc44fb7" + integrity sha512-2/mGmXxr3sTxCvCT1mhR2b9rbfpMEBK41tiu0lMnMtZEbpphcUyrmgt2ogDFWNvsvyyeUxO1159eDrgFb7zV4Q== + "@typescript-eslint/typescript-estree@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.7.0.tgz#539531167f05ba20eb0b6785567076679e29d393" @@ -3350,6 +3363,20 @@ semver "^7.3.2" tsutils "^3.17.1" +"@typescript-eslint/typescript-estree@4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.0.tgz#b5160588495f18b739003b6078309b76fece0c55" + integrity sha512-jEdeERN8DIs7S8PlTdI7Sdy63Caxg2VtR21/RV7Z1Dtixiq/QEFSPrDXggMXKNOPPlrtMS+eCz7d7NV0HWLFVg== + dependencies: + "@typescript-eslint/types" "4.8.0" + "@typescript-eslint/visitor-keys" "4.8.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + "@typescript-eslint/visitor-keys@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.7.0.tgz#6783824f22acfc49e754970ed21b88ac03b80e6f" @@ -3358,6 +3385,14 @@ "@typescript-eslint/types" "4.7.0" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.0.tgz#7786b92bbaf25c6aa9fb860eb8dbb1f7d3b7d0ad" + integrity sha512-JluNZLvnkRUr0h3L6MnQVLuy2rw9DpD0OyMC21FVbgcezr0LQkbBjDp9kyKZhuZrLrtq4mwPiIkpfRb8IRqneA== + dependencies: + "@typescript-eslint/types" "4.8.0" + eslint-visitor-keys "^2.0.0" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" From 7127ff78ae9453185a0b02457d458fbbd439857d Mon Sep 17 00:00:00 2001 From: Niranjan Jayakar Date: Mon, 16 Nov 2020 19:53:34 +0000 Subject: [PATCH 39/41] chore(pkglint): backport updates from v2 branch (#11497) A previous [commit] made a change to a couple pkglint rules on the `v2-main` branch. These can also be applied on `master` branch and can reduce merge conflicts. [commit]: https://github.com/aws/aws-cdk/commit/89c5f829b037ec4d6e7f3b508ea6d9ac12925bda#diff-3c38ae20cded2082ff30639f70bc5805053217bea1e14b540ac5d8989bb462fb ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- tools/pkglint/lib/rules.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index 28f72bd7e2133..78d2bc7ec436e 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -146,7 +146,7 @@ export class ThirdPartyAttributions extends ValidationRule { if (pkg.json.private && !alwaysCheck.includes(pkg.json.name)) { return; } - const bundled = pkg.getAllBundledDependencies(); + const bundled = pkg.getAllBundledDependencies().filter(dep => !dep.startsWith('@aws-cdk')); const lines = fs.readFileSync(path.join(pkg.packageRoot, 'NOTICE'), { encoding: 'utf8' }).split('\n'); const re = /^\*\* (\S+)/; @@ -1460,7 +1460,15 @@ export class JestSetup extends ValidationRule { export class UbergenPackageVisibility extends ValidationRule { public readonly name = 'ubergen/package-visibility'; - private readonly publicPackages = ['aws-cdk-lib', 'cdk', 'aws-cdk', 'awslint']; + private readonly publicPackages = [ + '@aws-cdk/cloud-assembly-schema', + '@aws-cdk/cloudformation-diff', + '@aws-cdk/cx-api', + 'aws-cdk-lib', + 'aws-cdk', + 'awslint', + 'cdk', + ]; public validate(pkg: PackageJson): void { // eslint-disable-next-line @typescript-eslint/no-require-imports From 7bb53bac1797eafed88f1f8fdc3e8597b74fb425 Mon Sep 17 00:00:00 2001 From: Somaya Date: Mon, 16 Nov 2020 14:14:41 -0800 Subject: [PATCH 40/41] chore: fix broken auto label action typo (#11466) Co-authored-by: Shiv Lakshminarayan --- .github/workflows/issue-label-assign.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue-label-assign.yml b/.github/workflows/issue-label-assign.yml index 60ba0a349eef8..6184e7c0580f5 100644 --- a/.github/workflows/issue-label-assign.yml +++ b/.github/workflows/issue-label-assign.yml @@ -103,7 +103,7 @@ jobs: {"keywords":["[@aws-cdk/aws-iot1click]","[aws-iot1click]","[iot1click]","[iot 1click]"],"labels":["@aws-cdk/aws-iot1click"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-iotanalytics]","[aws-iotanalytics]","[iotanalytics]","[iot analytics]","[iot-analytics]"],"labels":["@aws-cdk/aws-iotanalytics"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-iotevents]","[aws-iotevents]","[iotevents]","[iot events]","[iot-events]"],"labels":["@aws-cdk/aws-iotevents"],"assignees":["shivlaks"]}, - {"keywords":["[@aws-cdk/aws-iotsitewise]","[aws-iotsitewise]","[iotsitewise]","[iot sitewise]","[iot-sitewise]","[iot-site-wise]",[iot site wise]"],"labels":["@aws-cdk/aws-iotsitewise"],"assignees":["shivlaks"]}, + {"keywords":["[@aws-cdk/aws-iotsitewise]","[aws-iotsitewise]","[iotsitewise]","[iot sitewise]","[iot-sitewise]","[iot-site-wise]","[iot site wise]"],"labels":["@aws-cdk/aws-iotsitewise"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-iotthingsgraph]","[aws-iotthingsgraph]","[iotthingsgraph]","[iot things graph]","[iot-things-graph]"],"labels":["@aws-cdk/aws-iotthingsgraph"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-ivs]","[aws-ivs]","[Interactive Video Service]","[ivs]"],"labels":["@aws-cdk/aws-ivs"],"assignees":["shivlaks"]}, {"keywords":["[@aws-cdk/aws-kendra]","[aws-kendra]","[kendra]"],"labels":["@aws-cdk/aws-kendra"],"assignees":["shivlaks"]}, From 637afde60a54a1171ca98985e9dbba834111c34c Mon Sep 17 00:00:00 2001 From: AWS CDK Team Date: Tue, 17 Nov 2020 09:42:30 +0000 Subject: [PATCH 41/41] chore(release): 1.74.0 --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ version.v1.json | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed8d8f2fceb1d..c1423ba20377a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,41 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.74.0](https://github.com/aws/aws-cdk/compare/v1.73.0...v1.74.0) (2020-11-17) + + +### ⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES + +* **appmesh:** `IVirtualNode` no longer has the `addBackends()` method. A backend can be added to `VirtualNode` using the `addBackend()` method which accepts a single `IVirtualService` +* **appmesh**: `IVirtualNode` no longer has the `addListeners()` method. A listener can be added to `VirtualNode` using the `addListener()` method which accepts a single `VirtualNodeListener` +* **appmesh**: `VirtualNode` no longer has a default listener. It is valid to have a `VirtualNode` without any listeners +* **appmesh**: the construction property `listener` of `VirtualNode` has been renamed to `listeners`, and its type changed to an array of listeners +* **appmesh**: the struct `VirtualNodeListener` has been removed. To create Virtual Node listeners, use the static factory methods of the `VirtualNodeListener` class + +### Features + +* **applicationautoscaling:** Add KAFKA to ServiceNamespace ([#11394](https://github.com/aws/aws-cdk/issues/11394)) ([b5c3f84](https://github.com/aws/aws-cdk/commit/b5c3f84c8be855107d3ea6738bbf8511f2ecdb8e)) +* **appmesh:** add listener timeout to Virtual Nodes ([#10793](https://github.com/aws/aws-cdk/issues/10793)) ([62baa7b](https://github.com/aws/aws-cdk/commit/62baa7b51b49c1a669c7144e5883375fe9ab5d35)) +* **cfnspec:** cloudformation spec v20.0.0 ([#11319](https://github.com/aws/aws-cdk/issues/11319)) ([8c17a35](https://github.com/aws/aws-cdk/commit/8c17a35746271d38289f6e200aea35b201b8a93d)) +* **cfnspec:** cloudformation spec v20.2.0 ([#11429](https://github.com/aws/aws-cdk/issues/11429)) ([025992b](https://github.com/aws/aws-cdk/commit/025992b0014aca493a669be518f4f423d3f39a57)) +* **codepipeline-actions:** Add deployment timeout to EcsDeployAction ([#11407](https://github.com/aws/aws-cdk/issues/11407)) ([7d9d575](https://github.com/aws/aws-cdk/commit/7d9d5757db2acedb507da8bb84c65cc06d018b91)) +* **core:** add easy importValue to CfnOutput ([#11368](https://github.com/aws/aws-cdk/issues/11368)) ([c71a4e9](https://github.com/aws/aws-cdk/commit/c71a4e9644fdd64fa00a6d804c921b32bd1816d1)), closes [#11360](https://github.com/aws/aws-cdk/issues/11360) +* **ecs:** secret JSON field for Fargate tasks ([#11348](https://github.com/aws/aws-cdk/issues/11348)) ([03e7cd5](https://github.com/aws/aws-cdk/commit/03e7cd5ebaf07be22f8fff8edacbc384989ebf7c)), closes [/github.com/aws/containers-roadmap/issues/385#issuecomment-722696672](https://github.com/aws//github.com/aws/containers-roadmap/issues/385/issues/issuecomment-722696672) [#11341](https://github.com/aws/aws-cdk/issues/11341) +* **efs:** import access point - `fromAccessPointAttributes()` ([#10712](https://github.com/aws/aws-cdk/issues/10712)) ([ec72c85](https://github.com/aws/aws-cdk/commit/ec72c859c31a069406994433fe430f56ff0e5ff3)) +* **iam:** specify initial PolicyDocument for inline Policy ([#11430](https://github.com/aws/aws-cdk/issues/11430)) ([a8c4f17](https://github.com/aws/aws-cdk/commit/a8c4f178e08cef4f306f54976076c21de2252a55)), closes [#11236](https://github.com/aws/aws-cdk/issues/11236) +* **logs:** Add KMS key support to LogGroup ([#11363](https://github.com/aws/aws-cdk/issues/11363)) ([21ccfce](https://github.com/aws/aws-cdk/commit/21ccfce514e10cfcdde36148b45f085d3494c540)), closes [#11211](https://github.com/aws/aws-cdk/issues/11211) +* **stepfunctions-tasks:** support overriding all properties of CodeBuild StartBuild integration ([#10356](https://github.com/aws/aws-cdk/issues/10356)) ([58efbad](https://github.com/aws/aws-cdk/commit/58efbad743464439ce8eb97a6c6c3e07b531d93c)), closes [#10302](https://github.com/aws/aws-cdk/issues/10302) + + +### Bug Fixes + +* **autoscaling:** `targetRequestsPerSecond` is actually requests per minute ([#11457](https://github.com/aws/aws-cdk/issues/11457)) ([39e277f](https://github.com/aws/aws-cdk/commit/39e277f65666e96fe1ad662254327967f666dbad)), closes [#11446](https://github.com/aws/aws-cdk/issues/11446) +* **core:** missing context in Stages is not filled by CLI ([#11461](https://github.com/aws/aws-cdk/issues/11461)) ([a4a555a](https://github.com/aws/aws-cdk/commit/a4a555a9f5e8844a377d8de5041219346d0eb65c)), closes [#9226](https://github.com/aws/aws-cdk/issues/9226) +* **lambda:** failed to add permission to an imported lambda from another account ([#11369](https://github.com/aws/aws-cdk/issues/11369)) ([715a030](https://github.com/aws/aws-cdk/commit/715a0300ea44c7cfcb6ae9973bd4ca16585c8fa5)), closes [#11278](https://github.com/aws/aws-cdk/issues/11278) [#11141](https://github.com/aws/aws-cdk/issues/11141) [#11141](https://github.com/aws/aws-cdk/issues/11141) +* **pipelines:** synthesizes incorrect paths on Windows ([#11464](https://github.com/aws/aws-cdk/issues/11464)) ([2ca31a8](https://github.com/aws/aws-cdk/commit/2ca31a87a8cbf0c5267b3d3b39c8dc75b142488e)), closes [#11359](https://github.com/aws/aws-cdk/issues/11359) [#11405](https://github.com/aws/aws-cdk/issues/11405) [#11424](https://github.com/aws/aws-cdk/issues/11424) +* **stepfunctions-tasks:** encryption is required for AthenaStartQueryExecution ([#11355](https://github.com/aws/aws-cdk/issues/11355)) ([f26a592](https://github.com/aws/aws-cdk/commit/f26a592e609674d528990aad14fb8884112ad64d)) +* **stepfunctions-tasks:** incorrect policy for Athena prevents database deletions ([#11427](https://github.com/aws/aws-cdk/issues/11427)) ([58e6576](https://github.com/aws/aws-cdk/commit/58e6576a90f722929495b7cd9f1d67f93bf9c31e)), closes [#11357](https://github.com/aws/aws-cdk/issues/11357) + ## [1.73.0](https://github.com/aws/aws-cdk/compare/v1.72.0...v1.73.0) (2020-11-11) diff --git a/version.v1.json b/version.v1.json index 80ff54da9d296..9b48089bc1d8f 100644 --- a/version.v1.json +++ b/version.v1.json @@ -1,3 +1,3 @@ { - "version": "1.73.0" + "version": "1.74.0" }