From a8cdcf62c32dfc0a6451a9b1e8f976a1d3bec452 Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Thu, 10 Jun 2021 09:45:22 +0200 Subject: [PATCH 01/15] chore(deps): upgrade projen (#75) Upgrades project dependencies. See details in [workflow run]. [Workflow Run]: https://github.com/cdklabs/construct-hub/actions/runs/924092455 ------ *Automatically created by projen via the "upgrade-projen" workflow* Co-authored-by: eladb --- .gitattributes | 1 - .github/workflows/upgrade-projen.yml | 105 --------------------------- .gitignore | 1 - .projen/deps.json | 2 +- .projen/tasks.json | 25 +------ package.json | 3 +- yarn.lock | 8 +- 7 files changed, 8 insertions(+), 137 deletions(-) delete mode 100644 .github/workflows/upgrade-projen.yml diff --git a/.gitattributes b/.gitattributes index e17a7ba40..3888b1992 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,7 +7,6 @@ /.github/workflows/build.yml linguist-generated /.github/workflows/release.yml linguist-generated /.github/workflows/upgrade-dependencies.yml linguist-generated -/.github/workflows/upgrade-projen.yml linguist-generated /.npmignore linguist-generated /.projen/** linguist-generated /.projen/jest-snapshot-resolver.js linguist-generated diff --git a/.github/workflows/upgrade-projen.yml b/.github/workflows/upgrade-projen.yml deleted file mode 100644 index 7e4635b6f..000000000 --- a/.github/workflows/upgrade-projen.yml +++ /dev/null @@ -1,105 +0,0 @@ -# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". - -name: upgrade-projen -on: - workflow_dispatch: {} - schedule: - - cron: 0 6 * * * -jobs: - upgrade: - name: Upgrade - runs-on: ubuntu-latest - permissions: - contents: read - outputs: - conclusion: ${{ steps.build.outputs.conclusion }} - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v1 - with: - node-version: 12.0.0 - - name: Install dependencies - run: yarn install --check-files --frozen-lockfile - - name: Upgrade dependencies - run: npx projen upgrade-projen - - name: Build - id: build - run: npx projen build && echo "::set-output name=conclusion::success" || echo - "::set-output name=conclusion::failure" - - name: Create Patch - run: |- - git add . - git diff --patch --staged > .upgrade.tmp.patch - - name: Upload patch - uses: actions/upload-artifact@v2 - with: - name: .upgrade.tmp.patch - path: .upgrade.tmp.patch - container: - image: jsii/superchain - pr: - name: Create Pull Request - needs: upgrade - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - checks: write - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Download patch - uses: actions/download-artifact@v2 - with: - name: .upgrade.tmp.patch - path: ${{ runner.temp }} - - name: Apply patch - run: '[ -s ${{ runner.temp }}/.upgrade.tmp.patch ] && git apply ${{ runner.temp - }}/.upgrade.tmp.patch || echo "Empty patch. Skipping."' - - name: Create Pull Request - id: create-pr - uses: peter-evans/create-pull-request@v3 - with: - token: ${{ secrets.CDK_AUTOMATION_GITHUB_TOKEN }} - commit-message: >- - chore(deps): upgrade projen - - - Upgrades project dependencies. See details in [workflow run]. - - - [Workflow Run]: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} - - - ------ - - - *Automatically created by projen via the "upgrade-projen" workflow* - branch: github-actions/upgrade-projen - title: "chore(deps): upgrade projen" - body: >- - Upgrades project dependencies. See details in [workflow run]. - - - [Workflow Run]: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} - - - ------ - - - *Automatically created by projen via the "upgrade-projen" workflow* - - name: Update status check - if: steps.create-pr.outputs.pull-request-url != '' - run: "curl -i --fail -X POST -H \"Accept: application/vnd.github.v3+json\" -H - \"Authorization: token ${GITHUB_TOKEN}\" - https://api.github.com/repos/${{ github.repository }}/check-runs -d - '{\"name\":\"build\",\"head_sha\":\"github-actions/upgrade-projen\",\ - \"status\":\"completed\",\"conclusion\":\"${{ - needs.upgrade.outputs.conclusion }}\",\"output\":{\"title\":\"Created - via the upgrade-projen workflow.\",\"summary\":\"Action run URL: - https://github.com/${{ github.repository }}/actions/runs/${{ - github.run_id }}\"}}'" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index e9783f85d..f880822f8 100644 --- a/.gitignore +++ b/.gitignore @@ -38,7 +38,6 @@ yarn-error.log* !/.github/workflows/build.yml !/.github/workflows/release.yml !/.github/workflows/upgrade-dependencies.yml -!/.github/workflows/upgrade-projen.yml !/.npmignore !/.projen/deps.json !/.projen/jest-snapshot-resolver.js diff --git a/.projen/deps.json b/.projen/deps.json index a12f6c139..36494ddf6 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -198,7 +198,7 @@ }, { "name": "projen", - "version": "^0.22.11", + "version": "^0.22.13", "type": "build" }, { diff --git a/.projen/tasks.json b/.projen/tasks.json index f17b91fd5..a8a51c095 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -152,34 +152,13 @@ }, "steps": [ { - "exec": "npm-check-updates --upgrade --target=minor --reject='projen'" + "exec": "npm-check-updates --upgrade --target=minor" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @aws-cdk/assert @aws-cdk/aws-certificatemanager @aws-cdk/aws-cloudfront @aws-cdk/aws-cloudfront-origins @aws-cdk/aws-cloudwatch @aws-cdk/aws-cloudwatch-actions @aws-cdk/aws-events @aws-cdk/aws-events-targets @aws-cdk/aws-lambda @aws-cdk/aws-lambda-event-sources @aws-cdk/aws-logs @aws-cdk/aws-route53 @aws-cdk/aws-route53-targets @aws-cdk/aws-s3 @aws-cdk/aws-s3-deployment @aws-cdk/aws-sns @aws-cdk/core @aws-cdk/cx-api @types/aws-lambda @types/fs-extra @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser aws-cdk aws-sdk aws-sdk-mock cdk-watchful construct-hub-webapp constructs esbuild eslint eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import fs-extra glob got jest jest-junit jsii jsii-diff jsii-docgen jsii-pacmak jsii-rosetta json-schema npm-check-updates pascal-case standard-version typescript yaml @aws-cdk/aws-certificatemanager @aws-cdk/aws-cloudfront @aws-cdk/aws-cloudfront-origins @aws-cdk/aws-cloudwatch @aws-cdk/aws-cloudwatch-actions @aws-cdk/aws-events @aws-cdk/aws-events-targets @aws-cdk/aws-lambda @aws-cdk/aws-lambda-event-sources @aws-cdk/aws-logs @aws-cdk/aws-route53 @aws-cdk/aws-route53-targets @aws-cdk/aws-s3 @aws-cdk/aws-s3-deployment @aws-cdk/aws-sns @aws-cdk/core @aws-cdk/cx-api cdk-watchful constructs @aws-cdk/aws-certificatemanager @aws-cdk/aws-cloudfront @aws-cdk/aws-cloudfront-origins @aws-cdk/aws-cloudwatch @aws-cdk/aws-cloudwatch-actions @aws-cdk/aws-events @aws-cdk/aws-events-targets @aws-cdk/aws-lambda @aws-cdk/aws-lambda-event-sources @aws-cdk/aws-logs @aws-cdk/aws-route53 @aws-cdk/aws-route53-targets @aws-cdk/aws-s3 @aws-cdk/aws-s3-deployment @aws-cdk/aws-sns @aws-cdk/core @aws-cdk/cx-api cdk-watchful constructs" - }, - { - "exec": "npx projen" - } - ] - }, - "upgrade-projen": { - "name": "upgrade-projen", - "description": "upgrade projen", - "env": { - "CI": "0" - }, - "steps": [ - { - "exec": "npm-check-updates --upgrade --target=minor --filter='projen'" - }, - { - "exec": "yarn install --check-files" - }, - { - "exec": "yarn upgrade projen" + "exec": "yarn upgrade" }, { "exec": "npx projen" diff --git a/package.json b/package.json index 98eb9ea01..b33c15daf 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "bump": "npx projen bump", "unbump": "npx projen unbump", "upgrade-dependencies": "npx projen upgrade-dependencies", - "upgrade-projen": "npx projen upgrade-projen", "default": "npx projen default", "watch": "npx projen watch", "package": "npx projen package", @@ -86,7 +85,7 @@ "json-schema": "^0.3.0", "npm-check-updates": "^11", "pascal-case": "^3.1.2", - "projen": "^0.22.11", + "projen": "^0.22.13", "standard-version": "^9", "typescript": "^4.3.2", "yaml": "^1.10.2" diff --git a/yarn.lock b/yarn.lock index 56fc66cc7..6fc79e592 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13180,10 +13180,10 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -projen@^0.22.11: - version "0.22.11" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.22.11.tgz#9d792838bb8f427008bd0570b4f3feb8bcefad64" - integrity sha512-i7PMJg0znJ+bnxB34wPn9QZwU2uAhmsT9qfzPBrAvvHVXYkzHRTJhI9usE2w+WJmHD5bYNGb4qVcVXOeKXsYqQ== +projen@^0.22.13: + version "0.22.13" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.22.13.tgz#dac96101db1e5e79711c9194c887e3c51ff30359" + integrity sha512-8PaVJQSVd0E6iyJVB1wogQ53L831vnUXEk5u4M6UD37mv6KkFJowG8NnPhPWPXbO0Wj6k1EGxcNKP9t/l2PFgw== dependencies: "@iarna/toml" "^2.2.5" chalk "^4.1.1" From 3e2c104e3e4d99aa6607eea40491049537c08131 Mon Sep 17 00:00:00 2001 From: Romain Marcadier Date: Thu, 10 Jun 2021 13:05:50 +0200 Subject: [PATCH 02/15] fix: S3 update notifications have URI-encoded keys (#74) The key in the S3 update notification is URI-encoded such that the `@` in scoped packages' keys is represented as `%40`. This currently fails the key check and causes scoped packages to be impossible to process. This addresses the problem by decoding URI components of the key before attempting to use the key. --- package.json | 48 +- .../__snapshots__/construct-hub.test.ts.snap | 36 +- .../transliterator.lambda.test.ts | 115 +++- .../__snapshots__/snapshot.test.ts.snap | 18 +- .../transliterator/transliterator.lambda.ts | 24 +- yarn.lock | 498 ++++++++++++++++-- 6 files changed, 644 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index b33c15daf..81da3493b 100644 --- a/package.json +++ b/package.json @@ -38,23 +38,23 @@ }, "devDependencies": { "@aws-cdk/assert": "^1.100.0", - "@aws-cdk/aws-certificatemanager": "^1.107.0", - "@aws-cdk/aws-cloudfront": "^1.107.0", - "@aws-cdk/aws-cloudfront-origins": "^1.107.0", - "@aws-cdk/aws-cloudwatch": "^1.107.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.107.0", - "@aws-cdk/aws-events": "^1.107.0", - "@aws-cdk/aws-events-targets": "^1.107.0", - "@aws-cdk/aws-lambda": "^1.107.0", - "@aws-cdk/aws-lambda-event-sources": "^1.107.0", - "@aws-cdk/aws-logs": "^1.107.0", - "@aws-cdk/aws-route53": "^1.107.0", - "@aws-cdk/aws-route53-targets": "^1.107.0", - "@aws-cdk/aws-s3": "^1.107.0", - "@aws-cdk/aws-s3-deployment": "^1.107.0", - "@aws-cdk/aws-sns": "^1.107.0", - "@aws-cdk/core": "^1.107.0", - "@aws-cdk/cx-api": "^1.107.0", + "@aws-cdk/aws-certificatemanager": "^1.100.0", + "@aws-cdk/aws-cloudfront": "^1.100.0", + "@aws-cdk/aws-cloudfront-origins": "^1.100.0", + "@aws-cdk/aws-cloudwatch": "^1.100.0", + "@aws-cdk/aws-cloudwatch-actions": "^1.100.0", + "@aws-cdk/aws-events": "^1.100.0", + "@aws-cdk/aws-events-targets": "^1.100.0", + "@aws-cdk/aws-lambda": "^1.100.0", + "@aws-cdk/aws-lambda-event-sources": "^1.100.0", + "@aws-cdk/aws-logs": "^1.100.0", + "@aws-cdk/aws-route53": "^1.100.0", + "@aws-cdk/aws-route53-targets": "^1.100.0", + "@aws-cdk/aws-s3": "^1.100.0", + "@aws-cdk/aws-s3-deployment": "^1.100.0", + "@aws-cdk/aws-sns": "^1.100.0", + "@aws-cdk/core": "^1.100.0", + "@aws-cdk/cx-api": "^1.100.0", "@types/aws-lambda": "^8.10.77", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", @@ -66,7 +66,7 @@ "aws-sdk-mock": "^5.1.0", "cdk-watchful": "^0.5.140", "construct-hub-webapp": "^0.1.11", - "constructs": "^3.3.75", + "constructs": "^3.2.27", "esbuild": "^0.12.2", "eslint": "^7.27.0", "eslint-import-resolver-node": "^0.3.4", @@ -99,8 +99,8 @@ "@aws-cdk/aws-events": "^1.100.0", "@aws-cdk/aws-events-targets": "^1.100.0", "@aws-cdk/aws-lambda": "^1.100.0", - "@aws-cdk/aws-lambda-event-sources": "^1.107.0", - "@aws-cdk/aws-logs": "^1.107.0", + "@aws-cdk/aws-lambda-event-sources": "^1.100.0", + "@aws-cdk/aws-logs": "^1.100.0", "@aws-cdk/aws-route53": "^1.100.0", "@aws-cdk/aws-route53-targets": "^1.100.0", "@aws-cdk/aws-s3": "^1.100.0", @@ -108,7 +108,7 @@ "@aws-cdk/aws-sns": "^1.100.0", "@aws-cdk/core": "^1.100.0", "@aws-cdk/cx-api": "^1.100.0", - "cdk-watchful": "0.5.140", + "cdk-watchful": "^0.5.140", "constructs": "^3.2.27" }, "dependencies": { @@ -120,8 +120,8 @@ "@aws-cdk/aws-events": "^1.100.0", "@aws-cdk/aws-events-targets": "^1.100.0", "@aws-cdk/aws-lambda": "^1.100.0", - "@aws-cdk/aws-lambda-event-sources": "^1.107.0", - "@aws-cdk/aws-logs": "^1.107.0", + "@aws-cdk/aws-lambda-event-sources": "^1.100.0", + "@aws-cdk/aws-logs": "^1.100.0", "@aws-cdk/aws-route53": "^1.100.0", "@aws-cdk/aws-route53-targets": "^1.100.0", "@aws-cdk/aws-s3": "^1.100.0", @@ -129,7 +129,7 @@ "@aws-cdk/aws-sns": "^1.100.0", "@aws-cdk/core": "^1.100.0", "@aws-cdk/cx-api": "^1.100.0", - "cdk-watchful": "0.5.140", + "cdk-watchful": "^0.5.140", "constructs": "^3.2.27" }, "bundledDependencies": [], diff --git a/src/__tests__/__snapshots__/construct-hub.test.ts.snap b/src/__tests__/__snapshots__/construct-hub.test.ts.snap index f802bc718..ec38c64f3 100644 --- a/src/__tests__/__snapshots__/construct-hub.test.ts.snap +++ b/src/__tests__/__snapshots__/construct-hub.test.ts.snap @@ -33,16 +33,16 @@ Object { }, }, "Parameters": Object { - "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bArtifactHash5FFA3998": Object { - "Description": "Artifact hash for asset \\"05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b\\"", + "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83ArtifactHashFC18658A": Object { + "Description": "Artifact hash for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", "Type": "String", }, - "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3Bucket33203C1D": Object { - "Description": "S3 bucket for asset \\"05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b\\"", + "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC": Object { + "Description": "S3 bucket for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", "Type": "String", }, - "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727": Object { - "Description": "S3 key for asset version \\"05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b\\"", + "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B": Object { + "Description": "S3 key for asset version \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", "Type": "String", }, "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eArtifactHash6467026A": Object { @@ -579,7 +579,7 @@ Object { "Properties": Object { "Code": Object { "S3Bucket": Object { - "Ref": "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3Bucket33203C1D", + "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC", }, "S3Key": Object { "Fn::Join": Array [ @@ -592,7 +592,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727", + "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", }, ], }, @@ -605,7 +605,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727", + "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", }, ], }, @@ -1209,16 +1209,16 @@ Object { }, }, "Parameters": Object { - "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bArtifactHash5FFA3998": Object { - "Description": "Artifact hash for asset \\"05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b\\"", + "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83ArtifactHashFC18658A": Object { + "Description": "Artifact hash for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", "Type": "String", }, - "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3Bucket33203C1D": Object { - "Description": "S3 bucket for asset \\"05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b\\"", + "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC": Object { + "Description": "S3 bucket for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", "Type": "String", }, - "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727": Object { - "Description": "S3 key for asset version \\"05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b\\"", + "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B": Object { + "Description": "S3 key for asset version \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", "Type": "String", }, "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eArtifactHash6467026A": Object { @@ -1916,7 +1916,7 @@ Object { "Properties": Object { "Code": Object { "S3Bucket": Object { - "Ref": "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3Bucket33203C1D", + "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC", }, "S3Key": Object { "Fn::Join": Array [ @@ -1929,7 +1929,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727", + "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", }, ], }, @@ -1942,7 +1942,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727", + "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", }, ], }, diff --git a/src/__tests__/backend/transliterator/transliterator.lambda.test.ts b/src/__tests__/backend/transliterator/transliterator.lambda.test.ts index eaa755b0e..c75d9000d 100644 --- a/src/__tests__/backend/transliterator/transliterator.lambda.test.ts +++ b/src/__tests__/backend/transliterator/transliterator.lambda.test.ts @@ -11,7 +11,7 @@ import * as AWSMock from 'aws-sdk-mock'; import { TargetLanguage } from 'jsii-rosetta'; import type { transliterateAssembly } from 'jsii-rosetta/lib/commands/transliterate'; -import { handler } from '../../../backend/transliterator/transliterator.lambda'; +import { handler, reset } from '../../../backend/transliterator/transliterator.lambda'; jest.mock('child_process'); jest.mock('jsii-rosetta/lib/commands/transliterate'); @@ -23,11 +23,118 @@ beforeEach((done) => { afterEach((done) => { AWSMock.restore(); - jest.resetAllMocks(); + reset(); done(); }); -test('basic usage', async () => { +test('scoped package', async () => { + // GIVEN + const packageScope = 'scope'; + const packageName = 'package-name'; + const packageVersion = '1.2.3-dev.4'; + const payload: S3Event = { + Records: [{ + awsRegion: 'bemuda-triangle-1', + eventVersion: '1337', + eventSource: 's3:DummySource', + eventName: 's3:DummyEvent', + eventTime: '1789-07-14T00:00:00+02:00', + userIdentity: { principalId: 'aws::principal::id' }, + requestParameters: { sourceIPAddress: '127.0.0.1' }, + responseElements: { + 'x-amz-id-2': '456', + 'x-amz-request-id': '123', + }, + s3: { + bucket: { + name: 'dummy-bucket', + arn: 'arn:aws:s3:::dummy-bucket', + ownerIdentity: { principalId: 'aws::principal::id' }, + }, + configurationId: '42', + object: { + eTag: 'eTag', + key: `packages/%40${packageScope}/${packageName}/v${packageVersion}/package.tgz`, + sequencer: 'Seq', + size: 1337, + versionId: 'VersionId', + }, + s3SchemaVersion: '1', + }, + }], + }; + const mockContext = {} as any; + const mockTarballBytes = randomBytes(128); + const mockOutputAssembly = randomBytes(128); + + AWSMock.mock('S3', 'getObject', (request: AWS.S3.GetObjectRequest, callback: Response) => { + try { + expect(request.Bucket).toBe(payload.Records[0].s3.bucket.name); + expect(request.Key).toBe(payload.Records[0].s3.object.key); + expect(request.VersionId).toBe(payload.Records[0].s3.object.versionId); + } catch (e) { + callback(e); + } + + callback(null, { + Body: mockTarballBytes, + }); + }); + + // eslint-disable-next-line @typescript-eslint/no-require-imports + const mockSpawn = require('child_process').spawn as jest.MockedFunction; + mockSpawn.mockImplementation((cmd: string, args: readonly string[], opts: child_process.SpawnOptions) => { + expect(cmd).toBe('npm'); + expect(args).toContain('install'); + expect(args).toContain('--ignore-scripts'); // Ensures lifecycle hooks don't run + expect(args).toContain('--no-bin-links'); // Ensures we don't attempt to add bin-links to $PATH + expect(opts.cwd).toBeDefined(); + expect(opts.stdio).toEqual(['ignore', 'inherit', 'inherit']); + + const tarballPath = args[args.length - 1]; + // eslint-disable-next-line @typescript-eslint/no-require-imports + expect(require('fs').readFileSync(tarballPath)).toEqual(mockTarballBytes); + + return new MockChildProcess(cmd, Array.from(args), fs.mkdir(path.join(opts.cwd!, 'node_modules', `@${packageScope}`, packageName), { recursive: true })); + }); + + // eslint-disable-next-line @typescript-eslint/no-require-imports + const mockTransliterateAssembly = require('jsii-rosetta/lib/commands/transliterate').transliterateAssembly as jest.MockedFunction; + mockTransliterateAssembly.mockImplementation(async ([dir, ...otherDirs], languages) => { + expect(languages).toEqual([TargetLanguage.PYTHON]); + expect(dir).toMatch(new RegExp(path.join('', 'node_modules', `@${packageScope}`, packageName) + '$')); + expect(otherDirs).toEqual([]); + + return fs.writeFile(path.resolve(dir, '.jsii.python'), mockOutputAssembly); + }); + + const key = payload.Records[0].s3.object.key + // The key is not URI-encoded when it's sent to the S3 SDK... + .split('/').map((comp) => decodeURIComponent(comp)).join('/') + .replace(/\/package\.tgz$/, '/assembly-python.json'); + AWSMock.mock('S3', 'putObject', (request: AWS.S3.PutObjectRequest, callback: Response) => { + try { + expect(request.Bucket).toBe(payload.Records[0].s3.bucket.name); + expect(request.Key).toBe(key); + expect(request.Body).toEqual(mockOutputAssembly); + } catch (e) { + return callback(e); + } + + callback(null, { VersionId: 'New-VersionID' }); + }); + + // WHEN + const result = handler(payload, mockContext); + + // THEN + await expect(result).resolves.toEqual([{ bucket: payload.Records[0].s3.bucket.name, key, versionId: 'New-VersionID' }]); + + expect(mockSpawn).toHaveBeenCalled(); + expect(mockTransliterateAssembly).toHaveBeenCalled(); +}); + +test('unscoped package', async () => { // GIVEN const packageName = 'package-name'; const packageVersion = '1.2.3-dev.4'; @@ -125,7 +232,7 @@ test('basic usage', async () => { // THEN await expect(result).resolves.toEqual([{ bucket: payload.Records[0].s3.bucket.name, key, versionId: 'New-VersionID' }]); - debugger; + expect(mockSpawn).toHaveBeenCalled(); expect(mockTransliterateAssembly).toHaveBeenCalled(); }); diff --git a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap index 0ec4bcf0b..2c8931f40 100644 --- a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap +++ b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap @@ -258,7 +258,7 @@ Resources: Properties: Code: S3Bucket: - Ref: AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3Bucket33203C1D + Ref: AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC S3Key: Fn::Join: - "" @@ -266,12 +266,12 @@ Resources: - 0 - Fn::Split: - "||" - - Ref: AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727 + - Ref: AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B - Fn::Select: - 1 - Fn::Split: - "||" - - Ref: AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727 + - Ref: AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B Role: Fn::GetAtt: - ConstructHubTransliteratorServiceRole0F8A20C8 @@ -644,18 +644,18 @@ Outputs: Export: Name: ConstructHubDomainName Parameters: - AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3Bucket33203C1D: + AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC: Type: String Description: S3 bucket for asset - "05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b" - AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bS3VersionKey4F4B0727: + "1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83" + AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B: Type: String Description: S3 key for asset version - "05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b" - AssetParameters05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13bArtifactHash5FFA3998: + "1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83" + AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83ArtifactHashFC18658A: Type: String Description: Artifact hash for asset - "05a4032ed8a2cf958bb5e3ca79a7a1c6d2e7fe5b2eec42cc092416afb1efe13b" + "1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83" AssetParameterse9882ab123687399f934da0d45effe675ecc8ce13b40cb946f3e1d6141fe8d68S3BucketAEADE8C7: Type: String Description: S3 bucket for asset diff --git a/src/backend/transliterator/transliterator.lambda.ts b/src/backend/transliterator/transliterator.lambda.ts index 77dc7ef36..92638ce54 100644 --- a/src/backend/transliterator/transliterator.lambda.ts +++ b/src/backend/transliterator/transliterator.lambda.ts @@ -12,7 +12,9 @@ import { TargetLanguage } from 'jsii-rosetta'; import { transliterateAssembly } from 'jsii-rosetta/lib/commands/transliterate'; const clients = new Map(); + const PACKAGE_KEY_REGEX = /^packages\/((?:@[^/]+\/)?[^/]+)\/v([^/]+)\/package.tgz$/; +// Capture groups: ┗━━━━━━━━1━━━━━━━━┛ ┗━━2━━┛ /** * This function receives an S3 event, and for each record, proceeds to download @@ -30,9 +32,14 @@ export async function handler(event: S3Event, context: Context): Promise(); for (const record of event.Records) { - const [, packageName, packageVersion] = record.s3.object.key.match(PACKAGE_KEY_REGEX) ?? []; + // Key names are escaped (`@` as `%40`) in the input payload... Decode it here... We cannot use + // `decodeURI` here because it does not undo encoding that `encodeURI` would not have done, and + // that would not replace `@` in the position where it is in the keys... So we have to work on + // the URI components instead. + const inputKey = record.s3.object.key.split('/').map((comp) => decodeURIComponent(comp)).join('/'); + const [, packageName, packageVersion] = inputKey.match(PACKAGE_KEY_REGEX) ?? []; if (packageName == null) { - throw new Error(`Invalid object key: "${record.s3.object.key}". It was expected to match ${PACKAGE_KEY_REGEX}!`); + throw new Error(`Invalid object key: "${inputKey}". It was expected to match ${PACKAGE_KEY_REGEX}!`); } const client = (clients.has(record.awsRegion) @@ -42,7 +49,7 @@ export async function handler(event: S3Event, context: Context): Promise packages/[<@scope>/]/v/package.tgz // Output object key => packages/[<@scope>/]/v/assembly-python.json - const key = record.s3.object.key.replace(/\/[^/]+$/, '/assembly-python.json'); + const key = inputKey.replace(/\/[^/]+$/, '/assembly-python.json'); const response = await client.putObject({ Bucket: record.s3.bucket.name, Key: key, @@ -104,6 +111,13 @@ export async function handler(event: S3Event, context: Context): Promise Date: Thu, 10 Jun 2021 14:40:25 +0200 Subject: [PATCH 03/15] chore: fix broken test (#76) Co-authored-by: Automation --- .projen/deps.json | 2 +- package.json | 2 +- .../__snapshots__/construct-hub.test.ts.snap | 152 +- .../transliterator.lambda.test.ts | 2 +- .../__snapshots__/snapshot.test.ts.snap | 58 +- .../transliterator/transliterator.lambda.ts | 8 +- yarn.lock | 2924 +++++++---------- 7 files changed, 1224 insertions(+), 1924 deletions(-) diff --git a/.projen/deps.json b/.projen/deps.json index 36494ddf6..b705fd4ae 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -198,7 +198,7 @@ }, { "name": "projen", - "version": "^0.22.13", + "version": "^0.22.15", "type": "build" }, { diff --git a/package.json b/package.json index 81da3493b..a28976015 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "json-schema": "^0.3.0", "npm-check-updates": "^11", "pascal-case": "^3.1.2", - "projen": "^0.22.13", + "projen": "^0.22.15", "standard-version": "^9", "typescript": "^4.3.2", "yaml": "^1.10.2" diff --git a/src/__tests__/__snapshots__/construct-hub.test.ts.snap b/src/__tests__/__snapshots__/construct-hub.test.ts.snap index ec38c64f3..adcf3f323 100644 --- a/src/__tests__/__snapshots__/construct-hub.test.ts.snap +++ b/src/__tests__/__snapshots__/construct-hub.test.ts.snap @@ -33,28 +33,16 @@ Object { }, }, "Parameters": Object { - "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83ArtifactHashFC18658A": Object { - "Description": "Artifact hash for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", + "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7ArtifactHashF2FB0EA7": Object { + "Description": "Artifact hash for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", "Type": "String", }, - "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC": Object { - "Description": "S3 bucket for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", + "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B": Object { + "Description": "S3 bucket for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", "Type": "String", }, - "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B": Object { - "Description": "S3 key for asset version \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", - "Type": "String", - }, - "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eArtifactHash6467026A": Object { - "Description": "Artifact hash for asset \\"28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e\\"", - "Type": "String", - }, - "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3BucketF36B6862": Object { - "Description": "S3 bucket for asset \\"28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e\\"", - "Type": "String", - }, - "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A": Object { - "Description": "S3 key for asset version \\"28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e\\"", + "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631": Object { + "Description": "S3 key for asset version \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", "Type": "String", }, "AssetParametersc24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cfArtifactHash85F58E48": Object { @@ -69,16 +57,28 @@ Object { "Description": "S3 key for asset version \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", }, - "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766ArtifactHashB8637A22": Object { - "Description": "Artifact hash for asset \\"c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766\\"", + "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE": Object { + "Description": "Artifact hash for asset \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", + "Type": "String", + }, + "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570": Object { + "Description": "S3 bucket for asset \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", + "Type": "String", + }, + "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7": Object { + "Description": "S3 key for asset version \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", + "Type": "String", + }, + "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dArtifactHashF032B9A3": Object { + "Description": "Artifact hash for asset \\"dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d\\"", "Type": "String", }, - "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096": Object { - "Description": "S3 bucket for asset \\"c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766\\"", + "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54": Object { + "Description": "S3 bucket for asset \\"dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d\\"", "Type": "String", }, - "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C": Object { - "Description": "S3 key for asset version \\"c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766\\"", + "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF": Object { + "Description": "S3 key for asset version \\"dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d\\"", "Type": "String", }, "AssetParameterse9882ab123687399f934da0d45effe675ecc8ce13b40cb946f3e1d6141fe8d68ArtifactHashD9A515C3": Object { @@ -336,7 +336,7 @@ Object { "Properties": Object { "Code": Object { "S3Bucket": Object { - "Ref": "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3BucketF36B6862", + "Ref": "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54", }, "S3Key": Object { "Fn::Join": Array [ @@ -349,7 +349,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A", + "Ref": "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF", }, ], }, @@ -362,7 +362,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A", + "Ref": "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF", }, ], }, @@ -579,7 +579,7 @@ Object { "Properties": Object { "Code": Object { "S3Bucket": Object { - "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC", + "Ref": "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570", }, "S3Key": Object { "Fn::Join": Array [ @@ -592,7 +592,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", + "Ref": "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7", }, ], }, @@ -605,7 +605,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", + "Ref": "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7", }, ], }, @@ -806,7 +806,7 @@ Object { }, "SourceBucketNames": Array [ Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", }, ], "SourceObjectKeys": Array [ @@ -821,7 +821,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", }, ], }, @@ -834,7 +834,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", }, ], }, @@ -1086,7 +1086,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", }, ], ], @@ -1101,7 +1101,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", }, "/*", ], @@ -1209,30 +1209,6 @@ Object { }, }, "Parameters": Object { - "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83ArtifactHashFC18658A": Object { - "Description": "Artifact hash for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", - "Type": "String", - }, - "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC": Object { - "Description": "S3 bucket for asset \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", - "Type": "String", - }, - "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B": Object { - "Description": "S3 key for asset version \\"1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83\\"", - "Type": "String", - }, - "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eArtifactHash6467026A": Object { - "Description": "Artifact hash for asset \\"28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e\\"", - "Type": "String", - }, - "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3BucketF36B6862": Object { - "Description": "S3 bucket for asset \\"28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e\\"", - "Type": "String", - }, - "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A": Object { - "Description": "S3 key for asset version \\"28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e\\"", - "Type": "String", - }, "AssetParameters7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4ArtifactHash5E28809B": Object { "Description": "Artifact hash for asset \\"7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4\\"", "Type": "String", @@ -1245,6 +1221,18 @@ Object { "Description": "S3 key for asset version \\"7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4\\"", "Type": "String", }, + "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7ArtifactHashF2FB0EA7": Object { + "Description": "Artifact hash for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", + "Type": "String", + }, + "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B": Object { + "Description": "S3 bucket for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", + "Type": "String", + }, + "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631": Object { + "Description": "S3 key for asset version \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", + "Type": "String", + }, "AssetParametersc24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cfArtifactHash85F58E48": Object { "Description": "Artifact hash for asset \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", @@ -1257,16 +1245,28 @@ Object { "Description": "S3 key for asset version \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", }, - "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766ArtifactHashB8637A22": Object { - "Description": "Artifact hash for asset \\"c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766\\"", + "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE": Object { + "Description": "Artifact hash for asset \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", + "Type": "String", + }, + "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570": Object { + "Description": "S3 bucket for asset \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", + "Type": "String", + }, + "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7": Object { + "Description": "S3 key for asset version \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", + "Type": "String", + }, + "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dArtifactHashF032B9A3": Object { + "Description": "Artifact hash for asset \\"dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d\\"", "Type": "String", }, - "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096": Object { - "Description": "S3 bucket for asset \\"c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766\\"", + "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54": Object { + "Description": "S3 bucket for asset \\"dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d\\"", "Type": "String", }, - "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C": Object { - "Description": "S3 key for asset version \\"c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766\\"", + "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF": Object { + "Description": "S3 key for asset version \\"dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d\\"", "Type": "String", }, "AssetParameterse9882ab123687399f934da0d45effe675ecc8ce13b40cb946f3e1d6141fe8d68ArtifactHashD9A515C3": Object { @@ -1673,7 +1673,7 @@ Object { "Properties": Object { "Code": Object { "S3Bucket": Object { - "Ref": "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3BucketF36B6862", + "Ref": "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54", }, "S3Key": Object { "Fn::Join": Array [ @@ -1686,7 +1686,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A", + "Ref": "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF", }, ], }, @@ -1699,7 +1699,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A", + "Ref": "AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF", }, ], }, @@ -1916,7 +1916,7 @@ Object { "Properties": Object { "Code": Object { "S3Bucket": Object { - "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC", + "Ref": "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570", }, "S3Key": Object { "Fn::Join": Array [ @@ -1929,7 +1929,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", + "Ref": "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7", }, ], }, @@ -1942,7 +1942,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B", + "Ref": "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7", }, ], }, @@ -2195,7 +2195,7 @@ Object { }, "SourceBucketNames": Array [ Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", }, ], "SourceObjectKeys": Array [ @@ -2210,7 +2210,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", }, ], }, @@ -2223,7 +2223,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", }, ], }, @@ -2488,7 +2488,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", }, ], ], @@ -2503,7 +2503,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096", + "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", }, "/*", ], diff --git a/src/__tests__/backend/transliterator/transliterator.lambda.test.ts b/src/__tests__/backend/transliterator/transliterator.lambda.test.ts index c75d9000d..91ebf9bb2 100644 --- a/src/__tests__/backend/transliterator/transliterator.lambda.test.ts +++ b/src/__tests__/backend/transliterator/transliterator.lambda.test.ts @@ -70,7 +70,7 @@ test('scoped package', async () => { AWSMock.mock('S3', 'getObject', (request: AWS.S3.GetObjectRequest, callback: Response) => { try { expect(request.Bucket).toBe(payload.Records[0].s3.bucket.name); - expect(request.Key).toBe(payload.Records[0].s3.object.key); + expect(request.Key).toBe(payload.Records[0].s3.object.key.split('/').map((comp) => decodeURIComponent(comp)).join('/')); expect(request.VersionId).toBe(payload.Records[0].s3.object.versionId); } catch (e) { callback(e); diff --git a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap index 2c8931f40..15186d57b 100644 --- a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap +++ b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap @@ -45,7 +45,7 @@ Resources: Properties: Code: S3Bucket: - Ref: AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3BucketF36B6862 + Ref: AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54 S3Key: Fn::Join: - "" @@ -53,12 +53,12 @@ Resources: - 0 - Fn::Split: - "||" - - Ref: AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A + - Ref: AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF - Fn::Select: - 1 - Fn::Split: - "||" - - Ref: AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A + - Ref: AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF Role: Fn::GetAtt: - ConstructHubMonitoringWebCanaryHomePageHttpGetFunctionServiceRole9AAAD93C @@ -258,7 +258,7 @@ Resources: Properties: Code: S3Bucket: - Ref: AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC + Ref: AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570 S3Key: Fn::Join: - "" @@ -266,12 +266,12 @@ Resources: - 0 - Fn::Split: - "||" - - Ref: AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B + - Ref: AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7 - Fn::Select: - 1 - Fn::Split: - "||" - - Ref: AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B + - Ref: AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7 Role: Fn::GetAtt: - ConstructHubTransliteratorServiceRole0F8A20C8 @@ -398,7 +398,7 @@ Resources: - CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C81C01536 - Arn SourceBucketNames: - - Ref: AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096 + - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B SourceObjectKeys: - Fn::Join: - "" @@ -406,12 +406,12 @@ Resources: - 0 - Fn::Split: - "||" - - Ref: AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C + - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631 - Fn::Select: - 1 - Fn::Split: - "||" - - Ref: AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C + - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631 DestinationBucketName: Ref: ConstructHubWebAppWebsiteBucket4B2B9DB2 Prune: true @@ -561,13 +561,13 @@ Resources: - - "arn:" - Ref: AWS::Partition - ":s3:::" - - Ref: AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096 + - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B - Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - ":s3:::" - - Ref: AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096 + - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B - /* - Action: - s3:GetObject* @@ -644,18 +644,18 @@ Outputs: Export: Name: ConstructHubDomainName Parameters: - AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3Bucket0E4EFAEC: + AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570: Type: String Description: S3 bucket for asset - "1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83" - AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83S3VersionKey786FD04B: + "da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305" + AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3VersionKeyAA8B8FD7: Type: String Description: S3 key for asset version - "1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83" - AssetParameters1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83ArtifactHashFC18658A: + "da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305" + AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE: Type: String Description: Artifact hash for asset - "1c91ce8aeba360cdd8bfafd9b98361fd736079cf307abe8b18ee95db76b32f83" + "da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305" AssetParameterse9882ab123687399f934da0d45effe675ecc8ce13b40cb946f3e1d6141fe8d68S3BucketAEADE8C7: Type: String Description: S3 bucket for asset @@ -680,29 +680,29 @@ Parameters: Type: String Description: Artifact hash for asset "c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf" - AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3Bucket266B8096: + AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B: Type: String Description: S3 bucket for asset - "c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766" - AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766S3VersionKey12C0054C: + "9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7" + AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631: Type: String Description: S3 key for asset version - "c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766" - AssetParametersc3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766ArtifactHashB8637A22: + "9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7" + AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7ArtifactHashF2FB0EA7: Type: String Description: Artifact hash for asset - "c3b739927b8d8e5b21b3e4282d406c32e80e5dd46e260bd74498542a9ccdb766" - AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3BucketF36B6862: + "9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7" + AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54: Type: String Description: S3 bucket for asset - "28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e" - AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eS3VersionKeyB9A97C6A: + "dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d" + AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3VersionKey4C7389DF: Type: String Description: S3 key for asset version - "28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e" - AssetParameters28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86eArtifactHash6467026A: + "dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d" + AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dArtifactHashF032B9A3: Type: String Description: Artifact hash for asset - "28199ce19bb6ddd0979b7fc89cc508c978ddae4336397e5321fae5ed56a0d86e" + "dcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789d" `; diff --git a/src/backend/transliterator/transliterator.lambda.ts b/src/backend/transliterator/transliterator.lambda.ts index 92638ce54..e1ac34dbc 100644 --- a/src/backend/transliterator/transliterator.lambda.ts +++ b/src/backend/transliterator/transliterator.lambda.ts @@ -27,7 +27,7 @@ const PACKAGE_KEY_REGEX = /^packages\/((?:@[^/]+\/)?[^/]+)\/v([^/]+)\/package.tg * @returns nothing */ export async function handler(event: S3Event, context: Context): Promise { - console.error(JSON.stringify(event, null, 2)); + console.log(JSON.stringify(event, null, 2)); const created = new Array(); @@ -47,9 +47,13 @@ export async function handler(event: S3Event, context: Context): Promise=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -7430,11 +6932,6 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -7553,9 +7050,9 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: ext "^1.1.2" esbuild@^0.12.2: - version "0.12.6" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.6.tgz#85bc755c7cf3005d4f34b4f10f98049ce0ee67ce" - integrity sha512-RDvVLvAjsq/kIZJoneMiUOH7EE7t2QaW7T3Q7EdQij14+bZbDq5sndb0tTanmHIFSqZVMBMMyqzVHkS3dJobeA== + version "0.12.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.8.tgz#ac90da77cb3bfbf49ab815200bcef7ffe1a3348f" + integrity sha512-sx/LwlP/SWTGsd9G4RlOPrXnIihAJ2xwBUmzoqe2nWwbXORMQWtAGNJNYLBJJqa3e9PWvVzxdrtyFZJcr7D87g== escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" @@ -8640,13 +8137,6 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-slugger@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" - integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -8744,13 +8234,6 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - got@^11.8.2: version "11.8.2" resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" @@ -8986,11 +8469,6 @@ hast-util-to-parse5@^6.0.0: xtend "^4.0.0" zwitch "^1.0.0" -hast-util-to-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz#9b24c114866bdb9478927d7e9c36a485ac728378" - integrity sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w== - hastscript@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" @@ -9137,17 +8615,15 @@ html-webpack-plugin@4.5.0: tapable "^1.1.3" util.promisify "1.0.0" -htmlparser2@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" @@ -10223,13 +9699,13 @@ jest-jasmine2@^26.6.3: throat "^5.0.0" jest-junit@^12: - version "12.1.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-12.1.0.tgz#f27173529e7f8f10eac37beb30f8b9bc97e8f3c3" - integrity sha512-Z45INyzEAqTkCHX/hGCPgVFfZP3hQVgI68CgoEwkCiBuxETsPsniq5yPd8oxbMMHtDCpUlxXzoq7jY35dcuLKw== + version "12.2.0" + resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-12.2.0.tgz#cff7f9516e84f8e30f6bdea04cd84db6b095a376" + integrity sha512-ecGzF3KEQwLbMP5xMO7wqmgmyZlY/5yWDvgE/vFa+/uIT0KsU5nluf0D2fjIlOKB+tb6DiuSSpZuGpsmwbf7Fw== dependencies: mkdirp "^1.0.4" strip-ansi "^5.2.0" - uuid "^3.3.3" + uuid "^8.3.2" xml "^1.0.1" jest-leak-detector@^26.6.2: @@ -10593,9 +10069,9 @@ jsii-diff@^1.29.0: yargs "^16.2.0" jsii-docgen@^1.8.85: - version "1.8.89" - resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.89.tgz#81f71da20161e293ef9d08de2b6a8153cbf12584" - integrity sha512-gb6N86ePVwGlQqZjkOzR70z0QpTh51P6/+gPGlRva5ndVIO5CzRv7qAFQhHcBgv7dTkH34qu8ncIUkMxMXCzpw== + version "1.8.90" + resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.90.tgz#cabafb6040c7376fcbdb2e6c8a4ce889b21ca3a3" + integrity sha512-qf+ebOa5p78onOokgf5SlEzNi1HnqXSlVGJTeI1w16FQPHKBgDVuTiFaxTVv1Wg4H0PUIvg20SEcRvGPqJLnag== dependencies: "@jsii/spec" "^1.30.0" fs-extra "^9.1.0" @@ -11127,11 +10603,6 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -longest-streak@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -11258,13 +10729,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -11290,15 +10754,6 @@ mdast-util-definitions@^4.0.0: dependencies: unist-util-visit "^2.0.0" -mdast-util-find-and-replace@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" - integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== - dependencies: - escape-string-regexp "^4.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - mdast-util-from-markdown@^0.8.0: version "0.8.5" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" @@ -11310,48 +10765,6 @@ mdast-util-from-markdown@^0.8.0: parse-entities "^2.0.0" unist-util-stringify-position "^2.0.0" -mdast-util-gfm-autolink-literal@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" - integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== - dependencies: - ccount "^1.0.0" - mdast-util-find-and-replace "^1.1.0" - micromark "^2.11.3" - -mdast-util-gfm-strikethrough@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" - integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== - dependencies: - mdast-util-to-markdown "^0.6.0" - -mdast-util-gfm-table@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" - integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== - dependencies: - markdown-table "^2.0.0" - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm-task-list-item@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" - integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== - dependencies: - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" - integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== - dependencies: - mdast-util-gfm-autolink-literal "^0.1.0" - mdast-util-gfm-strikethrough "^0.2.0" - mdast-util-gfm-table "^0.1.0" - mdast-util-gfm-task-list-item "^0.1.0" - mdast-util-to-markdown "^0.6.1" - mdast-util-to-hast@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" @@ -11366,23 +10779,6 @@ mdast-util-to-hast@^10.2.0: unist-util-position "^3.0.0" unist-util-visit "^2.0.0" -mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: - version "0.6.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" - integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== - dependencies: - "@types/unist" "^2.0.0" - longest-streak "^2.0.0" - mdast-util-to-string "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - zwitch "^1.0.0" - -mdast-util-to-string@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" @@ -11490,52 +10886,7 @@ microevent.ts@~0.1.1: resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== -micromark-extension-gfm-autolink-literal@~0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" - integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== - dependencies: - micromark "~2.11.3" - -micromark-extension-gfm-strikethrough@~0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" - integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-table@~0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" - integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-tagfilter@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" - integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== - -micromark-extension-gfm-task-list-item@~0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" - integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" - integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== - dependencies: - micromark "~2.11.0" - micromark-extension-gfm-autolink-literal "~0.5.0" - micromark-extension-gfm-strikethrough "~0.6.5" - micromark-extension-gfm-table "~0.4.0" - micromark-extension-gfm-tagfilter "~0.3.0" - micromark-extension-gfm-task-list-item "~0.3.0" - -micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: +micromark@~2.11.0: version "2.11.4" resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== @@ -12051,6 +11402,11 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +normalize-url@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.0.1.tgz#a4f27f58cf8c7b287b440b8a8201f42d0b00d256" + integrity sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ== + npm-bundled@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" @@ -12175,6 +11531,13 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + null-check@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" @@ -13530,9 +12893,9 @@ postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, po supports-color "^6.1.0" postcss@^8.1.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" - integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== + version "8.3.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.1.tgz#71f380151c227f83b898294a46481f689f86b70a" + integrity sha512-9qH0MGjsSm+fjxOi3GnwViL1otfi7qkj+l/WX5gcRGmZNGsIcqc+A5fBkE6PUobEQK4APqYVaES+B3Uti98TCw== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -13586,13 +12949,6 @@ printj@~1.1.0: resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== -prismjs@~1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" - integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== - optionalDependencies: - clipboard "^2.0.0" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -13608,10 +12964,10 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -projen@^0.22.13: - version "0.22.13" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.22.13.tgz#dac96101db1e5e79711c9194c887e3c51ff30359" - integrity sha512-8PaVJQSVd0E6iyJVB1wogQ53L831vnUXEk5u4M6UD37mv6KkFJowG8NnPhPWPXbO0Wj6k1EGxcNKP9t/l2PFgw== +projen@^0.22.15: + version "0.22.15" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.22.15.tgz#5a77df27140ec2c723570fd34b46a27d1a5394da" + integrity sha512-dk7vqIOZTBJeoCII35oPGUt4hku5iwXP6wUVq0TtIExw+XsHQqGrDA/s529KDbkC74no66LGKL9kBofo18KpSg== dependencies: "@iarna/toml" "^2.2.5" chalk "^4.1.1" @@ -13996,7 +13352,7 @@ react-is@^17.0.0, react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-markdown@6.0.2: +react-markdown@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-6.0.2.tgz#d89be45c278b1e5f0196f851fffb11e30c69f027" integrity sha512-Et2AjXAsbmPP1nLQQRqmVgcqzfwcz8uQJ8VAdADs8Nk/aaUA0YeU9RDLuCtD+GwajCnm/+Iiu2KPmXzmD/M3vA== @@ -14304,15 +13660,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -refractor@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.1.tgz#ebbc04b427ea81dc25ad333f7f67a0b5f4f0be3a" - integrity sha512-vaN6R56kLMuBszHSWlwTpcZ8KTMG6aUCok4GrxYDT20UIOXxOc5o6oDc8tNTzSlH3m2sI+Eu9Jo2kVdDcUTWYw== - dependencies: - hastscript "^6.0.0" - parse-entities "^2.0.0" - prismjs "~1.23.0" - regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -14406,42 +13753,18 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" -rehype-raw@5.1.0: +rehype-raw@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-5.1.0.tgz#66d5e8d7188ada2d31bc137bc19a1000cf2c6b7e" integrity sha512-MDvHAb/5mUnif2R+0IPCYJU8WjHa9UzGtM/F4AVy5GixPlDZ1z3HacYy4xojDU+uBa+0X/3PIfyQI26/2ljJNA== dependencies: hast-util-raw "^6.1.0" -rehype-rewrite@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/rehype-rewrite/-/rehype-rewrite-1.0.2.tgz#3534a954f56246e68e8b7fdaa1ea29c5d9734b12" - integrity sha512-B0cf4ziX1jJ0T2Dn6h8yA+CsUepFPrXlaNaFKTXJVRdKhpJWerMryzR5NlTjUEDPkTQb5euo3HNuJ8RFTH7qnQ== - dependencies: - ts-mdast "1.0.0" - unified "9.2.1" - relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remark-autolink-headings@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/remark-autolink-headings/-/remark-autolink-headings-6.0.1.tgz#074470b8ec7714a0f06fa151e293152bf9723df9" - integrity sha512-LTV5G5NMjypHEr14tMNJ36yrP+xwT7mejJelZOPXKiF5WvRH9o36zXnr2QGqfms2yVASNpDaC9NBOwKlJJKuQw== - dependencies: - extend "^3.0.0" - unist-util-visit "^2.0.0" - -remark-gfm@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" - integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== - dependencies: - mdast-util-gfm "^0.1.0" - micromark-extension-gfm "^0.3.0" - remark-parse@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" @@ -14456,15 +13779,6 @@ remark-rehype@^8.0.0: dependencies: mdast-util-to-hast "^10.2.0" -remark-slug@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.0.0.tgz#2b54a14a7b50407a5e462ac2f376022cce263e2c" - integrity sha512-ln67v5BrGKHpETnm6z6adlJPhESFJwfuZZ3jrmi+lKTzeZxh2tzFzUfDD4Pm2hRGOarHLuGToO86MNMZ/hA67Q== - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^2.0.0" - remote-git-tags@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/remote-git-tags/-/remote-git-tags-3.0.0.tgz#424f8ec2cdea00bb5af1784a49190f25e16983c3" @@ -14476,22 +13790,22 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.6.tgz#aaf875a67f2d1705821a22b64515db6d9e025fd2" + integrity sha512-GIis2GBr/ho0pFNf57D4XM4+PgnQuTii0WCPjEZmZfKivzUfGuRdjN2aQYtYMiNggHmNyBve+thFnNR1iBRcKg== dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.0" repeat-element@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== -repeat-string@^1.0.0, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -14896,11 +14210,6 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - selfsigned@^1.10.8: version "1.10.11" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" @@ -15979,11 +15288,6 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - tiny-invariant@^1.0.2, tiny-invariant@^1.0.6: version "1.1.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" @@ -16122,14 +15426,6 @@ tryer@^1.0.1: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-mdast@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ts-mdast/-/ts-mdast-1.0.0.tgz#62c1b5cb0c63dcab044f7f998f280700d504b57e" - integrity sha512-FmT5GbMU629/ty64741v7TdO8jm5xW09okr2VNExkLuRk5ngjKIDdn/woTB8lDtcgCMRS8lUNubImen0MkdF6g== - dependencies: - "@types/mdast" "^3.0.3" - "@types/unist" "^2.0.3" - ts-pnp@1.2.0, ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -16306,7 +15602,7 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -unified@9.2.1, unified@^9.0.0: +unified@^9.0.0: version "9.2.1" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz#ae18d5674c114021bfdbdf73865ca60f410215a3" integrity sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA== @@ -16401,7 +15697,7 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" -unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: +unist-util-visit@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== @@ -16585,7 +15881,7 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@^3.3.2, uuid@^3.3.3, uuid@^3.4.0: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== From 60828615ecf76330de6644b1d92de22fabe00259 Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Fri, 11 Jun 2021 10:05:18 +0200 Subject: [PATCH 04/15] chore(deps): upgrade dependencies (#77) Upgrades project dependencies. See details in [workflow run]. [Workflow Run]: https://github.com/cdklabs/construct-hub/actions/runs/926885681 ------ *Automatically created by projen via the "upgrade-dependencies" workflow* Co-authored-by: eladb --- .gitattributes | 3 + .projen/deps.json | 1 - package.json | 142 +++++++++--------- .../__snapshots__/construct-hub.test.ts.snap | 68 ++++----- .../__snapshots__/snapshot.test.ts.snap | 22 +-- yarn.lock | 98 ++++++------ 6 files changed, 168 insertions(+), 166 deletions(-) diff --git a/.gitattributes b/.gitattributes index 3888b1992..d9f2fae3c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,9 +7,12 @@ /.github/workflows/build.yml linguist-generated /.github/workflows/release.yml linguist-generated /.github/workflows/upgrade-dependencies.yml linguist-generated +/.gitignore linguist-generated /.npmignore linguist-generated /.projen/** linguist-generated +/.projen/deps.json linguist-generated /.projen/jest-snapshot-resolver.js linguist-generated +/.projen/tasks.json linguist-generated /lib/__tests__/devapp/cdk.json linguist-generated /LICENSE linguist-generated /package.json linguist-generated diff --git a/.projen/deps.json b/.projen/deps.json index b705fd4ae..90e2414bb 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -198,7 +198,6 @@ }, { "name": "projen", - "version": "^0.22.15", "type": "build" }, { diff --git a/package.json b/package.json index a28976015..92069d7ce 100644 --- a/package.json +++ b/package.json @@ -37,100 +37,100 @@ "organization": true }, "devDependencies": { - "@aws-cdk/assert": "^1.100.0", - "@aws-cdk/aws-certificatemanager": "^1.100.0", - "@aws-cdk/aws-cloudfront": "^1.100.0", - "@aws-cdk/aws-cloudfront-origins": "^1.100.0", - "@aws-cdk/aws-cloudwatch": "^1.100.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.100.0", - "@aws-cdk/aws-events": "^1.100.0", - "@aws-cdk/aws-events-targets": "^1.100.0", - "@aws-cdk/aws-lambda": "^1.100.0", - "@aws-cdk/aws-lambda-event-sources": "^1.100.0", - "@aws-cdk/aws-logs": "^1.100.0", - "@aws-cdk/aws-route53": "^1.100.0", - "@aws-cdk/aws-route53-targets": "^1.100.0", - "@aws-cdk/aws-s3": "^1.100.0", - "@aws-cdk/aws-s3-deployment": "^1.100.0", - "@aws-cdk/aws-sns": "^1.100.0", - "@aws-cdk/core": "^1.100.0", - "@aws-cdk/cx-api": "^1.100.0", + "@aws-cdk/assert": "^1.108.0", + "@aws-cdk/aws-certificatemanager": "^1.108.0", + "@aws-cdk/aws-cloudfront": "^1.108.0", + "@aws-cdk/aws-cloudfront-origins": "^1.108.0", + "@aws-cdk/aws-cloudwatch": "^1.108.0", + "@aws-cdk/aws-cloudwatch-actions": "^1.108.0", + "@aws-cdk/aws-events": "^1.108.0", + "@aws-cdk/aws-events-targets": "^1.108.0", + "@aws-cdk/aws-lambda": "^1.108.0", + "@aws-cdk/aws-lambda-event-sources": "^1.108.0", + "@aws-cdk/aws-logs": "^1.108.0", + "@aws-cdk/aws-route53": "^1.108.0", + "@aws-cdk/aws-route53-targets": "^1.108.0", + "@aws-cdk/aws-s3": "^1.108.0", + "@aws-cdk/aws-s3-deployment": "^1.108.0", + "@aws-cdk/aws-sns": "^1.108.0", + "@aws-cdk/core": "^1.108.0", + "@aws-cdk/cx-api": "^1.108.0", "@types/aws-lambda": "^8.10.77", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", "@types/node": "^12.0.0", - "@typescript-eslint/eslint-plugin": "^4.25.0", - "@typescript-eslint/parser": "^4.25.0", - "aws-cdk": "^1.100.0", - "aws-sdk": "^2.921.0", + "@typescript-eslint/eslint-plugin": "^4.26.1", + "@typescript-eslint/parser": "^4.26.1", + "aws-cdk": "^1.108.0", + "aws-sdk": "^2.926.0", "aws-sdk-mock": "^5.1.0", - "cdk-watchful": "^0.5.140", - "construct-hub-webapp": "^0.1.11", - "constructs": "^3.2.27", - "esbuild": "^0.12.2", - "eslint": "^7.27.0", + "cdk-watchful": "^0.5.154", + "construct-hub-webapp": "^0.1.34", + "constructs": "^3.3.77", + "esbuild": "^0.12.8", + "eslint": "^7.28.0", "eslint-import-resolver-node": "^0.3.4", "eslint-import-resolver-typescript": "^2.4.0", - "eslint-plugin-import": "^2.23.3", + "eslint-plugin-import": "^2.23.4", "fs-extra": "^10.0.0", "glob": "^7.1.7", "got": "^11.8.2", "jest": "^26.6.3", "jest-junit": "^12", - "jsii": "^1.29.0", - "jsii-diff": "^1.29.0", - "jsii-docgen": "^1.8.85", - "jsii-pacmak": "^1.29.0", + "jsii": "^1.30.0", + "jsii-diff": "^1.30.0", + "jsii-docgen": "^1.8.93", + "jsii-pacmak": "^1.30.0", "jsii-rosetta": "./vendor/jsii-rosetta.tgz", "json-schema": "^0.3.0", "npm-check-updates": "^11", "pascal-case": "^3.1.2", - "projen": "^0.22.15", + "projen": "^0.24.1", "standard-version": "^9", "typescript": "^4.3.2", "yaml": "^1.10.2" }, "peerDependencies": { - "@aws-cdk/aws-certificatemanager": "^1.100.0", - "@aws-cdk/aws-cloudfront": "^1.100.0", - "@aws-cdk/aws-cloudfront-origins": "^1.100.0", - "@aws-cdk/aws-cloudwatch": "^1.100.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.100.0", - "@aws-cdk/aws-events": "^1.100.0", - "@aws-cdk/aws-events-targets": "^1.100.0", - "@aws-cdk/aws-lambda": "^1.100.0", - "@aws-cdk/aws-lambda-event-sources": "^1.100.0", - "@aws-cdk/aws-logs": "^1.100.0", - "@aws-cdk/aws-route53": "^1.100.0", - "@aws-cdk/aws-route53-targets": "^1.100.0", - "@aws-cdk/aws-s3": "^1.100.0", - "@aws-cdk/aws-s3-deployment": "^1.100.0", - "@aws-cdk/aws-sns": "^1.100.0", - "@aws-cdk/core": "^1.100.0", - "@aws-cdk/cx-api": "^1.100.0", - "cdk-watchful": "^0.5.140", - "constructs": "^3.2.27" + "@aws-cdk/aws-certificatemanager": "^1.108.0", + "@aws-cdk/aws-cloudfront": "^1.108.0", + "@aws-cdk/aws-cloudfront-origins": "^1.108.0", + "@aws-cdk/aws-cloudwatch": "^1.108.0", + "@aws-cdk/aws-cloudwatch-actions": "^1.108.0", + "@aws-cdk/aws-events": "^1.108.0", + "@aws-cdk/aws-events-targets": "^1.108.0", + "@aws-cdk/aws-lambda": "^1.108.0", + "@aws-cdk/aws-lambda-event-sources": "^1.108.0", + "@aws-cdk/aws-logs": "^1.108.0", + "@aws-cdk/aws-route53": "^1.108.0", + "@aws-cdk/aws-route53-targets": "^1.108.0", + "@aws-cdk/aws-s3": "^1.108.0", + "@aws-cdk/aws-s3-deployment": "^1.108.0", + "@aws-cdk/aws-sns": "^1.108.0", + "@aws-cdk/core": "^1.108.0", + "@aws-cdk/cx-api": "^1.108.0", + "cdk-watchful": "^0.5.154", + "constructs": "^3.3.77" }, "dependencies": { - "@aws-cdk/aws-certificatemanager": "^1.100.0", - "@aws-cdk/aws-cloudfront": "^1.100.0", - "@aws-cdk/aws-cloudfront-origins": "^1.100.0", - "@aws-cdk/aws-cloudwatch": "^1.100.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.100.0", - "@aws-cdk/aws-events": "^1.100.0", - "@aws-cdk/aws-events-targets": "^1.100.0", - "@aws-cdk/aws-lambda": "^1.100.0", - "@aws-cdk/aws-lambda-event-sources": "^1.100.0", - "@aws-cdk/aws-logs": "^1.100.0", - "@aws-cdk/aws-route53": "^1.100.0", - "@aws-cdk/aws-route53-targets": "^1.100.0", - "@aws-cdk/aws-s3": "^1.100.0", - "@aws-cdk/aws-s3-deployment": "^1.100.0", - "@aws-cdk/aws-sns": "^1.100.0", - "@aws-cdk/core": "^1.100.0", - "@aws-cdk/cx-api": "^1.100.0", - "cdk-watchful": "^0.5.140", - "constructs": "^3.2.27" + "@aws-cdk/aws-certificatemanager": "^1.108.0", + "@aws-cdk/aws-cloudfront": "^1.108.0", + "@aws-cdk/aws-cloudfront-origins": "^1.108.0", + "@aws-cdk/aws-cloudwatch": "^1.108.0", + "@aws-cdk/aws-cloudwatch-actions": "^1.108.0", + "@aws-cdk/aws-events": "^1.108.0", + "@aws-cdk/aws-events-targets": "^1.108.0", + "@aws-cdk/aws-lambda": "^1.108.0", + "@aws-cdk/aws-lambda-event-sources": "^1.108.0", + "@aws-cdk/aws-logs": "^1.108.0", + "@aws-cdk/aws-route53": "^1.108.0", + "@aws-cdk/aws-route53-targets": "^1.108.0", + "@aws-cdk/aws-s3": "^1.108.0", + "@aws-cdk/aws-s3-deployment": "^1.108.0", + "@aws-cdk/aws-sns": "^1.108.0", + "@aws-cdk/core": "^1.108.0", + "@aws-cdk/cx-api": "^1.108.0", + "cdk-watchful": "^0.5.154", + "constructs": "^3.3.77" }, "bundledDependencies": [], "keywords": [ diff --git a/src/__tests__/__snapshots__/construct-hub.test.ts.snap b/src/__tests__/__snapshots__/construct-hub.test.ts.snap index adcf3f323..b3e5ed747 100644 --- a/src/__tests__/__snapshots__/construct-hub.test.ts.snap +++ b/src/__tests__/__snapshots__/construct-hub.test.ts.snap @@ -33,18 +33,6 @@ Object { }, }, "Parameters": Object { - "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7ArtifactHashF2FB0EA7": Object { - "Description": "Artifact hash for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", - "Type": "String", - }, - "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B": Object { - "Description": "S3 bucket for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", - "Type": "String", - }, - "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631": Object { - "Description": "S3 key for asset version \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", - "Type": "String", - }, "AssetParametersc24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cfArtifactHash85F58E48": Object { "Description": "Artifact hash for asset \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", @@ -57,6 +45,18 @@ Object { "Description": "S3 key for asset version \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", }, + "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59ArtifactHash3E5285E6": Object { + "Description": "Artifact hash for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "Type": "String", + }, + "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56": Object { + "Description": "S3 bucket for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "Type": "String", + }, + "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD": Object { + "Description": "S3 key for asset version \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "Type": "String", + }, "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE": Object { "Description": "Artifact hash for asset \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", "Type": "String", @@ -806,7 +806,7 @@ Object { }, "SourceBucketNames": Array [ Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", }, ], "SourceObjectKeys": Array [ @@ -821,7 +821,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", }, ], }, @@ -834,7 +834,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", }, ], }, @@ -1086,7 +1086,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", }, ], ], @@ -1101,7 +1101,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", }, "/*", ], @@ -1221,18 +1221,6 @@ Object { "Description": "S3 key for asset version \\"7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4\\"", "Type": "String", }, - "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7ArtifactHashF2FB0EA7": Object { - "Description": "Artifact hash for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", - "Type": "String", - }, - "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B": Object { - "Description": "S3 bucket for asset \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", - "Type": "String", - }, - "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631": Object { - "Description": "S3 key for asset version \\"9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7\\"", - "Type": "String", - }, "AssetParametersc24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cfArtifactHash85F58E48": Object { "Description": "Artifact hash for asset \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", @@ -1245,6 +1233,18 @@ Object { "Description": "S3 key for asset version \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", }, + "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59ArtifactHash3E5285E6": Object { + "Description": "Artifact hash for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "Type": "String", + }, + "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56": Object { + "Description": "S3 bucket for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "Type": "String", + }, + "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD": Object { + "Description": "S3 key for asset version \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "Type": "String", + }, "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE": Object { "Description": "Artifact hash for asset \\"da254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305\\"", "Type": "String", @@ -2195,7 +2195,7 @@ Object { }, "SourceBucketNames": Array [ Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", }, ], "SourceObjectKeys": Array [ @@ -2210,7 +2210,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", }, ], }, @@ -2223,7 +2223,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", }, ], }, @@ -2488,7 +2488,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", }, ], ], @@ -2503,7 +2503,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B", + "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", }, "/*", ], diff --git a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap index 15186d57b..049679fea 100644 --- a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap +++ b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap @@ -398,7 +398,7 @@ Resources: - CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C81C01536 - Arn SourceBucketNames: - - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B + - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56 SourceObjectKeys: - Fn::Join: - "" @@ -406,12 +406,12 @@ Resources: - 0 - Fn::Split: - "||" - - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631 + - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD - Fn::Select: - 1 - Fn::Split: - "||" - - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631 + - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD DestinationBucketName: Ref: ConstructHubWebAppWebsiteBucket4B2B9DB2 Prune: true @@ -561,13 +561,13 @@ Resources: - - "arn:" - Ref: AWS::Partition - ":s3:::" - - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B + - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56 - Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - ":s3:::" - - Ref: AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B + - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56 - /* - Action: - s3:GetObject* @@ -680,18 +680,18 @@ Parameters: Type: String Description: Artifact hash for asset "c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf" - AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3Bucket17AF772B: + AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56: Type: String Description: S3 bucket for asset - "9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7" - AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7S3VersionKeyE8FD8631: + "d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59" + AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD: Type: String Description: S3 key for asset version - "9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7" - AssetParameters9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7ArtifactHashF2FB0EA7: + "d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59" + AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59ArtifactHash3E5285E6: Type: String Description: Artifact hash for asset - "9226d7172fb67ab2dd3d5b1fb864855ab748563ab2638870d1b06c0d735776a7" + "d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59" AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54: Type: String Description: S3 bucket for asset diff --git a/yarn.lock b/yarn.lock index 78c4f94aa..dfa720198 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@aws-cdk/assert@^1.100.0": +"@aws-cdk/assert@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/assert/-/assert-1.108.0.tgz#fa36dc5c9c1d39140e6a74a6a8f77c757c461d35" integrity sha512-gAcqc3qVhP79WO9XJK0ITXp3QbgI+ThC5U7643gHLSxG7Izqrk6zD27c9xMmckOWvGognOLyKB4KdYvcg3RDkw== @@ -90,7 +90,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-certificatemanager@1.108.0", "@aws-cdk/aws-certificatemanager@^1.100.0": +"@aws-cdk/aws-certificatemanager@1.108.0", "@aws-cdk/aws-certificatemanager@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.108.0.tgz#0bde545d0892e5575463cd845703d3f871180a52" integrity sha512-Vy5mw/1PFWjTUB8Z64gid0+NAtfp17EGjRE7t0AM5ZcwviIqyCW/k5pNCiu6JumqRtTm2MjcASCKSOnJShBthA== @@ -114,7 +114,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudfront-origins@^1.100.0": +"@aws-cdk/aws-cloudfront-origins@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudfront-origins/-/aws-cloudfront-origins-1.108.0.tgz#4ab2b69ebfe8ec05e25f53dce887ad067a06ce55" integrity sha512-ZO8SDhCyGnuFBYrXHSEatB+hJlIevxWWATxdBObHBoz39+IrG2Uj9I3j+pX2Qxr2tcsJxd5XZs/9kwSS9uw4sQ== @@ -126,7 +126,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudfront@1.108.0", "@aws-cdk/aws-cloudfront@^1.100.0": +"@aws-cdk/aws-cloudfront@1.108.0", "@aws-cdk/aws-cloudfront@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.108.0.tgz#3fcd245d40b7b33936f072e5a7ae7f0c62a2e0af" integrity sha512-ebaaq4CDs8PPeiXsGDeQVeMfJ/aMPoLumDpnSMB35F3isn584YQN8yJCdgz9GJE1AFCs8u4ROP7aAaSzv33j2g== @@ -142,7 +142,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudwatch-actions@^1.100.0", "@aws-cdk/aws-cloudwatch-actions@^1.94.1": +"@aws-cdk/aws-cloudwatch-actions@^1.108.0", "@aws-cdk/aws-cloudwatch-actions@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudwatch-actions/-/aws-cloudwatch-actions-1.108.0.tgz#8a399ae5da2042bf562ea510263bde53d6168c48" integrity sha512-c3n9uIVzhhYQY/Nyx+mcd8fUsFFTVd1pLojuKE77fdibrcj40LWAU6hNjBzwwp2Hpogjd/ztEwZkLx1lC5PIew== @@ -155,7 +155,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudwatch@1.108.0", "@aws-cdk/aws-cloudwatch@^1.100.0", "@aws-cdk/aws-cloudwatch@^1.94.1": +"@aws-cdk/aws-cloudwatch@1.108.0", "@aws-cdk/aws-cloudwatch@^1.108.0", "@aws-cdk/aws-cloudwatch@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.108.0.tgz#f0069528e27ff494b1e9afc028376c3aa1cd7e1b" integrity sha512-HhbiIVtZr1B4XU2GXKxoqVBzqk1NwUem3y7PBi9Z95TF50xBiU7VSMM4Sw2pVoFXzOmxsI7TkCYWGQlA3FQQfw== @@ -377,7 +377,7 @@ "@aws-cdk/region-info" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-events-targets@1.108.0", "@aws-cdk/aws-events-targets@^1.100.0", "@aws-cdk/aws-events-targets@^1.94.1": +"@aws-cdk/aws-events-targets@1.108.0", "@aws-cdk/aws-events-targets@^1.108.0", "@aws-cdk/aws-events-targets@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-events-targets/-/aws-events-targets-1.108.0.tgz#74d00b62a686697131db0cc7e01f554ad98f0c5f" integrity sha512-SR6auORBdibzlydWszXYmi2JXAprK4QBj0IfIm1CrCcfdTzJZ4DeXX3I7MEF5LmJLVAs8V7llpeEJikkosqkYg== @@ -402,7 +402,7 @@ "@aws-cdk/custom-resources" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-events@1.108.0", "@aws-cdk/aws-events@^1.100.0", "@aws-cdk/aws-events@^1.94.1": +"@aws-cdk/aws-events@1.108.0", "@aws-cdk/aws-events@^1.108.0", "@aws-cdk/aws-events@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-events/-/aws-events-1.108.0.tgz#00142b3d20c000920e4a49800a6d053c2439fc13" integrity sha512-qLBLCK7558FItzeTIonJ86ojmzc1hwsqStcELABcNqweMe+FYN4RzcUM0oMl2MjbpLR+aaWX9okTPUlfS+CCYw== @@ -460,7 +460,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-lambda-event-sources@^1.100.0": +"@aws-cdk/aws-lambda-event-sources@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-lambda-event-sources/-/aws-lambda-event-sources-1.108.0.tgz#b24f381c74e2779cdae6a3e91aea6300027fa44d" integrity sha512-rIx8cr/KUlhUV6XaTc6Ifuw1h8rfOa+wWm2oqNC9WIAqmoSDgcim3j1tA1Esa17p0v3Bv3XER/3GQagpQkdBqw== @@ -481,7 +481,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-lambda@1.108.0", "@aws-cdk/aws-lambda@^1.100.0", "@aws-cdk/aws-lambda@^1.94.1": +"@aws-cdk/aws-lambda@1.108.0", "@aws-cdk/aws-lambda@^1.108.0", "@aws-cdk/aws-lambda@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-lambda/-/aws-lambda-1.108.0.tgz#d07a128db81c58ea0256b3b414aab332cbdd4527" integrity sha512-NE24Rud/gANcJszLYI6xlFQCHpv3v8izmrCycFapFHRgOd8b+DtaptZey8qZrWpkJVj+hDokJbCajjR8u+xuXQ== @@ -505,7 +505,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-logs@1.108.0", "@aws-cdk/aws-logs@^1.100.0": +"@aws-cdk/aws-logs@1.108.0", "@aws-cdk/aws-logs@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-logs/-/aws-logs-1.108.0.tgz#a3fa57157bf0cba5421344a76d81943f1b0e7eae" integrity sha512-25Lnsr4ea8M2t9OxfyS+9Upo2MCAe9SWnozJ7NpBF7sZQ8JdKnXC96gLpFExfQ3FQlWY/Olg1G47G6SRQhwPUw== @@ -534,7 +534,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-route53-targets@1.108.0", "@aws-cdk/aws-route53-targets@^1.100.0": +"@aws-cdk/aws-route53-targets@1.108.0", "@aws-cdk/aws-route53-targets@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.108.0.tgz#1d82448adfa6fc209a36cbe7881e3085a6967e65" integrity sha512-Y5zq3w+KJk5eorJWuiJrBrbyN1zMPRMy8MdqNA+bJwNKifRVrxBTFiNzSh5AC1iT6G6fyjCry8Rnzz9gYvLuvA== @@ -553,7 +553,7 @@ "@aws-cdk/region-info" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-route53@1.108.0", "@aws-cdk/aws-route53@^1.100.0": +"@aws-cdk/aws-route53@1.108.0", "@aws-cdk/aws-route53@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-route53/-/aws-route53-1.108.0.tgz#cd2982fe133cf740c0a35647fd7d40e83ab30a25" integrity sha512-TKrZa79Rt/k7iHb+0QoSuoqdvxGSgOSnPK/0/cTGqrNRUjpgWdSTwq5zwLrB61bCLw7huD4bJtJ6Uoa3auGv4Q== @@ -579,7 +579,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-s3-deployment@^1.100.0": +"@aws-cdk/aws-s3-deployment@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-s3-deployment/-/aws-s3-deployment-1.108.0.tgz#2233c485a85bf562d174157519bd7ca9a024522d" integrity sha512-R6bIxZ3DIt9x2Eh00TpzPlkF84lIHwlDsgc4ecutAdGM2zNz0je1thQvvpdH0xLm3h9xNOkQiuYygDLAzV6rYw== @@ -607,7 +607,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-s3@1.108.0", "@aws-cdk/aws-s3@^1.100.0": +"@aws-cdk/aws-s3@1.108.0", "@aws-cdk/aws-s3@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-s3/-/aws-s3-1.108.0.tgz#9e4bb386fd09c76b7c4b428dc80eb977e75a52ff" integrity sha512-Pi7vlhSFrFfg4DMxxiW93ZkLS7232RatV7bmViPQPfqlSlYBxjwlrQL46o9T9CcNihXW93GzbTSgz5Hm7liwIg== @@ -672,7 +672,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-sns@1.108.0", "@aws-cdk/aws-sns@^1.100.0", "@aws-cdk/aws-sns@^1.94.1": +"@aws-cdk/aws-sns@1.108.0", "@aws-cdk/aws-sns@^1.108.0", "@aws-cdk/aws-sns@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-sns/-/aws-sns-1.108.0.tgz#2a98fe8893e013a9466550777b819eabcaddb15f" integrity sha512-NNVqMCGyn50mGVP/Mib+RqQIZvt9w8occLUM+6bb+kkYfL7TDkWScujx3Ol0nTa6ocLTdbvdqg9uGs1mtXYQrw== @@ -748,7 +748,7 @@ string-width "^4.2.2" table "^6.7.1" -"@aws-cdk/core@1.108.0", "@aws-cdk/core@^1.100.0", "@aws-cdk/core@^1.94.1": +"@aws-cdk/core@1.108.0", "@aws-cdk/core@^1.108.0", "@aws-cdk/core@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/core/-/core-1.108.0.tgz#5349572bf1da6627d79a6dbc3ec85d0fbf073a58" integrity sha512-PQHFfm/0QE85Mw9jMmpN/hMMUHywceJddInVZbCUBySh1E57k5bHaY0v7Dv92ehoHXk+wShbaXinzwcQz8ROfQ== @@ -776,7 +776,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/cx-api@1.108.0", "@aws-cdk/cx-api@^1.100.0": +"@aws-cdk/cx-api@1.108.0", "@aws-cdk/cx-api@^1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/cx-api/-/cx-api-1.108.0.tgz#443d91366b56ba1db3080b6b85b60325ffc02ef6" integrity sha512-sjlvgJdjor5nI1ddL2GKMwXiL4a+ZcBFK+n84wJY69bKajT7ZZohn9QXvF+5JSMHUEXgqhz6rTYpwCKPQCr6VQ== @@ -3577,7 +3577,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.25.0", "@typescript-eslint/eslint-plugin@^4.5.0": +"@typescript-eslint/eslint-plugin@^4.26.1", "@typescript-eslint/eslint-plugin@^4.5.0": version "4.26.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz#b9c7313321cb837e2bf8bebe7acc2220659e67d3" integrity sha512-aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw== @@ -3614,7 +3614,7 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.25.0", "@typescript-eslint/parser@^4.5.0": +"@typescript-eslint/parser@^4.26.1", "@typescript-eslint/parser@^4.5.0": version "4.26.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.1.tgz#cecfdd5eb7a5c13aabce1c1cfd7fbafb5a0f1e8e" integrity sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ== @@ -4337,7 +4337,7 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== -aws-cdk@^1.100.0: +aws-cdk@^1.108.0: version "1.108.0" resolved "https://registry.yarnpkg.com/aws-cdk/-/aws-cdk-1.108.0.tgz#37a8364a892a278267e18d30dcefbbb3b73b3a47" integrity sha512-aE33GE5gbF7JLKLQsaZ4yPshVj6aCUq3AGyfss8ZO8c8+DPaPzFTxnoTpQ7LXCbXXxpq2i0NAXcwbNZse6zXKw== @@ -4375,10 +4375,10 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.848.0, aws-sdk@^2.921.0: - version "2.925.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.925.0.tgz#a352f3adc8274120fb31fa4fc04527d44b6107cf" - integrity sha512-dHXngzuSTZvIFWizWbU+ceZTAKmgodzEIi/AWbB+z0THKfxD3Iz/CJ7kZ7a9QyZv7X082L68vv3siMhXBMoTLA== +aws-sdk@^2.637.0, aws-sdk@^2.848.0, aws-sdk@^2.926.0: + version "2.926.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.926.0.tgz#96f40b3e8400957becc5b8446e2322c0ff0e8a85" + integrity sha512-GFdAznnwxBxRPUTLP8gyFG8GhbUQ0sWwNCocYHkS/FB18hr8gmB3xv2m7VVWA/YkPDXvviPnoB680Z47VSEkqA== dependencies: buffer "4.9.2" events "1.1.1" @@ -5144,7 +5144,7 @@ cdk-assets@1.108.0: glob "^7.1.7" yargs "^16.2.0" -cdk-watchful@^0.5.140: +cdk-watchful@^0.5.154: version "0.5.154" resolved "https://registry.yarnpkg.com/cdk-watchful/-/cdk-watchful-0.5.154.tgz#deeec9cc671fbb07257802dedc345aedd9776176" integrity sha512-rRnyjv3g2zi0AggCNlvmOkTpuYgdifnswDpy9xCgwM/GQafvc6dKmhwjrMB2rwCPM8yDINr4lPyrAc4bNkpTmw== @@ -5648,10 +5648,10 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -construct-hub-webapp@^0.1.11: - version "0.1.33" - resolved "https://registry.yarnpkg.com/construct-hub-webapp/-/construct-hub-webapp-0.1.33.tgz#32b1116b9e7ce77aa645ac15a6be4d10db126b4c" - integrity sha512-ng3+Vt4tyABjXRaBjMtWkgn/ac7LNEr6Qel2qHvLEExiEjSzIEKdy0wCJYF/xuz3UjB+YrULAUXMBJLXQeXgyQ== +construct-hub-webapp@^0.1.34: + version "0.1.34" + resolved "https://registry.yarnpkg.com/construct-hub-webapp/-/construct-hub-webapp-0.1.34.tgz#b3b0e2a0b97f88af073f17f129192dea643693df" + integrity sha512-8JVRtArBV51vUNBmZ54NhRWe7esqURRXkofwsAXg6bno4Cs855mvWM7sm5oLfXlLKMhJAC+ZIpUuAW+EDhB95A== dependencies: "@chakra-ui/icons" "*" "@chakra-ui/react" "*" @@ -5671,7 +5671,7 @@ construct-hub-webapp@^0.1.11: rehype-raw "^5.1.0" web-vitals "^1.1.2" -constructs@^3.2.27, constructs@^3.3.69: +constructs@^3.3.69, constructs@^3.3.77: version "3.3.77" resolved "https://registry.yarnpkg.com/constructs/-/constructs-3.3.77.tgz#7c2d8eb9758a9a0c1e7f194410a19a1f6e474008" integrity sha512-A9xWepIkiED0baaEWxokUvRnPrxcAwoCsyIPDAJ3VqQ90juiIHQ0gkW9GX0nG6c+Go5l1dL5FZIFZBeayx+xIg== @@ -7049,7 +7049,7 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -esbuild@^0.12.2: +esbuild@^0.12.8: version "0.12.8" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.8.tgz#ac90da77cb3bfbf49ab815200bcef7ffe1a3348f" integrity sha512-sx/LwlP/SWTGsd9G4RlOPrXnIihAJ2xwBUmzoqe2nWwbXORMQWtAGNJNYLBJJqa3e9PWvVzxdrtyFZJcr7D87g== @@ -7150,7 +7150,7 @@ eslint-plugin-flowtype@^5.2.0: lodash "^4.17.15" string-natural-compare "^3.0.1" -eslint-plugin-import@^2.22.1, eslint-plugin-import@^2.23.3: +eslint-plugin-import@^2.22.1, eslint-plugin-import@^2.23.4: version "2.23.4" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== @@ -7277,7 +7277,7 @@ eslint-webpack-plugin@^2.5.2: normalize-path "^3.0.0" schema-utils "^3.0.0" -eslint@^7.11.0, eslint@^7.27.0: +eslint@^7.11.0, eslint@^7.28.0: version "7.28.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== @@ -10056,7 +10056,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -jsii-diff@^1.29.0: +jsii-diff@^1.30.0: version "1.30.0" resolved "https://registry.yarnpkg.com/jsii-diff/-/jsii-diff-1.30.0.tgz#b905760ddf5e29c6c6ef31b8c670a2d1db7291c0" integrity sha512-74GeV8ab8BrS3k8h8HKnI8f5PecsRahflElxJuc6bI9xA5AhRAzBF/Lrt5HibuYPuSsyLAmhTU1GTHdRvKq8aA== @@ -10068,17 +10068,17 @@ jsii-diff@^1.29.0: typescript "~3.9.9" yargs "^16.2.0" -jsii-docgen@^1.8.85: - version "1.8.90" - resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.90.tgz#cabafb6040c7376fcbdb2e6c8a4ce889b21ca3a3" - integrity sha512-qf+ebOa5p78onOokgf5SlEzNi1HnqXSlVGJTeI1w16FQPHKBgDVuTiFaxTVv1Wg4H0PUIvg20SEcRvGPqJLnag== +jsii-docgen@^1.8.93: + version "1.8.93" + resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.93.tgz#9d835bbb185b38ee85740158d467414c2cd2a60e" + integrity sha512-ZRKDDLcs0STFaUpjPadVMkgyrX9nqCw+KdM1TLJl4m+Az/TeUpByExuqvJJkpBuZJmwUzDG+LMbu8h4wJ+59jw== dependencies: "@jsii/spec" "^1.30.0" fs-extra "^9.1.0" jsii-reflect "^1.30.0" yargs "^16.2.0" -jsii-pacmak@^1.29.0: +jsii-pacmak@^1.30.0: version "1.30.0" resolved "https://registry.yarnpkg.com/jsii-pacmak/-/jsii-pacmak-1.30.0.tgz#a6a7570da1388027ce4e5ca1603d4144f341d307" integrity sha512-hYvISYBXZ5WL/+LtG3HpVrimguqAoWa3D8jaqsnoiIGrdmaxKCZ0VnioJYxEX7wVamYuCwXu5NFx/b31BspU6A== @@ -10130,7 +10130,7 @@ jsii-rosetta@^1.30.0: xmldom "^0.6.0" yargs "^16.2.0" -jsii@^1.29.0: +jsii@^1.30.0: version "1.30.0" resolved "https://registry.yarnpkg.com/jsii/-/jsii-1.30.0.tgz#fe20f60e33d0beaae24bc6537fb623333e913da4" integrity sha512-TfVHhGjP0QiTEkyfnxrDIE8Da+itxnNUK2YoD69qIPAzmZ58goKVqK4sbXrXz2urHSToGLDmWI8+H69cLeVjJw== @@ -12964,10 +12964,10 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -projen@^0.22.15: - version "0.22.15" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.22.15.tgz#5a77df27140ec2c723570fd34b46a27d1a5394da" - integrity sha512-dk7vqIOZTBJeoCII35oPGUt4hku5iwXP6wUVq0TtIExw+XsHQqGrDA/s529KDbkC74no66LGKL9kBofo18KpSg== +projen@^0.24.1: + version "0.24.1" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.24.1.tgz#3ee15af00f5171b68639f8e03a4e4264b86ecf52" + integrity sha512-2jSWbTtPm3xHn49t8WyIBsGfROyiNA8osOoFnv+ED3wsrCFfOfSsgRJzTHrGgbFshdOUdbsMaINKAJ0gJGGTlg== dependencies: "@iarna/toml" "^2.2.5" chalk "^4.1.1" @@ -13790,15 +13790,15 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.6.tgz#aaf875a67f2d1705821a22b64515db6d9e025fd2" - integrity sha512-GIis2GBr/ho0pFNf57D4XM4+PgnQuTii0WCPjEZmZfKivzUfGuRdjN2aQYtYMiNggHmNyBve+thFnNR1iBRcKg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: css-select "^4.1.3" dom-converter "^0.2.0" htmlparser2 "^6.1.0" lodash "^4.17.21" - strip-ansi "^6.0.0" + strip-ansi "^3.0.1" repeat-element@^1.1.2: version "1.1.4" From 3c6226f78f5338a4e1967091b0d978fc7e5353b0 Mon Sep 17 00:00:00 2001 From: Mitchell Valine Date: Fri, 11 Jun 2021 10:57:38 -0700 Subject: [PATCH 05/15] fix: proxy path for catalog file to awscdk.io (#79) Adds a behavior to the cloudfront distribution to allow access to the catalog in awskcdk.io from the webapp. This fixes the broken search functionality on the frontend. --- .../__snapshots__/construct-hub.test.ts.snap | 14 ++++++++++++++ .../devapp/__snapshots__/snapshot.test.ts.snap | 5 +++++ src/webapp/index.ts | 1 + 3 files changed, 20 insertions(+) diff --git a/src/__tests__/__snapshots__/construct-hub.test.ts.snap b/src/__tests__/__snapshots__/construct-hub.test.ts.snap index b3e5ed747..4d8f288f0 100644 --- a/src/__tests__/__snapshots__/construct-hub.test.ts.snap +++ b/src/__tests__/__snapshots__/construct-hub.test.ts.snap @@ -859,6 +859,13 @@ Object { "TargetOriginId": "TestConstructHubWebAppDistributionOrigin276090F90", "ViewerProtocolPolicy": "allow-all", }, + Object { + "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", + "Compress": true, + "PathPattern": "/index/packages.json", + "TargetOriginId": "TestConstructHubWebAppDistributionOrigin276090F90", + "ViewerProtocolPolicy": "allow-all", + }, ], "CustomErrorResponses": Array [ Object { @@ -2251,6 +2258,13 @@ Object { "TargetOriginId": "TestConstructHubWebAppDistributionOrigin276090F90", "ViewerProtocolPolicy": "allow-all", }, + Object { + "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", + "Compress": true, + "PathPattern": "/index/packages.json", + "TargetOriginId": "TestConstructHubWebAppDistributionOrigin276090F90", + "ViewerProtocolPolicy": "allow-all", + }, ], "CustomErrorResponses": Array [ Object { diff --git a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap index 049679fea..8d81f698e 100644 --- a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap +++ b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap @@ -336,6 +336,11 @@ Resources: PathPattern: /packages/* TargetOriginId: devConstructHubWebAppDistributionOrigin2A726FD66 ViewerProtocolPolicy: allow-all + - CachePolicyId: 658327ea-f89d-4fab-a63d-7e88639e58f6 + Compress: true + PathPattern: /index/packages.json + TargetOriginId: devConstructHubWebAppDistributionOrigin2A726FD66 + ViewerProtocolPolicy: allow-all CustomErrorResponses: - ErrorCode: 404 ResponseCode: 200 diff --git a/src/webapp/index.ts b/src/webapp/index.ts index e55fbe080..db06f6774 100644 --- a/src/webapp/index.ts +++ b/src/webapp/index.ts @@ -44,6 +44,7 @@ export class WebApp extends Construct { const jsiiObjOrigin = new origins.HttpOrigin('awscdk.io'); this.distribution.addBehavior('/packages/*', jsiiObjOrigin); + this.distribution.addBehavior('/index/packages.json', jsiiObjOrigin); // if we use a domain, and A records with a CloudFront alias if (props.domain) { From 3a1be15577f1d66baf9abc4abddf0c681a4c8d0a Mon Sep 17 00:00:00 2001 From: Eli Polonsky Date: Sun, 13 Jun 2021 14:52:22 +0300 Subject: [PATCH 06/15] chore: auto approve dependency upgrades (#81) --- .gitattributes | 1 + .github/workflows/auto-approve.yml | 22 ++++++++++++++++++++++ .github/workflows/upgrade-dependencies.yml | 1 + .gitignore | 1 + .projenrc.js | 5 +++++ 5 files changed, 30 insertions(+) create mode 100644 .github/workflows/auto-approve.yml diff --git a/.gitattributes b/.gitattributes index d9f2fae3c..baf6ce2af 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,6 +4,7 @@ /.eslintrc.json linguist-generated /.gitattributes linguist-generated /.github/pull_request_template.md linguist-generated +/.github/workflows/auto-approve.yml linguist-generated /.github/workflows/build.yml linguist-generated /.github/workflows/release.yml linguist-generated /.github/workflows/upgrade-dependencies.yml linguist-generated diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml new file mode 100644 index 000000000..bc768d007 --- /dev/null +++ b/.github/workflows/auto-approve.yml @@ -0,0 +1,22 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". + +name: auto-approve +on: + pull_request_target: + types: + - labeled + - opened + - synchronize + - reopened + - ready_for_review +jobs: + approve: + runs-on: ubuntu-latest + permissions: + pull-requests: write + if: contains(github.event.pull_request.labels.*.name, 'auto-approve') && + (github.event.pull_request.user.login == 'aws-cdk-automation') + steps: + - uses: hmarr/auto-approve-action@v2.1.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/upgrade-dependencies.yml b/.github/workflows/upgrade-dependencies.yml index 4618272cc..9decccead 100644 --- a/.github/workflows/upgrade-dependencies.yml +++ b/.github/workflows/upgrade-dependencies.yml @@ -79,6 +79,7 @@ jobs: *Automatically created by projen via the "upgrade-dependencies" workflow* branch: github-actions/upgrade-dependencies title: "chore(deps): upgrade dependencies" + labels: auto-approve body: >- Upgrades project dependencies. See details in [workflow run]. diff --git a/.gitignore b/.gitignore index f880822f8..66f21ca9b 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,7 @@ yarn-error.log* !/.eslintrc.json !/.gitattributes !/.github/pull_request_template.md +!/.github/workflows/auto-approve.yml !/.github/workflows/build.yml !/.github/workflows/release.yml !/.github/workflows/upgrade-dependencies.yml diff --git a/.projenrc.js b/.projenrc.js index ebeefdeae..7cf2878b2 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -101,6 +101,11 @@ const project = new JsiiProject({ // Exclude handler images from TypeScript compier path excludeTypescript: ['resources/**'], + autoApproveOptions: { + allowedUsernames: ['aws-cdk-automation'], + secret: 'GITHUB_TOKEN', + }, + autoApproveUpgrades: true, }); // Required while we vendor-in jsii-rosetta to a pre-release version From 2daa1b76f2ae2e4aec0f309258435f8e37b10df0 Mon Sep 17 00:00:00 2001 From: Mitchell Valine Date: Sun, 13 Jun 2021 07:17:55 -0700 Subject: [PATCH 07/15] chore: lock cdk dependency versions (#80) Locks version of cdk dependencies to prevent upgrading automatically before we are ready. --- .projen/deps.json | 113 ++++++++++++++++++++++++++++++++++------------ .projenrc.js | 38 ++++++++-------- package.json | 106 +++++++++++++++++++++---------------------- yarn.lock | 38 ++++++++-------- 4 files changed, 174 insertions(+), 121 deletions(-) diff --git a/.projen/deps.json b/.projen/deps.json index 90e2414bb..ee9f1c625 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -2,74 +2,92 @@ "dependencies": [ { "name": "@aws-cdk/assert", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-certificatemanager", - "type": "build" - }, - { - "name": "@aws-cdk/aws-cloudfront", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-cloudfront-origins", + "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-cloudwatch", + "name": "@aws-cdk/aws-cloudfront", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-cloudwatch-actions", + "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-events", + "name": "@aws-cdk/aws-cloudwatch", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-events-targets", + "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-lambda", + "name": "@aws-cdk/aws-events", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-lambda-event-sources", + "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-logs", + "name": "@aws-cdk/aws-lambda", + "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-route53", + "name": "@aws-cdk/aws-logs", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-route53-targets", + "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-s3", + "name": "@aws-cdk/aws-route53", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-s3-deployment", + "version": "1.108.0", + "type": "build" + }, + { + "name": "@aws-cdk/aws-s3", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-sns", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/core", + "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/cx-api", + "version": "1.108.0", "type": "build" }, { @@ -99,6 +117,7 @@ }, { "name": "aws-cdk", + "version": "1.108.0", "type": "build" }, { @@ -215,70 +234,87 @@ }, { "name": "@aws-cdk/aws-certificatemanager", - "type": "peer" - }, - { - "name": "@aws-cdk/aws-cloudfront", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-cloudfront-origins", + "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-cloudwatch", + "name": "@aws-cdk/aws-cloudfront", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-cloudwatch-actions", + "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-events", + "name": "@aws-cdk/aws-cloudwatch", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-events-targets", + "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-lambda", + "name": "@aws-cdk/aws-events", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-lambda-event-sources", + "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-logs", + "name": "@aws-cdk/aws-lambda", + "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-route53", + "name": "@aws-cdk/aws-logs", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-route53-targets", + "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-s3", + "name": "@aws-cdk/aws-route53", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-s3-deployment", + "version": "1.108.0", + "type": "peer" + }, + { + "name": "@aws-cdk/aws-s3", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-sns", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/core", + "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/cx-api", + "version": "1.108.0", "type": "peer" }, { @@ -291,70 +327,87 @@ }, { "name": "@aws-cdk/aws-certificatemanager", - "type": "runtime" - }, - { - "name": "@aws-cdk/aws-cloudfront", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-cloudfront-origins", + "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-cloudwatch", + "name": "@aws-cdk/aws-cloudfront", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-cloudwatch-actions", + "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-events", + "name": "@aws-cdk/aws-cloudwatch", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-events-targets", + "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-lambda", + "name": "@aws-cdk/aws-events", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-lambda-event-sources", + "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-logs", + "name": "@aws-cdk/aws-lambda", + "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-route53", + "name": "@aws-cdk/aws-logs", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-route53-targets", + "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-s3", + "name": "@aws-cdk/aws-route53", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-s3-deployment", + "version": "1.108.0", + "type": "runtime" + }, + { + "name": "@aws-cdk/aws-s3", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-sns", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/core", + "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/cx-api", + "version": "1.108.0", "type": "runtime" }, { diff --git a/.projenrc.js b/.projenrc.js index 7cf2878b2..cba510bdd 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -4,23 +4,23 @@ const { pascalCase } = require('pascal-case'); const { SourceCode, FileBase, JsonFile, JsiiProject } = require('projen'); const cdkDeps = [ - '@aws-cdk/aws-certificatemanager', - '@aws-cdk/aws-cloudfront-origins', - '@aws-cdk/aws-cloudfront', - '@aws-cdk/aws-cloudwatch-actions', - '@aws-cdk/aws-cloudwatch', - '@aws-cdk/aws-events-targets', - '@aws-cdk/aws-events', - '@aws-cdk/aws-lambda-event-sources', - '@aws-cdk/aws-lambda', - '@aws-cdk/aws-logs', - '@aws-cdk/aws-route53-targets', - '@aws-cdk/aws-route53', - '@aws-cdk/aws-s3-deployment', - '@aws-cdk/aws-s3', - '@aws-cdk/aws-sns', - '@aws-cdk/core', - '@aws-cdk/cx-api', + '@aws-cdk/aws-certificatemanager@1.108.0', + '@aws-cdk/aws-cloudfront-origins@1.108.0', + '@aws-cdk/aws-cloudfront@1.108.0', + '@aws-cdk/aws-cloudwatch-actions@1.108.0', + '@aws-cdk/aws-cloudwatch@1.108.0', + '@aws-cdk/aws-events-targets@1.108.0', + '@aws-cdk/aws-events@1.108.0', + '@aws-cdk/aws-lambda-event-sources@1.108.0', + '@aws-cdk/aws-lambda@1.108.0', + '@aws-cdk/aws-logs@1.108.0', + '@aws-cdk/aws-route53-targets@1.108.0', + '@aws-cdk/aws-route53@1.108.0', + '@aws-cdk/aws-s3-deployment@1.108.0', + '@aws-cdk/aws-s3@1.108.0', + '@aws-cdk/aws-sns@1.108.0', + '@aws-cdk/core@1.108.0', + '@aws-cdk/cx-api@1.108.0', 'cdk-watchful', 'constructs', ]; @@ -45,10 +45,10 @@ const project = new JsiiProject({ cdkVersion: '1.100.0', devDeps: [ - '@aws-cdk/assert', + '@aws-cdk/assert@1.108.0', '@types/aws-lambda', '@types/fs-extra', - 'aws-cdk', + 'aws-cdk@1.108.0', 'aws-sdk-mock', 'aws-sdk', 'esbuild', diff --git a/package.json b/package.json index 92069d7ce..0b2624359 100644 --- a/package.json +++ b/package.json @@ -37,31 +37,31 @@ "organization": true }, "devDependencies": { - "@aws-cdk/assert": "^1.108.0", - "@aws-cdk/aws-certificatemanager": "^1.108.0", - "@aws-cdk/aws-cloudfront": "^1.108.0", - "@aws-cdk/aws-cloudfront-origins": "^1.108.0", - "@aws-cdk/aws-cloudwatch": "^1.108.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.108.0", - "@aws-cdk/aws-events": "^1.108.0", - "@aws-cdk/aws-events-targets": "^1.108.0", - "@aws-cdk/aws-lambda": "^1.108.0", - "@aws-cdk/aws-lambda-event-sources": "^1.108.0", - "@aws-cdk/aws-logs": "^1.108.0", - "@aws-cdk/aws-route53": "^1.108.0", - "@aws-cdk/aws-route53-targets": "^1.108.0", - "@aws-cdk/aws-s3": "^1.108.0", - "@aws-cdk/aws-s3-deployment": "^1.108.0", - "@aws-cdk/aws-sns": "^1.108.0", - "@aws-cdk/core": "^1.108.0", - "@aws-cdk/cx-api": "^1.108.0", + "@aws-cdk/assert": "1.108.0", + "@aws-cdk/aws-certificatemanager": "1.108.0", + "@aws-cdk/aws-cloudfront": "1.108.0", + "@aws-cdk/aws-cloudfront-origins": "1.108.0", + "@aws-cdk/aws-cloudwatch": "1.108.0", + "@aws-cdk/aws-cloudwatch-actions": "1.108.0", + "@aws-cdk/aws-events": "1.108.0", + "@aws-cdk/aws-events-targets": "1.108.0", + "@aws-cdk/aws-lambda": "1.108.0", + "@aws-cdk/aws-lambda-event-sources": "1.108.0", + "@aws-cdk/aws-logs": "1.108.0", + "@aws-cdk/aws-route53": "1.108.0", + "@aws-cdk/aws-route53-targets": "1.108.0", + "@aws-cdk/aws-s3": "1.108.0", + "@aws-cdk/aws-s3-deployment": "1.108.0", + "@aws-cdk/aws-sns": "1.108.0", + "@aws-cdk/core": "1.108.0", + "@aws-cdk/cx-api": "1.108.0", "@types/aws-lambda": "^8.10.77", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", "@types/node": "^12.0.0", "@typescript-eslint/eslint-plugin": "^4.26.1", "@typescript-eslint/parser": "^4.26.1", - "aws-cdk": "^1.108.0", + "aws-cdk": "1.108.0", "aws-sdk": "^2.926.0", "aws-sdk-mock": "^5.1.0", "cdk-watchful": "^0.5.154", @@ -91,44 +91,44 @@ "yaml": "^1.10.2" }, "peerDependencies": { - "@aws-cdk/aws-certificatemanager": "^1.108.0", - "@aws-cdk/aws-cloudfront": "^1.108.0", - "@aws-cdk/aws-cloudfront-origins": "^1.108.0", - "@aws-cdk/aws-cloudwatch": "^1.108.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.108.0", - "@aws-cdk/aws-events": "^1.108.0", - "@aws-cdk/aws-events-targets": "^1.108.0", - "@aws-cdk/aws-lambda": "^1.108.0", - "@aws-cdk/aws-lambda-event-sources": "^1.108.0", - "@aws-cdk/aws-logs": "^1.108.0", - "@aws-cdk/aws-route53": "^1.108.0", - "@aws-cdk/aws-route53-targets": "^1.108.0", - "@aws-cdk/aws-s3": "^1.108.0", - "@aws-cdk/aws-s3-deployment": "^1.108.0", - "@aws-cdk/aws-sns": "^1.108.0", - "@aws-cdk/core": "^1.108.0", - "@aws-cdk/cx-api": "^1.108.0", + "@aws-cdk/aws-certificatemanager": "1.108.0", + "@aws-cdk/aws-cloudfront": "1.108.0", + "@aws-cdk/aws-cloudfront-origins": "1.108.0", + "@aws-cdk/aws-cloudwatch": "1.108.0", + "@aws-cdk/aws-cloudwatch-actions": "1.108.0", + "@aws-cdk/aws-events": "1.108.0", + "@aws-cdk/aws-events-targets": "1.108.0", + "@aws-cdk/aws-lambda": "1.108.0", + "@aws-cdk/aws-lambda-event-sources": "1.108.0", + "@aws-cdk/aws-logs": "1.108.0", + "@aws-cdk/aws-route53": "1.108.0", + "@aws-cdk/aws-route53-targets": "1.108.0", + "@aws-cdk/aws-s3": "1.108.0", + "@aws-cdk/aws-s3-deployment": "1.108.0", + "@aws-cdk/aws-sns": "1.108.0", + "@aws-cdk/core": "1.108.0", + "@aws-cdk/cx-api": "1.108.0", "cdk-watchful": "^0.5.154", "constructs": "^3.3.77" }, "dependencies": { - "@aws-cdk/aws-certificatemanager": "^1.108.0", - "@aws-cdk/aws-cloudfront": "^1.108.0", - "@aws-cdk/aws-cloudfront-origins": "^1.108.0", - "@aws-cdk/aws-cloudwatch": "^1.108.0", - "@aws-cdk/aws-cloudwatch-actions": "^1.108.0", - "@aws-cdk/aws-events": "^1.108.0", - "@aws-cdk/aws-events-targets": "^1.108.0", - "@aws-cdk/aws-lambda": "^1.108.0", - "@aws-cdk/aws-lambda-event-sources": "^1.108.0", - "@aws-cdk/aws-logs": "^1.108.0", - "@aws-cdk/aws-route53": "^1.108.0", - "@aws-cdk/aws-route53-targets": "^1.108.0", - "@aws-cdk/aws-s3": "^1.108.0", - "@aws-cdk/aws-s3-deployment": "^1.108.0", - "@aws-cdk/aws-sns": "^1.108.0", - "@aws-cdk/core": "^1.108.0", - "@aws-cdk/cx-api": "^1.108.0", + "@aws-cdk/aws-certificatemanager": "1.108.0", + "@aws-cdk/aws-cloudfront": "1.108.0", + "@aws-cdk/aws-cloudfront-origins": "1.108.0", + "@aws-cdk/aws-cloudwatch": "1.108.0", + "@aws-cdk/aws-cloudwatch-actions": "1.108.0", + "@aws-cdk/aws-events": "1.108.0", + "@aws-cdk/aws-events-targets": "1.108.0", + "@aws-cdk/aws-lambda": "1.108.0", + "@aws-cdk/aws-lambda-event-sources": "1.108.0", + "@aws-cdk/aws-logs": "1.108.0", + "@aws-cdk/aws-route53": "1.108.0", + "@aws-cdk/aws-route53-targets": "1.108.0", + "@aws-cdk/aws-s3": "1.108.0", + "@aws-cdk/aws-s3-deployment": "1.108.0", + "@aws-cdk/aws-sns": "1.108.0", + "@aws-cdk/core": "1.108.0", + "@aws-cdk/cx-api": "1.108.0", "cdk-watchful": "^0.5.154", "constructs": "^3.3.77" }, diff --git a/yarn.lock b/yarn.lock index dfa720198..d11d5b08d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@aws-cdk/assert@^1.108.0": +"@aws-cdk/assert@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/assert/-/assert-1.108.0.tgz#fa36dc5c9c1d39140e6a74a6a8f77c757c461d35" integrity sha512-gAcqc3qVhP79WO9XJK0ITXp3QbgI+ThC5U7643gHLSxG7Izqrk6zD27c9xMmckOWvGognOLyKB4KdYvcg3RDkw== @@ -90,7 +90,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-certificatemanager@1.108.0", "@aws-cdk/aws-certificatemanager@^1.108.0": +"@aws-cdk/aws-certificatemanager@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.108.0.tgz#0bde545d0892e5575463cd845703d3f871180a52" integrity sha512-Vy5mw/1PFWjTUB8Z64gid0+NAtfp17EGjRE7t0AM5ZcwviIqyCW/k5pNCiu6JumqRtTm2MjcASCKSOnJShBthA== @@ -114,7 +114,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudfront-origins@^1.108.0": +"@aws-cdk/aws-cloudfront-origins@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudfront-origins/-/aws-cloudfront-origins-1.108.0.tgz#4ab2b69ebfe8ec05e25f53dce887ad067a06ce55" integrity sha512-ZO8SDhCyGnuFBYrXHSEatB+hJlIevxWWATxdBObHBoz39+IrG2Uj9I3j+pX2Qxr2tcsJxd5XZs/9kwSS9uw4sQ== @@ -126,7 +126,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudfront@1.108.0", "@aws-cdk/aws-cloudfront@^1.108.0": +"@aws-cdk/aws-cloudfront@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.108.0.tgz#3fcd245d40b7b33936f072e5a7ae7f0c62a2e0af" integrity sha512-ebaaq4CDs8PPeiXsGDeQVeMfJ/aMPoLumDpnSMB35F3isn584YQN8yJCdgz9GJE1AFCs8u4ROP7aAaSzv33j2g== @@ -142,7 +142,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudwatch-actions@^1.108.0", "@aws-cdk/aws-cloudwatch-actions@^1.94.1": +"@aws-cdk/aws-cloudwatch-actions@1.108.0", "@aws-cdk/aws-cloudwatch-actions@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudwatch-actions/-/aws-cloudwatch-actions-1.108.0.tgz#8a399ae5da2042bf562ea510263bde53d6168c48" integrity sha512-c3n9uIVzhhYQY/Nyx+mcd8fUsFFTVd1pLojuKE77fdibrcj40LWAU6hNjBzwwp2Hpogjd/ztEwZkLx1lC5PIew== @@ -155,7 +155,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-cloudwatch@1.108.0", "@aws-cdk/aws-cloudwatch@^1.108.0", "@aws-cdk/aws-cloudwatch@^1.94.1": +"@aws-cdk/aws-cloudwatch@1.108.0", "@aws-cdk/aws-cloudwatch@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.108.0.tgz#f0069528e27ff494b1e9afc028376c3aa1cd7e1b" integrity sha512-HhbiIVtZr1B4XU2GXKxoqVBzqk1NwUem3y7PBi9Z95TF50xBiU7VSMM4Sw2pVoFXzOmxsI7TkCYWGQlA3FQQfw== @@ -377,7 +377,7 @@ "@aws-cdk/region-info" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-events-targets@1.108.0", "@aws-cdk/aws-events-targets@^1.108.0", "@aws-cdk/aws-events-targets@^1.94.1": +"@aws-cdk/aws-events-targets@1.108.0", "@aws-cdk/aws-events-targets@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-events-targets/-/aws-events-targets-1.108.0.tgz#74d00b62a686697131db0cc7e01f554ad98f0c5f" integrity sha512-SR6auORBdibzlydWszXYmi2JXAprK4QBj0IfIm1CrCcfdTzJZ4DeXX3I7MEF5LmJLVAs8V7llpeEJikkosqkYg== @@ -402,7 +402,7 @@ "@aws-cdk/custom-resources" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-events@1.108.0", "@aws-cdk/aws-events@^1.108.0", "@aws-cdk/aws-events@^1.94.1": +"@aws-cdk/aws-events@1.108.0", "@aws-cdk/aws-events@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-events/-/aws-events-1.108.0.tgz#00142b3d20c000920e4a49800a6d053c2439fc13" integrity sha512-qLBLCK7558FItzeTIonJ86ojmzc1hwsqStcELABcNqweMe+FYN4RzcUM0oMl2MjbpLR+aaWX9okTPUlfS+CCYw== @@ -460,7 +460,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-lambda-event-sources@^1.108.0": +"@aws-cdk/aws-lambda-event-sources@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-lambda-event-sources/-/aws-lambda-event-sources-1.108.0.tgz#b24f381c74e2779cdae6a3e91aea6300027fa44d" integrity sha512-rIx8cr/KUlhUV6XaTc6Ifuw1h8rfOa+wWm2oqNC9WIAqmoSDgcim3j1tA1Esa17p0v3Bv3XER/3GQagpQkdBqw== @@ -481,7 +481,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-lambda@1.108.0", "@aws-cdk/aws-lambda@^1.108.0", "@aws-cdk/aws-lambda@^1.94.1": +"@aws-cdk/aws-lambda@1.108.0", "@aws-cdk/aws-lambda@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-lambda/-/aws-lambda-1.108.0.tgz#d07a128db81c58ea0256b3b414aab332cbdd4527" integrity sha512-NE24Rud/gANcJszLYI6xlFQCHpv3v8izmrCycFapFHRgOd8b+DtaptZey8qZrWpkJVj+hDokJbCajjR8u+xuXQ== @@ -505,7 +505,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-logs@1.108.0", "@aws-cdk/aws-logs@^1.108.0": +"@aws-cdk/aws-logs@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-logs/-/aws-logs-1.108.0.tgz#a3fa57157bf0cba5421344a76d81943f1b0e7eae" integrity sha512-25Lnsr4ea8M2t9OxfyS+9Upo2MCAe9SWnozJ7NpBF7sZQ8JdKnXC96gLpFExfQ3FQlWY/Olg1G47G6SRQhwPUw== @@ -534,7 +534,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-route53-targets@1.108.0", "@aws-cdk/aws-route53-targets@^1.108.0": +"@aws-cdk/aws-route53-targets@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.108.0.tgz#1d82448adfa6fc209a36cbe7881e3085a6967e65" integrity sha512-Y5zq3w+KJk5eorJWuiJrBrbyN1zMPRMy8MdqNA+bJwNKifRVrxBTFiNzSh5AC1iT6G6fyjCry8Rnzz9gYvLuvA== @@ -553,7 +553,7 @@ "@aws-cdk/region-info" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-route53@1.108.0", "@aws-cdk/aws-route53@^1.108.0": +"@aws-cdk/aws-route53@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-route53/-/aws-route53-1.108.0.tgz#cd2982fe133cf740c0a35647fd7d40e83ab30a25" integrity sha512-TKrZa79Rt/k7iHb+0QoSuoqdvxGSgOSnPK/0/cTGqrNRUjpgWdSTwq5zwLrB61bCLw7huD4bJtJ6Uoa3auGv4Q== @@ -579,7 +579,7 @@ "@aws-cdk/cx-api" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-s3-deployment@^1.108.0": +"@aws-cdk/aws-s3-deployment@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-s3-deployment/-/aws-s3-deployment-1.108.0.tgz#2233c485a85bf562d174157519bd7ca9a024522d" integrity sha512-R6bIxZ3DIt9x2Eh00TpzPlkF84lIHwlDsgc4ecutAdGM2zNz0je1thQvvpdH0xLm3h9xNOkQiuYygDLAzV6rYw== @@ -607,7 +607,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-s3@1.108.0", "@aws-cdk/aws-s3@^1.108.0": +"@aws-cdk/aws-s3@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-s3/-/aws-s3-1.108.0.tgz#9e4bb386fd09c76b7c4b428dc80eb977e75a52ff" integrity sha512-Pi7vlhSFrFfg4DMxxiW93ZkLS7232RatV7bmViPQPfqlSlYBxjwlrQL46o9T9CcNihXW93GzbTSgz5Hm7liwIg== @@ -672,7 +672,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/aws-sns@1.108.0", "@aws-cdk/aws-sns@^1.108.0", "@aws-cdk/aws-sns@^1.94.1": +"@aws-cdk/aws-sns@1.108.0", "@aws-cdk/aws-sns@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/aws-sns/-/aws-sns-1.108.0.tgz#2a98fe8893e013a9466550777b819eabcaddb15f" integrity sha512-NNVqMCGyn50mGVP/Mib+RqQIZvt9w8occLUM+6bb+kkYfL7TDkWScujx3Ol0nTa6ocLTdbvdqg9uGs1mtXYQrw== @@ -748,7 +748,7 @@ string-width "^4.2.2" table "^6.7.1" -"@aws-cdk/core@1.108.0", "@aws-cdk/core@^1.108.0", "@aws-cdk/core@^1.94.1": +"@aws-cdk/core@1.108.0", "@aws-cdk/core@^1.94.1": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/core/-/core-1.108.0.tgz#5349572bf1da6627d79a6dbc3ec85d0fbf073a58" integrity sha512-PQHFfm/0QE85Mw9jMmpN/hMMUHywceJddInVZbCUBySh1E57k5bHaY0v7Dv92ehoHXk+wShbaXinzwcQz8ROfQ== @@ -776,7 +776,7 @@ "@aws-cdk/core" "1.108.0" constructs "^3.3.69" -"@aws-cdk/cx-api@1.108.0", "@aws-cdk/cx-api@^1.108.0": +"@aws-cdk/cx-api@1.108.0": version "1.108.0" resolved "https://registry.yarnpkg.com/@aws-cdk/cx-api/-/cx-api-1.108.0.tgz#443d91366b56ba1db3080b6b85b60325ffc02ef6" integrity sha512-sjlvgJdjor5nI1ddL2GKMwXiL4a+ZcBFK+n84wJY69bKajT7ZZohn9QXvF+5JSMHUEXgqhz6rTYpwCKPQCr6VQ== @@ -4337,7 +4337,7 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== -aws-cdk@^1.108.0: +aws-cdk@1.108.0: version "1.108.0" resolved "https://registry.yarnpkg.com/aws-cdk/-/aws-cdk-1.108.0.tgz#37a8364a892a278267e18d30dcefbbb3b73b3a47" integrity sha512-aE33GE5gbF7JLKLQsaZ4yPshVj6aCUq3AGyfss8ZO8c8+DPaPzFTxnoTpQ7LXCbXXxpq2i0NAXcwbNZse6zXKw== From db9cf6ba51fb9a9f070375fa06793f4ca0c237a0 Mon Sep 17 00:00:00 2001 From: Eli Polonsky Date: Mon, 14 Jun 2021 15:03:34 +0300 Subject: [PATCH 08/15] chore(deps): exclude cdk dependencies from upgrade (#82) --- .projen/deps.json | 113 ++++++++++++--------------------------------- .projen/tasks.json | 4 +- .projenrc.js | 54 +++++++++++++--------- 3 files changed, 63 insertions(+), 108 deletions(-) diff --git a/.projen/deps.json b/.projen/deps.json index ee9f1c625..90e2414bb 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -2,92 +2,74 @@ "dependencies": [ { "name": "@aws-cdk/assert", - "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-certificatemanager", - "version": "1.108.0", - "type": "build" - }, - { - "name": "@aws-cdk/aws-cloudfront-origins", - "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/aws-cloudfront", - "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-cloudwatch-actions", - "version": "1.108.0", + "name": "@aws-cdk/aws-cloudfront-origins", "type": "build" }, { "name": "@aws-cdk/aws-cloudwatch", - "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-events-targets", - "version": "1.108.0", + "name": "@aws-cdk/aws-cloudwatch-actions", "type": "build" }, { "name": "@aws-cdk/aws-events", - "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-lambda-event-sources", - "version": "1.108.0", + "name": "@aws-cdk/aws-events-targets", "type": "build" }, { "name": "@aws-cdk/aws-lambda", - "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-logs", - "version": "1.108.0", + "name": "@aws-cdk/aws-lambda-event-sources", "type": "build" }, { - "name": "@aws-cdk/aws-route53-targets", - "version": "1.108.0", + "name": "@aws-cdk/aws-logs", "type": "build" }, { "name": "@aws-cdk/aws-route53", - "version": "1.108.0", "type": "build" }, { - "name": "@aws-cdk/aws-s3-deployment", - "version": "1.108.0", + "name": "@aws-cdk/aws-route53-targets", "type": "build" }, { "name": "@aws-cdk/aws-s3", - "version": "1.108.0", + "type": "build" + }, + { + "name": "@aws-cdk/aws-s3-deployment", "type": "build" }, { "name": "@aws-cdk/aws-sns", - "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/core", - "version": "1.108.0", "type": "build" }, { "name": "@aws-cdk/cx-api", - "version": "1.108.0", "type": "build" }, { @@ -117,7 +99,6 @@ }, { "name": "aws-cdk", - "version": "1.108.0", "type": "build" }, { @@ -234,87 +215,70 @@ }, { "name": "@aws-cdk/aws-certificatemanager", - "version": "1.108.0", - "type": "peer" - }, - { - "name": "@aws-cdk/aws-cloudfront-origins", - "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/aws-cloudfront", - "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-cloudwatch-actions", - "version": "1.108.0", + "name": "@aws-cdk/aws-cloudfront-origins", "type": "peer" }, { "name": "@aws-cdk/aws-cloudwatch", - "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-events-targets", - "version": "1.108.0", + "name": "@aws-cdk/aws-cloudwatch-actions", "type": "peer" }, { "name": "@aws-cdk/aws-events", - "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-lambda-event-sources", - "version": "1.108.0", + "name": "@aws-cdk/aws-events-targets", "type": "peer" }, { "name": "@aws-cdk/aws-lambda", - "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-logs", - "version": "1.108.0", + "name": "@aws-cdk/aws-lambda-event-sources", "type": "peer" }, { - "name": "@aws-cdk/aws-route53-targets", - "version": "1.108.0", + "name": "@aws-cdk/aws-logs", "type": "peer" }, { "name": "@aws-cdk/aws-route53", - "version": "1.108.0", "type": "peer" }, { - "name": "@aws-cdk/aws-s3-deployment", - "version": "1.108.0", + "name": "@aws-cdk/aws-route53-targets", "type": "peer" }, { "name": "@aws-cdk/aws-s3", - "version": "1.108.0", + "type": "peer" + }, + { + "name": "@aws-cdk/aws-s3-deployment", "type": "peer" }, { "name": "@aws-cdk/aws-sns", - "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/core", - "version": "1.108.0", "type": "peer" }, { "name": "@aws-cdk/cx-api", - "version": "1.108.0", "type": "peer" }, { @@ -327,87 +291,70 @@ }, { "name": "@aws-cdk/aws-certificatemanager", - "version": "1.108.0", - "type": "runtime" - }, - { - "name": "@aws-cdk/aws-cloudfront-origins", - "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/aws-cloudfront", - "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-cloudwatch-actions", - "version": "1.108.0", + "name": "@aws-cdk/aws-cloudfront-origins", "type": "runtime" }, { "name": "@aws-cdk/aws-cloudwatch", - "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-events-targets", - "version": "1.108.0", + "name": "@aws-cdk/aws-cloudwatch-actions", "type": "runtime" }, { "name": "@aws-cdk/aws-events", - "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-lambda-event-sources", - "version": "1.108.0", + "name": "@aws-cdk/aws-events-targets", "type": "runtime" }, { "name": "@aws-cdk/aws-lambda", - "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-logs", - "version": "1.108.0", + "name": "@aws-cdk/aws-lambda-event-sources", "type": "runtime" }, { - "name": "@aws-cdk/aws-route53-targets", - "version": "1.108.0", + "name": "@aws-cdk/aws-logs", "type": "runtime" }, { "name": "@aws-cdk/aws-route53", - "version": "1.108.0", "type": "runtime" }, { - "name": "@aws-cdk/aws-s3-deployment", - "version": "1.108.0", + "name": "@aws-cdk/aws-route53-targets", "type": "runtime" }, { "name": "@aws-cdk/aws-s3", - "version": "1.108.0", + "type": "runtime" + }, + { + "name": "@aws-cdk/aws-s3-deployment", "type": "runtime" }, { "name": "@aws-cdk/aws-sns", - "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/core", - "version": "1.108.0", "type": "runtime" }, { "name": "@aws-cdk/cx-api", - "version": "1.108.0", "type": "runtime" }, { diff --git a/.projen/tasks.json b/.projen/tasks.json index a8a51c095..2c53b96a7 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -152,13 +152,13 @@ }, "steps": [ { - "exec": "npm-check-updates --upgrade --target=minor" + "exec": "npm-check-updates --upgrade --target=minor --reject='@aws-cdk/aws-certificatemanager,@aws-cdk/aws-cloudfront-origins,@aws-cdk/aws-cloudfront,@aws-cdk/aws-cloudwatch-actions,@aws-cdk/aws-cloudwatch,@aws-cdk/aws-events-targets,@aws-cdk/aws-events,@aws-cdk/aws-lambda-event-sources,@aws-cdk/aws-lambda,@aws-cdk/aws-logs,@aws-cdk/aws-route53-targets,@aws-cdk/aws-route53,@aws-cdk/aws-s3-deployment,@aws-cdk/aws-s3,@aws-cdk/aws-sns,@aws-cdk/core,@aws-cdk/cx-api,cdk-watchful,constructs'" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade" + "exec": "yarn upgrade @aws-cdk/assert @types/aws-lambda @types/fs-extra @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser aws-cdk aws-sdk aws-sdk-mock construct-hub-webapp esbuild eslint eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import fs-extra glob got jest jest-junit jsii jsii-diff jsii-docgen jsii-pacmak jsii-rosetta json-schema npm-check-updates pascal-case projen standard-version typescript yaml" }, { "exec": "npx projen" diff --git a/.projenrc.js b/.projenrc.js index cba510bdd..f1b288dda 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -1,26 +1,26 @@ const { basename, join, dirname, relative } = require('path'); const glob = require('glob'); const { pascalCase } = require('pascal-case'); -const { SourceCode, FileBase, JsonFile, JsiiProject } = require('projen'); +const { SourceCode, FileBase, JsonFile, JsiiProject, DependenciesUpgradeMechanism } = require('projen'); const cdkDeps = [ - '@aws-cdk/aws-certificatemanager@1.108.0', - '@aws-cdk/aws-cloudfront-origins@1.108.0', - '@aws-cdk/aws-cloudfront@1.108.0', - '@aws-cdk/aws-cloudwatch-actions@1.108.0', - '@aws-cdk/aws-cloudwatch@1.108.0', - '@aws-cdk/aws-events-targets@1.108.0', - '@aws-cdk/aws-events@1.108.0', - '@aws-cdk/aws-lambda-event-sources@1.108.0', - '@aws-cdk/aws-lambda@1.108.0', - '@aws-cdk/aws-logs@1.108.0', - '@aws-cdk/aws-route53-targets@1.108.0', - '@aws-cdk/aws-route53@1.108.0', - '@aws-cdk/aws-s3-deployment@1.108.0', - '@aws-cdk/aws-s3@1.108.0', - '@aws-cdk/aws-sns@1.108.0', - '@aws-cdk/core@1.108.0', - '@aws-cdk/cx-api@1.108.0', + '@aws-cdk/aws-certificatemanager', + '@aws-cdk/aws-cloudfront-origins', + '@aws-cdk/aws-cloudfront', + '@aws-cdk/aws-cloudwatch-actions', + '@aws-cdk/aws-cloudwatch', + '@aws-cdk/aws-events-targets', + '@aws-cdk/aws-events', + '@aws-cdk/aws-lambda-event-sources', + '@aws-cdk/aws-lambda', + '@aws-cdk/aws-logs', + '@aws-cdk/aws-route53-targets', + '@aws-cdk/aws-route53', + '@aws-cdk/aws-s3-deployment', + '@aws-cdk/aws-s3', + '@aws-cdk/aws-sns', + '@aws-cdk/core', + '@aws-cdk/cx-api', 'cdk-watchful', 'constructs', ]; @@ -36,19 +36,16 @@ const project = new JsiiProject({ homepage: 'https://github.com/cdklabs', defaultReleaseBranch: 'main', mergify: false, - dependabot: false, author: 'Amazon Web Services, Inc.', authorAddress: 'construct-ecosystem-team@amazon.com', authorOrganization: true, - cdkVersion: '1.100.0', - devDeps: [ - '@aws-cdk/assert@1.108.0', + '@aws-cdk/assert', '@types/aws-lambda', '@types/fs-extra', - 'aws-cdk@1.108.0', + 'aws-cdk', 'aws-sdk-mock', 'aws-sdk', 'esbuild', @@ -106,6 +103,17 @@ const project = new JsiiProject({ secret: 'GITHUB_TOKEN', }, autoApproveUpgrades: true, + depsUpgrade: DependenciesUpgradeMechanism.githubWorkflow({ + exclude: cdkDeps, + ignoreProjen: false, + workflowOptions: { + labels: ['auto-approve'], + secret: 'CDK_AUTOMATION_GITHUB_TOKEN', + container: { + image: 'jsii/superchain', + }, + }, + }), }); // Required while we vendor-in jsii-rosetta to a pre-release version From 3ab7f7a20683321799a7e8a046275ea671f07fc8 Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Mon, 14 Jun 2021 15:41:55 +0300 Subject: [PATCH 09/15] chore(deps): upgrade dependencies (#83) * regen upgrade * snapshots * chore: self mutation Co-authored-by: iliapolo Co-authored-by: Automation --- .projen/tasks.json | 4 +- .projenrc.js | 9 +- package.json | 8 +- .../__snapshots__/construct-hub.test.ts.snap | 44 ++--- .../__snapshots__/snapshot.test.ts.snap | 22 +-- yarn.lock | 172 ++++++------------ 6 files changed, 102 insertions(+), 157 deletions(-) diff --git a/.projen/tasks.json b/.projen/tasks.json index 2c53b96a7..9997a2d68 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -152,13 +152,13 @@ }, "steps": [ { - "exec": "npm-check-updates --upgrade --target=minor --reject='@aws-cdk/aws-certificatemanager,@aws-cdk/aws-cloudfront-origins,@aws-cdk/aws-cloudfront,@aws-cdk/aws-cloudwatch-actions,@aws-cdk/aws-cloudwatch,@aws-cdk/aws-events-targets,@aws-cdk/aws-events,@aws-cdk/aws-lambda-event-sources,@aws-cdk/aws-lambda,@aws-cdk/aws-logs,@aws-cdk/aws-route53-targets,@aws-cdk/aws-route53,@aws-cdk/aws-s3-deployment,@aws-cdk/aws-s3,@aws-cdk/aws-sns,@aws-cdk/core,@aws-cdk/cx-api,cdk-watchful,constructs'" + "exec": "npm-check-updates --upgrade --target=minor --reject='@aws-cdk/aws-certificatemanager,@aws-cdk/aws-cloudfront-origins,@aws-cdk/aws-cloudfront,@aws-cdk/aws-cloudwatch-actions,@aws-cdk/aws-cloudwatch,@aws-cdk/aws-events-targets,@aws-cdk/aws-events,@aws-cdk/aws-lambda-event-sources,@aws-cdk/aws-lambda,@aws-cdk/aws-logs,@aws-cdk/aws-route53-targets,@aws-cdk/aws-route53,@aws-cdk/aws-s3-deployment,@aws-cdk/aws-s3,@aws-cdk/aws-sns,@aws-cdk/core,@aws-cdk/cx-api,cdk-watchful,constructs,@aws-cdk/assert,aws-cdk'" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @aws-cdk/assert @types/aws-lambda @types/fs-extra @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser aws-cdk aws-sdk aws-sdk-mock construct-hub-webapp esbuild eslint eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import fs-extra glob got jest jest-junit jsii jsii-diff jsii-docgen jsii-pacmak jsii-rosetta json-schema npm-check-updates pascal-case projen standard-version typescript yaml" + "exec": "yarn upgrade @types/aws-lambda @types/fs-extra @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser aws-sdk aws-sdk-mock construct-hub-webapp esbuild eslint eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import fs-extra glob got jest jest-junit jsii jsii-diff jsii-docgen jsii-pacmak jsii-rosetta json-schema npm-check-updates pascal-case projen standard-version typescript yaml" }, { "exec": "npx projen" diff --git a/.projenrc.js b/.projenrc.js index f1b288dda..88613b53f 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -25,6 +25,9 @@ const cdkDeps = [ 'constructs', ]; +const cdkAssert = '@aws-cdk/assert'; +const cdkCli = 'aws-cdk'; + const project = new JsiiProject({ name: 'construct-hub', description: 'A construct library that model Construct Hub instances.', @@ -42,10 +45,10 @@ const project = new JsiiProject({ authorOrganization: true, devDeps: [ - '@aws-cdk/assert', + cdkAssert, '@types/aws-lambda', '@types/fs-extra', - 'aws-cdk', + cdkCli, 'aws-sdk-mock', 'aws-sdk', 'esbuild', @@ -104,7 +107,7 @@ const project = new JsiiProject({ }, autoApproveUpgrades: true, depsUpgrade: DependenciesUpgradeMechanism.githubWorkflow({ - exclude: cdkDeps, + exclude: [...cdkDeps, cdkAssert, cdkCli], ignoreProjen: false, workflowOptions: { labels: ['auto-approve'], diff --git a/package.json b/package.json index 0b2624359..f736ff2a2 100644 --- a/package.json +++ b/package.json @@ -62,10 +62,10 @@ "@typescript-eslint/eslint-plugin": "^4.26.1", "@typescript-eslint/parser": "^4.26.1", "aws-cdk": "1.108.0", - "aws-sdk": "^2.926.0", + "aws-sdk": "^2.927.0", "aws-sdk-mock": "^5.1.0", "cdk-watchful": "^0.5.154", - "construct-hub-webapp": "^0.1.34", + "construct-hub-webapp": "^0.1.39", "constructs": "^3.3.77", "esbuild": "^0.12.8", "eslint": "^7.28.0", @@ -79,13 +79,13 @@ "jest-junit": "^12", "jsii": "^1.30.0", "jsii-diff": "^1.30.0", - "jsii-docgen": "^1.8.93", + "jsii-docgen": "^1.8.96", "jsii-pacmak": "^1.30.0", "jsii-rosetta": "./vendor/jsii-rosetta.tgz", "json-schema": "^0.3.0", "npm-check-updates": "^11", "pascal-case": "^3.1.2", - "projen": "^0.24.1", + "projen": "^0.24.7", "standard-version": "^9", "typescript": "^4.3.2", "yaml": "^1.10.2" diff --git a/src/__tests__/__snapshots__/construct-hub.test.ts.snap b/src/__tests__/__snapshots__/construct-hub.test.ts.snap index 4d8f288f0..99f998c78 100644 --- a/src/__tests__/__snapshots__/construct-hub.test.ts.snap +++ b/src/__tests__/__snapshots__/construct-hub.test.ts.snap @@ -45,16 +45,16 @@ Object { "Description": "S3 key for asset version \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", }, - "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59ArtifactHash3E5285E6": Object { - "Description": "Artifact hash for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524ArtifactHashABFB44E7": Object { + "Description": "Artifact hash for asset \\"c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524\\"", "Type": "String", }, - "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56": Object { - "Description": "S3 bucket for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217": Object { + "Description": "S3 bucket for asset \\"c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524\\"", "Type": "String", }, - "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD": Object { - "Description": "S3 key for asset version \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB": Object { + "Description": "S3 key for asset version \\"c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524\\"", "Type": "String", }, "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE": Object { @@ -806,7 +806,7 @@ Object { }, "SourceBucketNames": Array [ Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217", }, ], "SourceObjectKeys": Array [ @@ -821,7 +821,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB", }, ], }, @@ -834,7 +834,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB", }, ], }, @@ -1093,7 +1093,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217", }, ], ], @@ -1108,7 +1108,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217", }, "/*", ], @@ -1240,16 +1240,16 @@ Object { "Description": "S3 key for asset version \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", }, - "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59ArtifactHash3E5285E6": Object { - "Description": "Artifact hash for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524ArtifactHashABFB44E7": Object { + "Description": "Artifact hash for asset \\"c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524\\"", "Type": "String", }, - "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56": Object { - "Description": "S3 bucket for asset \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217": Object { + "Description": "S3 bucket for asset \\"c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524\\"", "Type": "String", }, - "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD": Object { - "Description": "S3 key for asset version \\"d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59\\"", + "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB": Object { + "Description": "S3 key for asset version \\"c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524\\"", "Type": "String", }, "AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305ArtifactHashE87E66EE": Object { @@ -2202,7 +2202,7 @@ Object { }, "SourceBucketNames": Array [ Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217", }, ], "SourceObjectKeys": Array [ @@ -2217,7 +2217,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB", }, ], }, @@ -2230,7 +2230,7 @@ Object { "Fn::Split": Array [ "||", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB", }, ], }, @@ -2502,7 +2502,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217", }, ], ], @@ -2517,7 +2517,7 @@ Object { }, ":s3:::", Object { - "Ref": "AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56", + "Ref": "AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217", }, "/*", ], diff --git a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap index 8d81f698e..c25da4feb 100644 --- a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap +++ b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap @@ -403,7 +403,7 @@ Resources: - CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C81C01536 - Arn SourceBucketNames: - - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56 + - Ref: AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217 SourceObjectKeys: - Fn::Join: - "" @@ -411,12 +411,12 @@ Resources: - 0 - Fn::Split: - "||" - - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD + - Ref: AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB - Fn::Select: - 1 - Fn::Split: - "||" - - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD + - Ref: AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB DestinationBucketName: Ref: ConstructHubWebAppWebsiteBucket4B2B9DB2 Prune: true @@ -566,13 +566,13 @@ Resources: - - "arn:" - Ref: AWS::Partition - ":s3:::" - - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56 + - Ref: AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217 - Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - ":s3:::" - - Ref: AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56 + - Ref: AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217 - /* - Action: - s3:GetObject* @@ -685,18 +685,18 @@ Parameters: Type: String Description: Artifact hash for asset "c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf" - AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3Bucket30B4DA56: + AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3Bucket265D5217: Type: String Description: S3 bucket for asset - "d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59" - AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59S3VersionKey3DE94BAD: + "c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524" + AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524S3VersionKeyA48E92EB: Type: String Description: S3 key for asset version - "d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59" - AssetParametersd0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59ArtifactHash3E5285E6: + "c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524" + AssetParametersc9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524ArtifactHashABFB44E7: Type: String Description: Artifact hash for asset - "d0880ee5bc85bff553be7f98611fb080da434b59eee485b05a74e6b57fe39b59" + "c9cd5cf7cd05639608564a28ce3c6ce732dcfba9df2045d125302637301dc524" AssetParametersdcc427ad1a9c4d2a63344256acec911f0ef035359b814054fe1485aeb59e789dS3Bucket8C070E54: Type: String Description: S3 bucket for asset diff --git a/yarn.lock b/yarn.lock index d11d5b08d..70d7f3bcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3465,9 +3465,9 @@ integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== "@types/prettier@^2.0.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" - integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb" + integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw== "@types/prop-types@*": version "15.7.3" @@ -3894,9 +3894,9 @@ acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88" - integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw== + version "8.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60" + integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w== add-stream@^1.0.0: version "1.0.0" @@ -4375,7 +4375,22 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.848.0, aws-sdk@^2.926.0: +aws-sdk@^2.637.0, aws-sdk@^2.927.0: + version "2.927.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.927.0.tgz#8545b30094eb52d16dc6b24b1c7f19bea565b261" + integrity sha512-S1dbpq26bQNYBQPHAsZBt0/L/e0FAWFdjjQoU3zdaVIXa08eA9d/oRI3kEs568ErJgBjwWU1CUUlr1byBxKjUQ== + dependencies: + buffer "4.9.2" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.15.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + uuid "3.3.2" + xml2js "0.4.19" + +aws-sdk@^2.848.0: version "2.926.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.926.0.tgz#96f40b3e8400957becc5b8446e2322c0ff0e8a85" integrity sha512-GFdAznnwxBxRPUTLP8gyFG8GhbUQ0sWwNCocYHkS/FB18hr8gmB3xv2m7VVWA/YkPDXvviPnoB680Z47VSEkqA== @@ -5106,9 +5121,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001219: - version "1.0.30001236" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz#0a80de4cdf62e1770bb46a30d884fc8d633e3958" - integrity sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ== + version "1.0.30001237" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz#4b7783661515b8e7151fc6376cfd97f0e427b9e5" + integrity sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw== capture-exit@^2.0.0: version "2.0.0" @@ -5209,11 +5224,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - charenc@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -5330,13 +5340,6 @@ cli-color@~0.1.6: dependencies: es5-ext "0.8.x" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - cli-table@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.6.tgz#e9d6aa859c7fe636981fd3787378c2a20bce92fc" @@ -5344,11 +5347,6 @@ cli-table@^0.3.6: dependencies: colors "1.0.3" -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -5648,10 +5646,10 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -construct-hub-webapp@^0.1.34: - version "0.1.34" - resolved "https://registry.yarnpkg.com/construct-hub-webapp/-/construct-hub-webapp-0.1.34.tgz#b3b0e2a0b97f88af073f17f129192dea643693df" - integrity sha512-8JVRtArBV51vUNBmZ54NhRWe7esqURRXkofwsAXg6bno4Cs855mvWM7sm5oLfXlLKMhJAC+ZIpUuAW+EDhB95A== +construct-hub-webapp@^0.1.39: + version "0.1.39" + resolved "https://registry.yarnpkg.com/construct-hub-webapp/-/construct-hub-webapp-0.1.39.tgz#65fd8fbd82be21c0c75fc68a87106e852553c6d3" + integrity sha512-QxMneRRwwjMSa/EoERNja2l7EmV6Nt8Wun3MT05TxL4BqPsv+GAsBCIS3zIT9xLhoWi6uoaXracapUE7DvNE5A== dependencies: "@chakra-ui/icons" "*" "@chakra-ui/react" "*" @@ -7541,15 +7539,6 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -7627,7 +7616,7 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^3.0.0, figures@^3.1.0: +figures@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -8742,7 +8731,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -8923,25 +8912,6 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -inquirer@^7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -10068,10 +10038,10 @@ jsii-diff@^1.30.0: typescript "~3.9.9" yargs "^16.2.0" -jsii-docgen@^1.8.93: - version "1.8.93" - resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.93.tgz#9d835bbb185b38ee85740158d467414c2cd2a60e" - integrity sha512-ZRKDDLcs0STFaUpjPadVMkgyrX9nqCw+KdM1TLJl4m+Az/TeUpByExuqvJJkpBuZJmwUzDG+LMbu8h4wJ+59jw== +jsii-docgen@^1.8.96: + version "1.8.96" + resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.96.tgz#e8684288b5116868a9e4c9e1c9743eeb4f31c102" + integrity sha512-5FqDTBR/Bu5RUZ3/EIuD8ElaBuy9WXp0AbNP3tyi46HaLwRCYMlkz1myesVLMp66TD+uqUjeF9XrqQG2UkByxA== dependencies: "@jsii/spec" "^1.30.0" fs-extra "^9.1.0" @@ -11173,7 +11143,7 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mute-stream@0.0.8, mute-stream@~0.0.4: +mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== @@ -11751,11 +11721,6 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -12884,18 +12849,18 @@ postcss@7.0.21: supports-color "^6.1.0" postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + version "7.0.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" postcss@^8.1.0: - version "8.3.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.1.tgz#71f380151c227f83b898294a46481f689f86b70a" - integrity sha512-9qH0MGjsSm+fjxOi3GnwViL1otfi7qkj+l/WX5gcRGmZNGsIcqc+A5fBkE6PUobEQK4APqYVaES+B3Uti98TCw== + version "8.3.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.3.tgz#ef412a7a67e85c5b2c9f0ab3c4d9e8a3814d55cc" + integrity sha512-gnXd9C4bGKevvlNFd80I8WfxHX+g6MR+W2h19PlDNHUuT9248rHTvCIDeZI3Hvs5mB3gzXiNDwVK3S153WJbZA== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -12964,10 +12929,10 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -projen@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.24.1.tgz#3ee15af00f5171b68639f8e03a4e4264b86ecf52" - integrity sha512-2jSWbTtPm3xHn49t8WyIBsGfROyiNA8osOoFnv+ED3wsrCFfOfSsgRJzTHrGgbFshdOUdbsMaINKAJ0gJGGTlg== +projen@^0.24.7: + version "0.24.7" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.24.7.tgz#b3a46103470db9621a3652b5e0591086a6c3e297" + integrity sha512-2nSpzCrQKH2M7KfSyS758tpH0ZWJsbe9HK7xs+Rjlk8fUrKts/T77WsI+5kL1JzkCW7H9rQjI4qmYmG5pYyQpA== dependencies: "@iarna/toml" "^2.2.5" chalk "^4.1.1" @@ -12975,7 +12940,6 @@ projen@^0.24.1: fs-extra "^9.1.0" glob "^7" ini "^2.0.0" - inquirer "^7.3.3" semver "^7.3.5" shx "^0.3.3" xmlbuilder2 "^2.4.1" @@ -13711,9 +13675,9 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0, regexp.prototype.f define-properties "^1.1.3" regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^4.7.1: version "4.7.1" @@ -13961,14 +13925,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -14074,11 +14030,6 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -14093,13 +14044,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -15266,7 +15210,7 @@ through2@^4.0.0: dependencies: readable-stream "3" -through@2, "through@>=2.2.7 <3", through@^2.3.6: +through@2, "through@>=2.2.7 <3": version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -15303,13 +15247,6 @@ tinycolor2@1.4.2: resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -15441,16 +15378,21 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0: +tslib@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== +tslib@^2.0.3, tslib@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + tsutils@^3.17.1, tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" From e9114ad2bde2dff40962e789c3620b641ad293b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier?= Date: Tue, 15 Jun 2021 11:32:27 +0200 Subject: [PATCH 10/15] style tweaks --- src/backend/discovery/discovery.lambda.ts | 174 ++++++++++++---------- 1 file changed, 92 insertions(+), 82 deletions(-) diff --git a/src/backend/discovery/discovery.lambda.ts b/src/backend/discovery/discovery.lambda.ts index dd9de2e27..2d3b055f3 100644 --- a/src/backend/discovery/discovery.lambda.ts +++ b/src/backend/discovery/discovery.lambda.ts @@ -1,15 +1,16 @@ - import * as console from 'console'; import * as https from 'https'; +import * as process from 'process'; +import { URL } from 'url'; // eslint-disable-next-line import/no-unresolved import type { Context } from 'aws-lambda'; import * as AWS from 'aws-sdk'; import * as Nano from 'nano'; -const TIMEOUT_MILLISECONDS = 10000; -const CONSTRUCT_KEYWORDS = ['cdk', 'aws-cdk', 'cdk8s', 'cdktf']; -const MARKER_FILE_NAME = 'marker'; +const TIMEOUT_MILLISECONDS = 10_000; +const CONSTRUCT_KEYWORDS: ReadonlySet = new Set(['cdk', 'aws-cdk', 'cdk8s', 'cdktf']); +const MARKER_FILE_NAME = 'couchdb-last-transaction-id'; const NPM_REPLICA_REGISTRY_URL = 'https://replicate.npmjs.com/'; /** @@ -17,12 +18,11 @@ const NPM_REPLICA_REGISTRY_URL = 'https://replicate.npmjs.com/'; */ const FAILED_CHANGE_PREFIX = 'failed'; -let s3: AWS.S3; -let sqs: AWS.SQS; +let s3: AWS.S3 | undefined; +let sqs: AWS.SQS | undefined; let stagingBucket: string; let queueUrl: string; -let functionContext: Context; /** * This function triggers on a fixed schedule and reads a stream of changes frm npmjs couchdb _changes endpoint. @@ -36,34 +36,32 @@ let functionContext: Context; * npm registry API docs: https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md * @param context a Lambda execution context */ -export async function handler(context: Context) { - s3 = new AWS.S3(); - sqs = new AWS.SQS(); - functionContext = context; +export async function handler(_request: unknown, context: Context) { + if (s3 == null) { + s3 = new AWS.S3(); + } + if (sqs == null) { + sqs = new AWS.SQS(); + } - if (!process.env?.STAGING_BUCKET_NAME) { + if (!process.env.STAGING_BUCKET_NAME) { throw new Error('The STAGING_BUCKET environment variable is not set'); } stagingBucket = stagingBucket; - if (!process.env?.QUEUE_URL) { + if (!process.env.QUEUE_URL) { throw new Error('The NOTIFICATION_QUEUE_URL environment variable is not set'); } queueUrl = process.env.QUEUE_URL; - AWS.config.update({ - region: process.env.AWS_REGION, - }); - // load marker from the staging bucket let marker; try { - const client = new AWS.S3(); - await client.getObject({ + await s3.getObject({ Bucket: stagingBucket, Key: MARKER_FILE_NAME, }).promise().then(function(data) { - marker = data.Body?.toString(); + marker = data.Body?.toString('utf-8'); }); } catch (error) { console.log(`Failed to load marker for bucket: ${stagingBucket}, will start read from latest`); @@ -91,17 +89,17 @@ export async function handler(context: Context) { // ignores changes which are not package update, see https://github.com/cdklabs/construct-hub/issues/3#issuecomment-858246275 .filter(change => change.doc.name) .map(change => { - return processPackageUpdate(change) + return processPackageUpdate(change, context) .catch(err => { Object.defineProperty(change, '_construct_hub_failure_reason', err); - return s3.putObject({ + return s3!.putObject({ Bucket: stagingBucket, Key: `${FAILED_CHANGE_PREFIX}/${change.id}`, Body: JSON.stringify(change, null, 2), Metadata: { - 'Lambda-Log-Group': functionContext.logGroupName, - 'Lambda-Log-Stream': functionContext.logStreamName, - 'Lambda-Run-Id': functionContext.awsRequestId, + 'Lambda-Log-Group': context.logGroupName, + 'Lambda-Log-Stream': context.logStreamName, + 'Lambda-Run-Id': context.awsRequestId, }, }).promise().then(() => (void undefined)); }); @@ -110,7 +108,7 @@ export async function handler(context: Context) { await Promise.all(batchPromises).then(function() { // write the last sequence to the marker file in S3 const lastSequence = batch[batch.length - 1].seq; - return writeMarkerToS3(lastSequence); + return writeMarkerToS3(lastSequence, context); }).then(function() { // resume reader (db.changesReader as any).resume(); @@ -123,21 +121,20 @@ export async function handler(context: Context) { }); } -async function writeMarkerToS3(sequence: Number) { - const client = new AWS.S3(); - await client.putObject({ +async function writeMarkerToS3(sequence: Number, context: Context) { + await s3!.putObject({ Bucket: stagingBucket, Key: MARKER_FILE_NAME, Body: sequence.toString(), Metadata: { - 'Lambda-Log-Group': functionContext.logGroupName, - 'Lambda-Log-Stream': functionContext.logStreamName, - 'Lambda-Run-Id': functionContext.awsRequestId, + 'Lambda-Log-Group': context.logGroupName, + 'Lambda-Log-Stream': context.logStreamName, + 'Lambda-Run-Id': context.awsRequestId, }, }).promise(); } -async function processPackageUpdate(change: Change) { +async function processPackageUpdate(change: Change, context: Context) { let latestVersion: VersionInfo; try { // we assume that the change is concerning the latest version @@ -150,37 +147,33 @@ async function processPackageUpdate(change: Change) { throw error; } - return new Promise((ok, ko) => { - // change.dist.tarball => https://registry.npmjs.org/<@scope>//-/-.tgz - // staging bucket key => packages/<@scope>//-/-.tgz - const key = latestVersion.dist.tarball.replace('https://registry.npmjs.org', 'packages'); - copyPackageToS3(latestVersion, key).then(() => { - return sendSqsMessage(latestVersion, key); - }).catch(function(reason) { - console.error(`Error processing change for ${change.id}:\n ${reason}`); - ko(); - }); - }); + // change.dist.tarball => https://registry.npmjs.org/<@scope>//-/-.tgz + // staging bucket key => packages/<@scope>//-/-.tgz + const key = `packages/${new URL(latestVersion.dist.tarball).pathname}`; + await copyPackageToS3(latestVersion, key, context); + await sendSqsMessage(latestVersion, change.seq, key); } /** * Copy the tarball from the npm registry to S3 */ -async function copyPackageToS3(versionInfo: VersionInfo, key: string): Promise { +async function copyPackageToS3(versionInfo: VersionInfo, key: string, context: Context): Promise { console.log(`uploading tarball to s3, key: ${key}`); return new Promise((ok, ko) => { https.get(versionInfo.dist.tarball, function (response /* Readable */) { - s3.putObject({ + s3!.putObject({ Bucket: stagingBucket, Key: key, Body: response, + ContentType: 'application/x-gtar', Metadata: { - 'Lambda-Log-Group': functionContext.logGroupName, - 'Lambda-Log-Stream': functionContext.logStreamName, - 'Lambda-Run-Id': functionContext.awsRequestId, + 'Lambda-Log-Group': context.logGroupName, + 'Lambda-Log-Stream': context.logStreamName, + 'Lambda-Run-Id': context.awsRequestId, + 'Origin-Uri': versionInfo.dist.tarball, }, }).promise().then(() => ok(), ko); - }).on('error', function (error) { + }).on('error', (error) => { console.error(`Error attempting to stage tarball in S3: ${error}`); ko(`Failed downloading file from ${versionInfo.dist.tarball}`); }); @@ -192,20 +185,19 @@ async function copyPackageToS3(versionInfo: VersionInfo, key: string): Promise { - console.log(`posting sqs message for ${versionInfo.packageName}`); +async function sendSqsMessage(versionInfo: VersionInfo, transactionId: number, key: string): Promise { + console.log(`Posting sqs message for ${versionInfo.packageName}`); const message: Message = { - packageName: versionInfo.name, - time: new Date(versionInfo.time.modified), tarballUri: `s3://${stagingBucket}/${key}`, + metadata: { tid: transactionId.toFixed() }, + time: new Date(versionInfo.time.modified), + integrity: 'TODO', }; - await sqs.sendMessage({ - MessageBody: JSON.stringify(message), + await sqs!.sendMessage({ + MessageBody: JSON.stringify(message, null, 2), QueueUrl: queueUrl, - }).promise().catch(function(error) { - throw Error(`Failed sending message to SQS\n ${error}`); - }); + }).promise(); } /** @@ -213,20 +205,29 @@ async function sendSqsMessage(versionInfo: VersionInfo, key: string): Promise key !== 'created' && key !== 'modified') + // Sort by timestamp, descending + .sort(([, ld], [, rd]) => new Date(rd).getTime() - new Date(ld).getTime()) + // First entry is most recently changed version + [0]; + + return update.doc.versions[lastModifiedVersion]; } /** @@ -236,7 +237,7 @@ function getLatestVersion(update: Change): VersionInfo { */ function isConstruct(pkgJason: VersionInfo): boolean { // currently we only check for specific keywords - return pkgJason.keywords?.some(k => CONSTRUCT_KEYWORDS.includes(k)); + return pkgJason.keywords?.some(k => CONSTRUCT_KEYWORDS.has(k)); } /** @@ -246,7 +247,7 @@ function isConstruct(pkgJason: VersionInfo): boolean { interface VersionInfo { readonly devDependencies: { readonly [name: string]: string }; readonly dependencies: { readonly [name: string]: string }; - readonly jsii: {}; + readonly jsii: unknown; readonly name: string; readonly [key: string]: unknown; readonly keywords: string[]; @@ -265,27 +266,36 @@ interface VersionInfo { interface Document { /** - * a List of all Version objects for the package - */ - readonly versions: {[key:string]: VersionInfo}; + * a List of all Version objects for the package + */ + readonly versions: { [key:string]: VersionInfo }; /** - * An object with at least one key, latest, representing dist-tags - */ - readonly 'dist-tags': {latest: string}; - + * The package's name. + */ readonly name: string; + + /** + * Timestamps associated with this document. The values are ISO-8601 encoded + * timestamps. + */ + readonly time: { + readonly created: string; + readonly modified: string; + readonly [version: string]: string; + }; } interface Change { - readonly seq: Number; + readonly seq: number; readonly doc: Document; readonly id: string; readonly deleted: boolean; } interface Message { - readonly packageName: string; - readonly tarballUri?: string; + readonly tarballUri: string; + readonly metadata?: { readonly [key: string]: string }; readonly time: Date; -} \ No newline at end of file + readonly integrity: string; +} From 011108a3e3da8f58804312f9425b383dae3567a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier?= Date: Tue, 15 Jun 2021 13:04:47 +0200 Subject: [PATCH 11/15] WIP --- src/backend/discovery/discovery.lambda.ts | 74 ++++++++++------------- src/backend/discovery/index.ts | 2 +- src/construct-hub.ts | 1 - 3 files changed, 34 insertions(+), 43 deletions(-) diff --git a/src/backend/discovery/discovery.lambda.ts b/src/backend/discovery/discovery.lambda.ts index 2d3b055f3..faf26301e 100644 --- a/src/backend/discovery/discovery.lambda.ts +++ b/src/backend/discovery/discovery.lambda.ts @@ -45,12 +45,12 @@ export async function handler(_request: unknown, context: Context) { } if (!process.env.STAGING_BUCKET_NAME) { - throw new Error('The STAGING_BUCKET environment variable is not set'); + throw new Error('The STAGING_BUCKET_NAME environment variable is not set'); } - stagingBucket = stagingBucket; + stagingBucket = process.env.STAGING_BUCKET_NAME; if (!process.env.QUEUE_URL) { - throw new Error('The NOTIFICATION_QUEUE_URL environment variable is not set'); + throw new Error('The QUEUE_URL environment variable is not set'); } queueUrl = process.env.QUEUE_URL; @@ -73,7 +73,7 @@ export async function handler(_request: unknown, context: Context) { includeDocs: true, // pause the changes reader after each request wait: true, - since: marker ?? 'now', + since: marker ?? '45664', // `changesReader.get` stops once a response with zero changes is received, however it waits too long // since we want to terminate the Lambda function we define a timeout shorter than the default timeout: TIMEOUT_MILLISECONDS, @@ -84,37 +84,33 @@ export async function handler(_request: unknown, context: Context) { db.changesReader.get(config) .on('batch', async (batch: Change[]) => { - console.log(`Received a batch of ${batch.length} length`); + console.log(`Received a batch of ${batch.length} element(s)`); const batchPromises = batch // ignores changes which are not package update, see https://github.com/cdklabs/construct-hub/issues/3#issuecomment-858246275 .filter(change => change.doc.name) - .map(change => { - return processPackageUpdate(change, context) - .catch(err => { - Object.defineProperty(change, '_construct_hub_failure_reason', err); - return s3!.putObject({ + .map(change => + processPackageUpdate(change, context) + .catch((err) => + s3!.putObject({ Bucket: stagingBucket, Key: `${FAILED_CHANGE_PREFIX}/${change.id}`, - Body: JSON.stringify(change, null, 2), + Body: JSON.stringify({ ...change, _construct_hub_failure_reason: err }, null, 2), Metadata: { 'Lambda-Log-Group': context.logGroupName, 'Lambda-Log-Stream': context.logStreamName, 'Lambda-Run-Id': context.awsRequestId, }, - }).promise().then(() => (void undefined)); - }); - }); + }).promise().then(() => (void undefined)))); - await Promise.all(batchPromises).then(function() { + await Promise.all(batchPromises).then(function () { // write the last sequence to the marker file in S3 const lastSequence = batch[batch.length - 1].seq; return writeMarkerToS3(lastSequence, context); - }).then(function() { + }).then( // resume reader - (db.changesReader as any).resume(); - }).catch(function (error) { - throw Error(`Error while processing batch, marker will not be updated, exiting.\n ${error}`); - }); + () => (db.changesReader as any).resume(), + (error) => Promise.reject(new Error(`Error while processing batch, marker will not be updated, exiting.\n${error}`)), + ); }) .on('end', () => { console.log('Changes feed monitoring has stopped'); @@ -122,6 +118,9 @@ export async function handler(_request: unknown, context: Context) { } async function writeMarkerToS3(sequence: Number, context: Context) { + if (process.env.SKIP_MARKER) { + return; + } await s3!.putObject({ Bucket: stagingBucket, Key: MARKER_FILE_NAME, @@ -135,23 +134,18 @@ async function writeMarkerToS3(sequence: Number, context: Context) { } async function processPackageUpdate(change: Change, context: Context) { - let latestVersion: VersionInfo; - try { - // we assume that the change is concerning the latest version - latestVersion = getLatestVersion(change); - if (!isJsiiModule(latestVersion) || !isConstruct(latestVersion)) { - return; - } - } catch (error) { - console.error(`Could not parse change for ${change.id}`); - throw error; + console.log(`Processing transaction: ${change.seq}`); + + const [latestVersion, publishTime] = getLatestVersion(change); + if (latestVersion == null || !isJsiiModule(latestVersion) || !isConstruct(latestVersion)) { + return; } // change.dist.tarball => https://registry.npmjs.org/<@scope>//-/-.tgz // staging bucket key => packages/<@scope>//-/-.tgz const key = `packages/${new URL(latestVersion.dist.tarball).pathname}`; await copyPackageToS3(latestVersion, key, context); - await sendSqsMessage(latestVersion, change.seq, key); + await sendSqsMessage(latestVersion, publishTime, change.seq, key); } /** @@ -185,12 +179,12 @@ async function copyPackageToS3(versionInfo: VersionInfo, key: string, context: C * @param versionInfo the version info * @param key the s3 key to which the tarball was uploaded */ -async function sendSqsMessage(versionInfo: VersionInfo, transactionId: number, key: string): Promise { +async function sendSqsMessage(versionInfo: VersionInfo, publishTime: Date, transactionId: number, key: string): Promise { console.log(`Posting sqs message for ${versionInfo.packageName}`); const message: Message = { tarballUri: `s3://${stagingBucket}/${key}`, metadata: { tid: transactionId.toFixed() }, - time: new Date(versionInfo.time.modified), + time: publishTime, integrity: 'TODO', }; @@ -218,7 +212,7 @@ function isJsiiModule(pkgJason: VersionInfo): boolean { * @returns the version from the versions array with the most recent * modification timestamp. */ -function getLatestVersion(update: Change): VersionInfo { +function getLatestVersion(update: Change): [VersionInfo | undefined, Date] { const [lastModifiedVersion] = Object.entries(update.doc.time) // Ignore created & modified timestamps .filter(([key]) => key !== 'created' && key !== 'modified') @@ -227,7 +221,10 @@ function getLatestVersion(update: Change): VersionInfo { // First entry is most recently changed version [0]; - return update.doc.versions[lastModifiedVersion]; + return [ + update.doc.versions[lastModifiedVersion], + new Date(update.doc.time[lastModifiedVersion]), + ]; } /** @@ -256,11 +253,6 @@ interface VersionInfo { readonly tarball: string; }; readonly version: string; - readonly time: { - readonly modified: string; - readonly created: string; - readonly [key: string]: string; - }; } interface Document { @@ -268,7 +260,7 @@ interface Document { /** * a List of all Version objects for the package */ - readonly versions: { [key:string]: VersionInfo }; + readonly versions: { [key:string]: VersionInfo | undefined }; /** * The package's name. diff --git a/src/backend/discovery/index.ts b/src/backend/discovery/index.ts index 00408c65b..1e026cd7d 100644 --- a/src/backend/discovery/index.ts +++ b/src/backend/discovery/index.ts @@ -1,7 +1,7 @@ import { Rule, Schedule } from '@aws-cdk/aws-events'; import { LambdaFunction } from '@aws-cdk/aws-events-targets'; import { RetentionDays } from '@aws-cdk/aws-logs'; -import { Bucket, EventType } from '@aws-cdk/aws-s3'; +import { Bucket } from '@aws-cdk/aws-s3'; import { Queue } from '@aws-cdk/aws-sqs'; import { Construct, Duration } from '@aws-cdk/core'; diff --git a/src/construct-hub.ts b/src/construct-hub.ts index 87fae42d3..26c86613e 100644 --- a/src/construct-hub.ts +++ b/src/construct-hub.ts @@ -1,7 +1,6 @@ import * as s3 from '@aws-cdk/aws-s3'; import { Queue } from '@aws-cdk/aws-sqs'; import { Construct as CoreConstruct, Duration } from '@aws-cdk/core'; -import { SQS } from 'aws-sdk'; import { Construct } from 'constructs'; import { AlarmActions, Domain } from './api'; import { Transliterator } from './backend'; From 6d9bf45bcaab05591205dd64ce7039f94eea67f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier?= Date: Tue, 15 Jun 2021 16:29:54 +0200 Subject: [PATCH 12/15] more tweaks --- src/backend/discovery/discovery.lambda.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/discovery/discovery.lambda.ts b/src/backend/discovery/discovery.lambda.ts index faf26301e..0ad9d43d2 100644 --- a/src/backend/discovery/discovery.lambda.ts +++ b/src/backend/discovery/discovery.lambda.ts @@ -135,9 +135,14 @@ async function writeMarkerToS3(sequence: Number, context: Context) { async function processPackageUpdate(change: Change, context: Context) { console.log(`Processing transaction: ${change.seq}`); + if (Object.keys(change.doc.versions).length === 0) { + console.log(`Ignoring document ${change.id}, as it contains no versions`); + return; + } const [latestVersion, publishTime] = getLatestVersion(change); if (latestVersion == null || !isJsiiModule(latestVersion) || !isConstruct(latestVersion)) { + console.log(`Ignoring document ${change.id}, as it is not relevant`); return; } From 413651d9833b785b3077d386d8f5139510866314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier?= Date: Tue, 15 Jun 2021 17:01:15 +0200 Subject: [PATCH 13/15] add integirty gear --- src/backend/discovery/discovery.lambda.ts | 34 +++++++++++------------ src/backend/shared/index.ts | 2 ++ src/backend/shared/ingestion-input.ts | 25 +++++++++++++++++ src/backend/shared/integrity.ts | 30 ++++++++++++++++++++ 4 files changed, 73 insertions(+), 18 deletions(-) create mode 100644 src/backend/shared/index.ts create mode 100644 src/backend/shared/ingestion-input.ts create mode 100644 src/backend/shared/integrity.ts diff --git a/src/backend/discovery/discovery.lambda.ts b/src/backend/discovery/discovery.lambda.ts index 0ad9d43d2..9cf8c8d60 100644 --- a/src/backend/discovery/discovery.lambda.ts +++ b/src/backend/discovery/discovery.lambda.ts @@ -7,6 +7,7 @@ import { URL } from 'url'; import type { Context } from 'aws-lambda'; import * as AWS from 'aws-sdk'; import * as Nano from 'nano'; +import { IngestionInput, integrity } from '../shared'; const TIMEOUT_MILLISECONDS = 10_000; const CONSTRUCT_KEYWORDS: ReadonlySet = new Set(['cdk', 'aws-cdk', 'cdk8s', 'cdktf']); @@ -149,21 +150,22 @@ async function processPackageUpdate(change: Change, context: Context) { // change.dist.tarball => https://registry.npmjs.org/<@scope>//-/-.tgz // staging bucket key => packages/<@scope>//-/-.tgz const key = `packages/${new URL(latestVersion.dist.tarball).pathname}`; - await copyPackageToS3(latestVersion, key, context); - await sendSqsMessage(latestVersion, publishTime, change.seq, key); + const tarball = await copyPackageToS3(latestVersion, key, context); + await sendSqsMessage(latestVersion, tarball, publishTime, change.seq, key); } /** * Copy the tarball from the npm registry to S3 */ -async function copyPackageToS3(versionInfo: VersionInfo, key: string, context: Context): Promise { +async function copyPackageToS3(versionInfo: VersionInfo, key: string, context: Context): Promise { console.log(`uploading tarball to s3, key: ${key}`); - return new Promise((ok, ko) => { - https.get(versionInfo.dist.tarball, function (response /* Readable */) { + return new Promise((ok, ko) => { + https.get(versionInfo.dist.tarball, (response) => { + const buffer = Buffer.from(response); s3!.putObject({ Bucket: stagingBucket, Key: key, - Body: response, + Body: buffer, ContentType: 'application/x-gtar', Metadata: { 'Lambda-Log-Group': context.logGroupName, @@ -171,7 +173,7 @@ async function copyPackageToS3(versionInfo: VersionInfo, key: string, context: C 'Lambda-Run-Id': context.awsRequestId, 'Origin-Uri': versionInfo.dist.tarball, }, - }).promise().then(() => ok(), ko); + }).promise().then(() => ok(buffer), ko); }).on('error', (error) => { console.error(`Error attempting to stage tarball in S3: ${error}`); ko(`Failed downloading file from ${versionInfo.dist.tarball}`); @@ -184,13 +186,16 @@ async function copyPackageToS3(versionInfo: VersionInfo, key: string, context: C * @param versionInfo the version info * @param key the s3 key to which the tarball was uploaded */ -async function sendSqsMessage(versionInfo: VersionInfo, publishTime: Date, transactionId: number, key: string): Promise { +async function sendSqsMessage(versionInfo: VersionInfo, tarball: Buffer, publishTime: Date, transactionId: number, key: string): Promise { console.log(`Posting sqs message for ${versionInfo.packageName}`); - const message: Message = { + const messageBase = { tarballUri: `s3://${stagingBucket}/${key}`, metadata: { tid: transactionId.toFixed() }, - time: publishTime, - integrity: 'TODO', + time: publishTime.toUTCString(), + }; + const message: IngestionInput = { + ...messageBase, + integrity: integrity(messageBase, tarball), }; await sqs!.sendMessage({ @@ -289,10 +294,3 @@ interface Change { readonly id: string; readonly deleted: boolean; } - -interface Message { - readonly tarballUri: string; - readonly metadata?: { readonly [key: string]: string }; - readonly time: Date; - readonly integrity: string; -} diff --git a/src/backend/shared/index.ts b/src/backend/shared/index.ts new file mode 100644 index 000000000..dbd0b3ff7 --- /dev/null +++ b/src/backend/shared/index.ts @@ -0,0 +1,2 @@ +export * from './ingestion-input'; +export * from './integrity'; diff --git a/src/backend/shared/ingestion-input.ts b/src/backend/shared/ingestion-input.ts new file mode 100644 index 000000000..69147b5dd --- /dev/null +++ b/src/backend/shared/ingestion-input.ts @@ -0,0 +1,25 @@ +/** + * Input payload for the Ingestion function. This is the format of the message + * the discovery function should use when signalling the intake queue. + */ +export interface IngestionInput { + /** + * The integrity checksum of this message. + */ + readonly integrity: string; + + /** + * Any metadata associated with the package by the discovery function. + */ + readonly metadata: { readonly [key: string]: string }; + + /** + * The URI to an npm package tarball. + */ + readonly tarballUri: string; + + /** + * The time at which the version was published, encoded in ISO-8601 format. + */ + readonly time: string; +} diff --git a/src/backend/shared/integrity.ts b/src/backend/shared/integrity.ts new file mode 100644 index 000000000..ab052ace8 --- /dev/null +++ b/src/backend/shared/integrity.ts @@ -0,0 +1,30 @@ +import { createHash } from 'crypto'; +import type { IngestionInput } from './ingestion-input'; + +/** + * Computes an integrity checksum for the provided `IngestionInput`. + * + * @param input the `IngestionInput` for which to make a checksum. + * @param tarball the content of the `.tgz` npm package + * @param alg the hash algorithm to use (e.g: 'sha384') + * + * @returns the computed checksum. + */ +export function integrity(input: Input, tarball: Buffer, alg = input.integrity?.split('-')[0] ?? 'sha384'): string { + const hash = createHash(alg); + const addField = (name: string, data: string | Buffer) => + // $name $data + hash.update('\x01').update(name).update('\x02').update(data).update('\x03'); + + for (const [name, value] of Object.entries(input.metadata ?? {}).sort(([l], [r]) => l.localeCompare(r))) { + addField(`metadata/${name}`, value); + } + addField('tarball', tarball); + addField('time', input.time); + + return `${alg}-${hash.digest('base64')}`; +} + +interface Input extends Omit { + readonly integrity?: string; +} From e5f1ddcf76e962a99ef0af4ca01503ffe1b80934 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier?= Date: Tue, 15 Jun 2021 18:30:45 +0200 Subject: [PATCH 14/15] further out the starting index --- src/backend/discovery/discovery.lambda.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/discovery/discovery.lambda.ts b/src/backend/discovery/discovery.lambda.ts index 9cf8c8d60..00a459de0 100644 --- a/src/backend/discovery/discovery.lambda.ts +++ b/src/backend/discovery/discovery.lambda.ts @@ -74,7 +74,7 @@ export async function handler(_request: unknown, context: Context) { includeDocs: true, // pause the changes reader after each request wait: true, - since: marker ?? '45664', + since: marker ?? '139369', // `changesReader.get` stops once a response with zero changes is received, however it waits too long // since we want to terminate the Lambda function we define a timeout shorter than the default timeout: TIMEOUT_MILLISECONDS, From a771deef506adf2ab0fa108d3e1b8a4d167dacbc Mon Sep 17 00:00:00 2001 From: Automation Date: Tue, 15 Jun 2021 16:36:48 +0000 Subject: [PATCH 15/15] chore: self mutation --- package.json | 2 +- .../__snapshots__/construct-hub.test.ts.snap | 516 ++++++++++++++++++ .../__snapshots__/snapshot.test.ts.snap | 156 ++++++ 3 files changed, 673 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 892846f28..d1c156934 100644 --- a/package.json +++ b/package.json @@ -207,4 +207,4 @@ "@jsii/spec": "./vendor/jsii-spec.tgz" }, "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." -} +} \ No newline at end of file diff --git a/src/__tests__/__snapshots__/construct-hub.test.ts.snap b/src/__tests__/__snapshots__/construct-hub.test.ts.snap index 99f998c78..5e80a5bcb 100644 --- a/src/__tests__/__snapshots__/construct-hub.test.ts.snap +++ b/src/__tests__/__snapshots__/construct-hub.test.ts.snap @@ -33,6 +33,18 @@ Object { }, }, "Parameters": Object { + "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2ArtifactHashAA3DB115": Object { + "Description": "Artifact hash for asset \\"39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2\\"", + "Type": "String", + }, + "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3Bucket1B6624AE": Object { + "Description": "S3 bucket for asset \\"39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2\\"", + "Type": "String", + }, + "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2": Object { + "Description": "S3 key for asset version \\"39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2\\"", + "Type": "String", + }, "AssetParametersc24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cfArtifactHash85F58E48": Object { "Description": "Artifact hash for asset \\"c24b999656e4fe6c609c31bae56a1cf4717a405619c3aa6ba1bc686b8c2c86cf\\"", "Type": "String", @@ -233,6 +245,236 @@ Object { }, "Type": "AWS::IAM::Policy", }, + "ConstructHubDiscoveryFunctionDeadLetterQueueFE498555": Object { + "DeletionPolicy": "Delete", + "Properties": Object { + "MessageRetentionPeriod": 1209600, + }, + "Type": "AWS::SQS::Queue", + "UpdateReplacePolicy": "Delete", + }, + "ConstructHubDiscoveryFunctionF5E139FD": Object { + "DependsOn": Array [ + "ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC", + "ConstructHubDiscoveryFunctionServiceRoleD371794F", + ], + "Properties": Object { + "Code": Object { + "S3Bucket": Object { + "Ref": "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3Bucket1B6624AE", + }, + "S3Key": Object { + "Fn::Join": Array [ + "", + Array [ + Object { + "Fn::Select": Array [ + 0, + Object { + "Fn::Split": Array [ + "||", + Object { + "Ref": "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2", + }, + ], + }, + ], + }, + Object { + "Fn::Select": Array [ + 1, + Object { + "Fn::Split": Array [ + "||", + Object { + "Ref": "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2", + }, + ], + }, + ], + }, + ], + ], + }, + }, + "DeadLetterConfig": Object { + "TargetArn": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionDeadLetterQueueFE498555", + "Arn", + ], + }, + }, + "Description": "Periodically query npm.js index for new Constructs", + "Environment": Object { + "Variables": Object { + "QUEUE_URL": Object { + "Ref": "ConstructHubIngestionQueue637E4740", + }, + "STAGING_BUCKET_NAME": Object { + "Ref": "ConstructHubStagingBucket29942A98", + }, + }, + }, + "Handler": "index.handler", + "MemorySize": 10240, + "Role": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionServiceRoleD371794F", + "Arn", + ], + }, + "Runtime": "nodejs14.x", + "Timeout": 900, + }, + "Type": "AWS::Lambda::Function", + }, + "ConstructHubDiscoveryFunctionScheduleRuleAllowEventRuleTestConstructHubDiscoveryFunctionC36D63A5E62E305C": Object { + "Properties": Object { + "Action": "lambda:InvokeFunction", + "FunctionName": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionF5E139FD", + "Arn", + ], + }, + "Principal": "events.amazonaws.com", + "SourceArn": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionScheduleRuleE32FE899", + "Arn", + ], + }, + }, + "Type": "AWS::Lambda::Permission", + }, + "ConstructHubDiscoveryFunctionScheduleRuleE32FE899": Object { + "Properties": Object { + "ScheduleExpression": "rate(5 minutes)", + "State": "ENABLED", + "Targets": Array [ + Object { + "Arn": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionF5E139FD", + "Arn", + ], + }, + "Id": "Target0", + }, + ], + }, + "Type": "AWS::Events::Rule", + }, + "ConstructHubDiscoveryFunctionServiceRoleD371794F": Object { + "Properties": Object { + "AssumeRolePolicyDocument": Object { + "Statement": Array [ + Object { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": Object { + "Service": "lambda.amazonaws.com", + }, + }, + ], + "Version": "2012-10-17", + }, + "ManagedPolicyArns": Array [ + Object { + "Fn::Join": Array [ + "", + Array [ + "arn:", + Object { + "Ref": "AWS::Partition", + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + ], + ], + }, + ], + }, + "Type": "AWS::IAM::Role", + }, + "ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC": Object { + "Properties": Object { + "PolicyDocument": Object { + "Statement": Array [ + Object { + "Action": "sqs:SendMessage", + "Effect": "Allow", + "Resource": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionDeadLetterQueueFE498555", + "Arn", + ], + }, + }, + Object { + "Action": Array [ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject*", + "s3:Abort*", + ], + "Effect": "Allow", + "Resource": Array [ + Object { + "Fn::GetAtt": Array [ + "ConstructHubStagingBucket29942A98", + "Arn", + ], + }, + Object { + "Fn::Join": Array [ + "", + Array [ + Object { + "Fn::GetAtt": Array [ + "ConstructHubStagingBucket29942A98", + "Arn", + ], + }, + "/*", + ], + ], + }, + ], + }, + Object { + "Action": Array [ + "sqs:SendMessage", + "sqs:GetQueueAttributes", + "sqs:GetQueueUrl", + ], + "Effect": "Allow", + "Resource": Object { + "Fn::GetAtt": Array [ + "ConstructHubIngestionQueue637E4740", + "Arn", + ], + }, + }, + ], + "Version": "2012-10-17", + }, + "PolicyName": "ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC", + "Roles": Array [ + Object { + "Ref": "ConstructHubDiscoveryFunctionServiceRoleD371794F", + }, + ], + }, + "Type": "AWS::IAM::Policy", + }, + "ConstructHubIngestionQueue637E4740": Object { + "DeletionPolicy": "Delete", + "Type": "AWS::SQS::Queue", + "UpdateReplacePolicy": "Delete", + }, "ConstructHubMonitoringDashboard78E057C8": Object { "Properties": Object { "DashboardBody": Object { @@ -571,6 +813,22 @@ Object { }, "Type": "Custom::S3BucketNotifications", }, + "ConstructHubStagingBucket29942A98": Object { + "DeletionPolicy": "Retain", + "Properties": Object { + "LifecycleConfiguration": Object { + "Rules": Array [ + Object { + "ExpirationInDays": 30, + "Prefix": "packages", + "Status": "Enabled", + }, + ], + }, + }, + "Type": "AWS::S3::Bucket", + "UpdateReplacePolicy": "Retain", + }, "ConstructHubTransliterator9C48708A": Object { "DependsOn": Array [ "ConstructHubTransliteratorServiceRoleDefaultPolicyB9C4BE06", @@ -1216,6 +1474,18 @@ Object { }, }, "Parameters": Object { + "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2ArtifactHashAA3DB115": Object { + "Description": "Artifact hash for asset \\"39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2\\"", + "Type": "String", + }, + "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3Bucket1B6624AE": Object { + "Description": "S3 bucket for asset \\"39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2\\"", + "Type": "String", + }, + "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2": Object { + "Description": "S3 key for asset version \\"39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2\\"", + "Type": "String", + }, "AssetParameters7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4ArtifactHash5E28809B": Object { "Description": "Artifact hash for asset \\"7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4\\"", "Type": "String", @@ -1577,6 +1847,236 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, + "ConstructHubDiscoveryFunctionDeadLetterQueueFE498555": Object { + "DeletionPolicy": "Delete", + "Properties": Object { + "MessageRetentionPeriod": 1209600, + }, + "Type": "AWS::SQS::Queue", + "UpdateReplacePolicy": "Delete", + }, + "ConstructHubDiscoveryFunctionF5E139FD": Object { + "DependsOn": Array [ + "ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC", + "ConstructHubDiscoveryFunctionServiceRoleD371794F", + ], + "Properties": Object { + "Code": Object { + "S3Bucket": Object { + "Ref": "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3Bucket1B6624AE", + }, + "S3Key": Object { + "Fn::Join": Array [ + "", + Array [ + Object { + "Fn::Select": Array [ + 0, + Object { + "Fn::Split": Array [ + "||", + Object { + "Ref": "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2", + }, + ], + }, + ], + }, + Object { + "Fn::Select": Array [ + 1, + Object { + "Fn::Split": Array [ + "||", + Object { + "Ref": "AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2", + }, + ], + }, + ], + }, + ], + ], + }, + }, + "DeadLetterConfig": Object { + "TargetArn": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionDeadLetterQueueFE498555", + "Arn", + ], + }, + }, + "Description": "Periodically query npm.js index for new Constructs", + "Environment": Object { + "Variables": Object { + "QUEUE_URL": Object { + "Ref": "ConstructHubIngestionQueue637E4740", + }, + "STAGING_BUCKET_NAME": Object { + "Ref": "ConstructHubStagingBucket29942A98", + }, + }, + }, + "Handler": "index.handler", + "MemorySize": 10240, + "Role": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionServiceRoleD371794F", + "Arn", + ], + }, + "Runtime": "nodejs14.x", + "Timeout": 900, + }, + "Type": "AWS::Lambda::Function", + }, + "ConstructHubDiscoveryFunctionScheduleRuleAllowEventRuleTestConstructHubDiscoveryFunctionC36D63A5E62E305C": Object { + "Properties": Object { + "Action": "lambda:InvokeFunction", + "FunctionName": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionF5E139FD", + "Arn", + ], + }, + "Principal": "events.amazonaws.com", + "SourceArn": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionScheduleRuleE32FE899", + "Arn", + ], + }, + }, + "Type": "AWS::Lambda::Permission", + }, + "ConstructHubDiscoveryFunctionScheduleRuleE32FE899": Object { + "Properties": Object { + "ScheduleExpression": "rate(5 minutes)", + "State": "ENABLED", + "Targets": Array [ + Object { + "Arn": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionF5E139FD", + "Arn", + ], + }, + "Id": "Target0", + }, + ], + }, + "Type": "AWS::Events::Rule", + }, + "ConstructHubDiscoveryFunctionServiceRoleD371794F": Object { + "Properties": Object { + "AssumeRolePolicyDocument": Object { + "Statement": Array [ + Object { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": Object { + "Service": "lambda.amazonaws.com", + }, + }, + ], + "Version": "2012-10-17", + }, + "ManagedPolicyArns": Array [ + Object { + "Fn::Join": Array [ + "", + Array [ + "arn:", + Object { + "Ref": "AWS::Partition", + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + ], + ], + }, + ], + }, + "Type": "AWS::IAM::Role", + }, + "ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC": Object { + "Properties": Object { + "PolicyDocument": Object { + "Statement": Array [ + Object { + "Action": "sqs:SendMessage", + "Effect": "Allow", + "Resource": Object { + "Fn::GetAtt": Array [ + "ConstructHubDiscoveryFunctionDeadLetterQueueFE498555", + "Arn", + ], + }, + }, + Object { + "Action": Array [ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject*", + "s3:Abort*", + ], + "Effect": "Allow", + "Resource": Array [ + Object { + "Fn::GetAtt": Array [ + "ConstructHubStagingBucket29942A98", + "Arn", + ], + }, + Object { + "Fn::Join": Array [ + "", + Array [ + Object { + "Fn::GetAtt": Array [ + "ConstructHubStagingBucket29942A98", + "Arn", + ], + }, + "/*", + ], + ], + }, + ], + }, + Object { + "Action": Array [ + "sqs:SendMessage", + "sqs:GetQueueAttributes", + "sqs:GetQueueUrl", + ], + "Effect": "Allow", + "Resource": Object { + "Fn::GetAtt": Array [ + "ConstructHubIngestionQueue637E4740", + "Arn", + ], + }, + }, + ], + "Version": "2012-10-17", + }, + "PolicyName": "ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC", + "Roles": Array [ + Object { + "Ref": "ConstructHubDiscoveryFunctionServiceRoleD371794F", + }, + ], + }, + "Type": "AWS::IAM::Policy", + }, + "ConstructHubIngestionQueue637E4740": Object { + "DeletionPolicy": "Delete", + "Type": "AWS::SQS::Queue", + "UpdateReplacePolicy": "Delete", + }, "ConstructHubMonitoringDashboard78E057C8": Object { "Properties": Object { "DashboardBody": Object { @@ -1915,6 +2415,22 @@ Object { }, "Type": "Custom::S3BucketNotifications", }, + "ConstructHubStagingBucket29942A98": Object { + "DeletionPolicy": "Retain", + "Properties": Object { + "LifecycleConfiguration": Object { + "Rules": Array [ + Object { + "ExpirationInDays": 30, + "Prefix": "packages", + "Status": "Enabled", + }, + ], + }, + }, + "Type": "AWS::S3::Bucket", + "UpdateReplacePolicy": "Retain", + }, "ConstructHubTransliterator9C48708A": Object { "DependsOn": Array [ "ConstructHubTransliteratorServiceRoleDefaultPolicyB9C4BE06", diff --git a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap index c25da4feb..8dc026399 100644 --- a/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap +++ b/src/__tests__/devapp/__snapshots__/snapshot.test.ts.snap @@ -198,6 +198,150 @@ Resources: Fn::GetAtt: - ConstructHubPackageDataDC5EF35E - Arn + ConstructHubStagingBucket29942A98: + Type: AWS::S3::Bucket + Properties: + LifecycleConfiguration: + Rules: + - ExpirationInDays: 30 + Prefix: packages + Status: Enabled + UpdateReplacePolicy: Retain + DeletionPolicy: Retain + ConstructHubIngestionQueue637E4740: + Type: AWS::SQS::Queue + UpdateReplacePolicy: Delete + DeletionPolicy: Delete + ConstructHubDiscoveryFunctionServiceRoleD371794F: + 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 + ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC: + Type: AWS::IAM::Policy + Properties: + PolicyDocument: + Statement: + - Action: sqs:SendMessage + Effect: Allow + Resource: + Fn::GetAtt: + - ConstructHubDiscoveryFunctionDeadLetterQueueFE498555 + - Arn + - Action: + - s3:GetObject* + - s3:GetBucket* + - s3:List* + - s3:DeleteObject* + - s3:PutObject* + - s3:Abort* + Effect: Allow + Resource: + - Fn::GetAtt: + - ConstructHubStagingBucket29942A98 + - Arn + - Fn::Join: + - "" + - - Fn::GetAtt: + - ConstructHubStagingBucket29942A98 + - Arn + - /* + - Action: + - sqs:SendMessage + - sqs:GetQueueAttributes + - sqs:GetQueueUrl + Effect: Allow + Resource: + Fn::GetAtt: + - ConstructHubIngestionQueue637E4740 + - Arn + Version: 2012-10-17 + PolicyName: ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC + Roles: + - Ref: ConstructHubDiscoveryFunctionServiceRoleD371794F + ConstructHubDiscoveryFunctionDeadLetterQueueFE498555: + Type: AWS::SQS::Queue + Properties: + MessageRetentionPeriod: 1209600 + UpdateReplacePolicy: Delete + DeletionPolicy: Delete + ConstructHubDiscoveryFunctionF5E139FD: + Type: AWS::Lambda::Function + Properties: + Code: + S3Bucket: + Ref: AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3Bucket1B6624AE + S3Key: + Fn::Join: + - "" + - - Fn::Select: + - 0 + - Fn::Split: + - "||" + - Ref: AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2 + - Fn::Select: + - 1 + - Fn::Split: + - "||" + - Ref: AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2 + Role: + Fn::GetAtt: + - ConstructHubDiscoveryFunctionServiceRoleD371794F + - Arn + DeadLetterConfig: + TargetArn: + Fn::GetAtt: + - ConstructHubDiscoveryFunctionDeadLetterQueueFE498555 + - Arn + Description: Periodically query npm.js index for new Constructs + Environment: + Variables: + STAGING_BUCKET_NAME: + Ref: ConstructHubStagingBucket29942A98 + QUEUE_URL: + Ref: ConstructHubIngestionQueue637E4740 + Handler: index.handler + MemorySize: 10240 + Runtime: nodejs14.x + Timeout: 900 + DependsOn: + - ConstructHubDiscoveryFunctionServiceRoleDefaultPolicyA09546EC + - ConstructHubDiscoveryFunctionServiceRoleD371794F + ConstructHubDiscoveryFunctionScheduleRuleE32FE899: + Type: AWS::Events::Rule + Properties: + ScheduleExpression: rate(5 minutes) + State: ENABLED + Targets: + - Arn: + Fn::GetAtt: + - ConstructHubDiscoveryFunctionF5E139FD + - Arn + Id: Target0 + ConstructHubDiscoveryFunctionScheduleRuleAllowEventRuledevConstructHubDiscoveryFunction9006704D902BB631: + Type: AWS::Lambda::Permission + Properties: + Action: lambda:InvokeFunction + FunctionName: + Fn::GetAtt: + - ConstructHubDiscoveryFunctionF5E139FD + - Arn + Principal: events.amazonaws.com + SourceArn: + Fn::GetAtt: + - ConstructHubDiscoveryFunctionScheduleRuleE32FE899 + - Arn ConstructHubTransliteratorServiceRole0F8A20C8: Type: AWS::IAM::Role Properties: @@ -649,6 +793,18 @@ Outputs: Export: Name: ConstructHubDomainName Parameters: + AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3Bucket1B6624AE: + Type: String + Description: S3 bucket for asset + "39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2" + AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2S3VersionKey3A7A31C2: + Type: String + Description: S3 key for asset version + "39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2" + AssetParameters39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2ArtifactHashAA3DB115: + Type: String + Description: Artifact hash for asset + "39dfa980beb6ec79ed5fc097276858af56f73316603b87c217b3eea012202cd2" AssetParametersda254f731d96f448a42b847d5e631a6a426b230b48eab5b0862307875334e305S3BucketCED66570: Type: String Description: S3 bucket for asset