diff --git a/allowed-breaking-changes.txt b/allowed-breaking-changes.txt index 9217e4ca2e773..2e53fd5b537fa 100644 --- a/allowed-breaking-changes.txt +++ b/allowed-breaking-changes.txt @@ -23,6 +23,8 @@ removed:@aws-cdk/cdk-assets-schema.FileAssetPackaging changed-type:@aws-cdk/aws-codedeploy.IServerDeploymentGroup.autoScalingGroups changed-type:@aws-cdk/aws-codedeploy.ServerDeploymentGroup.autoScalingGroups +changed-type:@aws-cdk/aws-rds.Credentials.secret + # We were leaking L1 types in L2 APIs, which now have changed required -> optional # when ECS moved to the CloudFormation Registry spec. change-return-type:@aws-cdk/aws-ecs.ContainerDefinition.renderContainerDefinition diff --git a/packages/@aws-cdk-containers/ecs-service-extensions/package.json b/packages/@aws-cdk-containers/ecs-service-extensions/package.json index 993be82075433..e96802cc30de0 100644 --- a/packages/@aws-cdk-containers/ecs-service-extensions/package.json +++ b/packages/@aws-cdk-containers/ecs-service-extensions/package.json @@ -40,7 +40,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "nodeunit": "^0.11.3", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/assert/package.json b/packages/@aws-cdk/assert/package.json index bde81f60bb29e..4d5d391d7da0e 100644 --- a/packages/@aws-cdk/assert/package.json +++ b/packages/@aws-cdk/assert/package.json @@ -23,9 +23,9 @@ "devDependencies": { "@types/jest": "^26.0.15", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", - "ts-jest": "^26.4.1" + "ts-jest": "^26.4.2" }, "dependencies": { "@aws-cdk/cloud-assembly-schema": "0.0.0", @@ -37,7 +37,7 @@ "peerDependencies": { "@aws-cdk/core": "0.0.0", "constructs": "^3.0.4", - "jest": "^26.6.0" + "jest": "^26.6.1" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/@aws-cdk/assets/test/test.staging.ts b/packages/@aws-cdk/assets/test/test.staging.ts index ca299049377d5..65190e267bf9d 100644 --- a/packages/@aws-cdk/assets/test/test.staging.ts +++ b/packages/@aws-cdk/assets/test/test.staging.ts @@ -16,7 +16,7 @@ export = { test.deepEqual(staging.sourceHash, '2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); test.deepEqual(staging.sourcePath, sourcePath); - test.deepEqual(stack.resolve(staging.stagedPath), 'asset.2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); + test.deepEqual(staging.relativeStagedPath(stack), 'asset.2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); test.done(); }, @@ -31,7 +31,7 @@ export = { test.deepEqual(staging.sourceHash, '2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); test.deepEqual(staging.sourcePath, sourcePath); - test.deepEqual(stack.resolve(staging.stagedPath), sourcePath); + test.deepEqual(staging.stagedPath, sourcePath); test.done(); }, diff --git a/packages/@aws-cdk/aws-appsync/package.json b/packages/@aws-cdk/aws-appsync/package.json index 1bbdcb00298aa..ae98518dbd272 100644 --- a/packages/@aws-cdk/aws-appsync/package.json +++ b/packages/@aws-cdk/aws-appsync/package.json @@ -76,7 +76,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json b/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json index 3a046c9503859..290c872c0063c 100644 --- a/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json +++ b/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json @@ -68,7 +68,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-batch/package.json b/packages/@aws-cdk/aws-batch/package.json index 5caaf31e20bd7..175a5fcdffca2 100644 --- a/packages/@aws-cdk/aws-batch/package.json +++ b/packages/@aws-cdk/aws-batch/package.json @@ -76,7 +76,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-cloudfront-origins/package.json b/packages/@aws-cdk/aws-cloudfront-origins/package.json index 48e2670ecdc8d..25a362603a467 100644 --- a/packages/@aws-cdk/aws-cloudfront-origins/package.json +++ b/packages/@aws-cdk/aws-cloudfront-origins/package.json @@ -72,7 +72,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-ec2": "0.0.0", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "pkglint": "0.0.0" diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 58320c1d42404..3fb0add746902 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -73,7 +73,7 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index f592b17211346..afee2deb4fb5d 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -73,12 +73,12 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", "colors": "^1.4.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-cloudwatch-actions/package.json b/packages/@aws-cdk/aws-cloudwatch-actions/package.json index 7a3b1456a6141..7df31dbcd77fd 100644 --- a/packages/@aws-cdk/aws-cloudwatch-actions/package.json +++ b/packages/@aws-cdk/aws-cloudwatch-actions/package.json @@ -68,7 +68,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index 29ced21a7d465..7c5e1ed6767bc 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -79,7 +79,7 @@ "@aws-cdk/aws-sns": "0.0.0", "@aws-cdk/aws-sqs": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index 56bbe17dedd7c..7ec147eb8f2e7 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -79,7 +79,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-sns": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-cognito/package.json b/packages/@aws-cdk/aws-cognito/package.json index 423f7cca2eae4..2dba14015e80f 100644 --- a/packages/@aws-cdk/aws-cognito/package.json +++ b/packages/@aws-cdk/aws-cognito/package.json @@ -77,7 +77,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "nodeunit": "^0.11.3", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index c75f44ccceb06..f19fcb7fb9f0a 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -74,15 +74,15 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.15", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", "sinon": "^9.2.0", - "ts-jest": "^26.4.1" + "ts-jest": "^26.4.2" }, "dependencies": { "@aws-cdk/aws-applicationautoscaling": "0.0.0", diff --git a/packages/@aws-cdk/aws-ecr-assets/.gitignore b/packages/@aws-cdk/aws-ecr-assets/.gitignore index 7e3964a75701e..cc09865158319 100644 --- a/packages/@aws-cdk/aws-ecr-assets/.gitignore +++ b/packages/@aws-cdk/aws-ecr-assets/.gitignore @@ -16,4 +16,5 @@ nyc.config.js *.snk !.eslintrc.js -junit.xml \ No newline at end of file +junit.xml +!jest.config.js \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecr-assets/.npmignore b/packages/@aws-cdk/aws-ecr-assets/.npmignore index a94c531529866..9e88226921c33 100644 --- a/packages/@aws-cdk/aws-ecr-assets/.npmignore +++ b/packages/@aws-cdk/aws-ecr-assets/.npmignore @@ -23,4 +23,5 @@ tsconfig.json # exclude cdk artifacts **/cdk.out junit.xml -test/ \ No newline at end of file +test/ +jest.config.js \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecr-assets/jest.config.js b/packages/@aws-cdk/aws-ecr-assets/jest.config.js new file mode 100644 index 0000000000000..12d0151b1bb3b --- /dev/null +++ b/packages/@aws-cdk/aws-ecr-assets/jest.config.js @@ -0,0 +1,10 @@ +const baseConfig = require('cdk-build-tools/config/jest.config'); +module.exports = { + ...baseConfig, + coverageThreshold: { + global: { + branches: 80, + statements: 80, + } + } +}; diff --git a/packages/@aws-cdk/aws-ecr-assets/lib/image-asset.ts b/packages/@aws-cdk/aws-ecr-assets/lib/image-asset.ts index 4e223f23e42d1..93d96360b6ae3 100644 --- a/packages/@aws-cdk/aws-ecr-assets/lib/image-asset.ts +++ b/packages/@aws-cdk/aws-ecr-assets/lib/image-asset.ts @@ -142,7 +142,7 @@ export class DockerImageAsset extends CoreConstruct implements assets.IAsset { const stack = Stack.of(this); const location = stack.synthesizer.addDockerImageAsset({ - directoryName: staging.stagedPath, + directoryName: staging.relativeStagedPath(stack), dockerBuildArgs: props.buildArgs, dockerBuildTarget: props.target, dockerFile: props.file, diff --git a/packages/@aws-cdk/aws-ecr-assets/package.json b/packages/@aws-cdk/aws-ecr-assets/package.json index 1164eccaf5f27..74eab5c05d71c 100644 --- a/packages/@aws-cdk/aws-ecr-assets/package.json +++ b/packages/@aws-cdk/aws-ecr-assets/package.json @@ -65,12 +65,11 @@ "license": "Apache-2.0", "devDependencies": { "@aws-cdk/assert": "0.0.0", - "@types/nodeunit": "^0.0.31", "@types/proxyquire": "^1.3.28", "aws-cdk": "0.0.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "nodeunit": "^0.11.3", + "nodeunit-shim": "0.0.0", "pkglint": "0.0.0", "proxyquire": "^2.1.3", "@aws-cdk/cloud-assembly-schema": "0.0.0" @@ -112,6 +111,7 @@ "announce": false }, "cdk-build": { + "jest": true, "env": { "AWSLINT_BASE_CONSTRUCT": true } diff --git a/packages/@aws-cdk/aws-ecr-assets/test/test.image-asset.ts b/packages/@aws-cdk/aws-ecr-assets/test/image-asset.test.ts similarity index 78% rename from packages/@aws-cdk/aws-ecr-assets/test/test.image-asset.ts rename to packages/@aws-cdk/aws-ecr-assets/test/image-asset.test.ts index fb8722870362d..27ee1a7eb8abd 100644 --- a/packages/@aws-cdk/aws-ecr-assets/test/test.image-asset.ts +++ b/packages/@aws-cdk/aws-ecr-assets/test/image-asset.test.ts @@ -1,15 +1,18 @@ import * as fs from 'fs'; import * as path from 'path'; -import { expect, haveResource } from '@aws-cdk/assert'; +import { expect as ourExpect, haveResource } from '@aws-cdk/assert'; import * as iam from '@aws-cdk/aws-iam'; import * as cxschema from '@aws-cdk/cloud-assembly-schema'; -import { App, Lazy, Stack } from '@aws-cdk/core'; -import { Test } from 'nodeunit'; +import { App, DefaultStackSynthesizer, Lazy, LegacyStackSynthesizer, Stack, Stage } from '@aws-cdk/core'; +import * as cxapi from '@aws-cdk/cx-api'; +import { nodeunitShim, Test } from 'nodeunit-shim'; import { DockerImageAsset } from '../lib'; /* eslint-disable quote-props */ -export = { +const DEMO_IMAGE_ASSET_HASH = 'baa2d6eb2a17c75424df631c8c70ff39f2d5f3bee8b9e1a109ee24ca17300540'; + +nodeunitShim({ 'test instantiating Asset Image'(test: Test) { // GIVEN const app = new App(); @@ -103,7 +106,7 @@ export = { asset.repository.grantPull(user); // THEN - expect(stack).to(haveResource('AWS::IAM::Policy', { + ourExpect(stack).to(haveResource('AWS::IAM::Policy', { PolicyDocument: { 'Statement': [ { @@ -306,4 +309,63 @@ export = { test.deepEqual(asset7.sourceHash, 'bc007f81fe1dd0f0bbb24af898eba3f4f15edbff19b7abb3fac928439486d667'); test.done(); }, -}; +}); + +test('nested assemblies share assets: legacy synth edition', () => { + // GIVEN + const app = new App(); + const stack1 = new Stack(new Stage(app, 'Stage1'), 'Stack', { synthesizer: new LegacyStackSynthesizer() }); + const stack2 = new Stack(new Stage(app, 'Stage2'), 'Stack', { synthesizer: new LegacyStackSynthesizer() }); + + // WHEN + new DockerImageAsset(stack1, 'Image', { directory: path.join(__dirname, 'demo-image') }); + new DockerImageAsset(stack2, 'Image', { directory: path.join(__dirname, 'demo-image') }); + + // THEN + const assembly = app.synth(); + + // Read the assets from the stack metadata + for (const stageName of ['Stage1', 'Stage2']) { + const stackArtifact = assembly.getNestedAssembly(`assembly-${stageName}`).artifacts.filter(isStackArtifact)[0]; + const assetMeta = stackArtifact.findMetadataByType(cxschema.ArtifactMetadataEntryType.ASSET); + expect(assetMeta[0]).toEqual( + expect.objectContaining({ + data: expect.objectContaining({ + path: `../asset.${DEMO_IMAGE_ASSET_HASH}`, + }), + }), + ); + } +}); + +test('nested assemblies share assets: default synth edition', () => { + // GIVEN + const app = new App(); + const stack1 = new Stack(new Stage(app, 'Stage1'), 'Stack', { synthesizer: new DefaultStackSynthesizer() }); + const stack2 = new Stack(new Stage(app, 'Stage2'), 'Stack', { synthesizer: new DefaultStackSynthesizer() }); + + // WHEN + new DockerImageAsset(stack1, 'Image', { directory: path.join(__dirname, 'demo-image') }); + new DockerImageAsset(stack2, 'Image', { directory: path.join(__dirname, 'demo-image') }); + + // THEN + const assembly = app.synth(); + + // Read the asset manifests to verify the file paths + for (const stageName of ['Stage1', 'Stage2']) { + const manifestArtifact = assembly.getNestedAssembly(`assembly-${stageName}`).artifacts.filter(isAssetManifestArtifact)[0]; + const manifest = JSON.parse(fs.readFileSync(manifestArtifact.file, { encoding: 'utf-8' })); + + expect(manifest.dockerImages[DEMO_IMAGE_ASSET_HASH].source).toEqual({ + directory: `../asset.${DEMO_IMAGE_ASSET_HASH}`, + }); + } +}); + +function isStackArtifact(x: any): x is cxapi.CloudFormationStackArtifact { + return x instanceof cxapi.CloudFormationStackArtifact; +} + +function isAssetManifestArtifact(x: any): x is cxapi.AssetManifestArtifact { + return x instanceof cxapi.AssetManifestArtifact; +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecs-patterns/package.json b/packages/@aws-cdk/aws-ecs-patterns/package.json index ead8ced0e0ee1..779ac37fb198f 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/package.json +++ b/packages/@aws-cdk/aws-ecs-patterns/package.json @@ -69,7 +69,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "nodeunit": "^0.11.3", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index 6ba65551376f0..3ea31cb45051f 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", "@types/yaml": "1.9.6", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2-actions/package.json b/packages/@aws-cdk/aws-elasticloadbalancingv2-actions/package.json index ab1cb8cca2023..74b48d1602c7c 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2-actions/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2-actions/package.json @@ -67,7 +67,7 @@ "@aws-cdk/assert": "0.0.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json b/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json index 82ce69cee6101..0af9e7b47b053 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json @@ -67,7 +67,7 @@ "@aws-cdk/assert": "0.0.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-events-targets/package.json b/packages/@aws-cdk/aws-events-targets/package.json index 82f434890070c..223f8288b7d07 100644 --- a/packages/@aws-cdk/aws-events-targets/package.json +++ b/packages/@aws-cdk/aws-events-targets/package.json @@ -75,11 +75,11 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-glue/package.json b/packages/@aws-cdk/aws-glue/package.json index 04b84d3c347b5..9b10dcc31e314 100644 --- a/packages/@aws-cdk/aws-glue/package.json +++ b/packages/@aws-cdk/aws-glue/package.json @@ -77,7 +77,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-iam/package.json b/packages/@aws-cdk/aws-iam/package.json index a345bf8ffa436..b1622e31daf47 100644 --- a/packages/@aws-cdk/aws-iam/package.json +++ b/packages/@aws-cdk/aws-iam/package.json @@ -76,7 +76,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", "sinon": "^9.2.0" }, diff --git a/packages/@aws-cdk/aws-lambda-destinations/package.json b/packages/@aws-cdk/aws-lambda-destinations/package.json index 64232e6f367a1..e614e8e815010 100644 --- a/packages/@aws-cdk/aws-lambda-destinations/package.json +++ b/packages/@aws-cdk/aws-lambda-destinations/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index 428055feb5233..04ea79882b7ef 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "delay": "4.4.0", - "parcel": "2.0.0-nightly.429", + "parcel": "2.0.0-nightly.432", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-lambda/package.json b/packages/@aws-cdk/aws-lambda/package.json index 056ccb67e6d68..291a8b57d54f5 100644 --- a/packages/@aws-cdk/aws-lambda/package.json +++ b/packages/@aws-cdk/aws-lambda/package.json @@ -82,7 +82,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "lodash": "^4.17.20", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/aws-logs-destinations/package.json b/packages/@aws-cdk/aws-logs-destinations/package.json index cb20a511c902e..1031a4bbf6f07 100644 --- a/packages/@aws-cdk/aws-logs-destinations/package.json +++ b/packages/@aws-cdk/aws-logs-destinations/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index 6fc9d0233f556..86fc7a9f69f90 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-rds/lib/props.ts b/packages/@aws-cdk/aws-rds/lib/props.ts index 943726a256303..a54d70a5bf2ac 100644 --- a/packages/@aws-cdk/aws-rds/lib/props.ts +++ b/packages/@aws-cdk/aws-rds/lib/props.ts @@ -172,7 +172,7 @@ export abstract class Credentials { * } * ``` */ - public static fromSecret(secret: secretsmanager.Secret): Credentials { + public static fromSecret(secret: secretsmanager.ISecret): Credentials { return { username: secret.secretValueFromJson('username').toString(), password: secret.secretValueFromJson('password'), @@ -207,7 +207,7 @@ export abstract class Credentials { * * @default - none */ - public abstract readonly secret?: secretsmanager.Secret; + public abstract readonly secret?: secretsmanager.ISecret; /** * The characters to exclude from the generated password. diff --git a/packages/@aws-cdk/aws-rds/test/test.database-secretmanager.ts b/packages/@aws-cdk/aws-rds/test/test.database-secretmanager.ts new file mode 100644 index 0000000000000..8d6310d21ce42 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/test.database-secretmanager.ts @@ -0,0 +1,56 @@ +import { ABSENT, expect, haveResource, ResourcePart } from '@aws-cdk/assert'; +import * as ec2 from '@aws-cdk/aws-ec2'; +import * as secretsmanager from '@aws-cdk/aws-secretsmanager'; +import * as cdk from '@aws-cdk/core'; +import { Test } from 'nodeunit'; +import { ServerlessCluster, DatabaseClusterEngine, ParameterGroup, Credentials } from '../lib'; + +export = { + 'can create a Serverless Cluster using an existing secret from secretmanager'(test: Test) { + // GIVEN + const stack = testStack(); + const vpc = new ec2.Vpc(stack, 'VPC'); + const existingSecret = secretsmanager.Secret.fromSecretName(stack, 'DBSecret', 'myDBLoginInfo'); + + // WHEN + new ServerlessCluster(stack, 'ServerlessDatabase', { + engine: DatabaseClusterEngine.AURORA_POSTGRESQL, + vpc, + credentials: Credentials.fromSecret(existingSecret), + parameterGroup: ParameterGroup.fromParameterGroupName(stack, 'ParameterGroup', 'default.aurora-postgresql10'), + }); + + // THEN + expect(stack).to(haveResource('AWS::RDS::DBCluster', { + Properties: { + Engine: 'aurora-postgresql', + DBClusterParameterGroupName: 'default.aurora-postgresql10', + DBSubnetGroupName: { + Ref: 'ServerlessDatabaseSubnets5643CD76', + }, + EngineMode: 'serverless', + MasterUsername: '{{resolve:secretsmanager:myDBLoginInfo:SecretString:username::}}', + MasterUserPassword: '{{resolve:secretsmanager:myDBLoginInfo:SecretString:password::}}', + StorageEncrypted: true, + VpcSecurityGroupIds: [ + { + 'Fn::GetAtt': [ + 'ServerlessDatabaseSecurityGroupB00D8C0F', + 'GroupId', + ], + }, + ], + }, + DeletionPolicy: ABSENT, + UpdateReplacePolicy: 'Snapshot', + }, ResourcePart.CompleteDefinition)); + + test.done(); + }, +}; + +function testStack() { + const stack = new cdk.Stack(undefined, undefined, { env: { account: '12345', region: 'us-test-1' } }); + stack.node.setContext('availability-zones:12345:us-test-1', ['us-test-1a', 'us-test-1b']); + return stack; +} diff --git a/packages/@aws-cdk/aws-redshift/package.json b/packages/@aws-cdk/aws-redshift/package.json index 6df900877d373..5bad5f27991ec 100644 --- a/packages/@aws-cdk/aws-redshift/package.json +++ b/packages/@aws-cdk/aws-redshift/package.json @@ -75,7 +75,7 @@ "@aws-cdk/assert": "0.0.0", "cdk-build-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-route53-patterns/package.json b/packages/@aws-cdk/aws-route53-patterns/package.json index f85057928fb12..1fff3868f23f3 100644 --- a/packages/@aws-cdk/aws-route53-patterns/package.json +++ b/packages/@aws-cdk/aws-route53-patterns/package.json @@ -68,7 +68,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-route53-targets/package.json b/packages/@aws-cdk/aws-route53-targets/package.json index 078ff6f6acb50..7cb4d2d8255ea 100644 --- a/packages/@aws-cdk/aws-route53-targets/package.json +++ b/packages/@aws-cdk/aws-route53-targets/package.json @@ -69,7 +69,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index 7666fc8ef3621..457fd5f097f52 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-s3-assets/lib/asset.ts b/packages/@aws-cdk/aws-s3-assets/lib/asset.ts index d1cb59520e0f0..cebd05e3ba31a 100644 --- a/packages/@aws-cdk/aws-s3-assets/lib/asset.ts +++ b/packages/@aws-cdk/aws-s3-assets/lib/asset.ts @@ -84,7 +84,7 @@ export class Asset extends cdk.Construct implements cdk.IAsset { public readonly s3ObjectUrl: string; /** - * The path to the asset (stringinfied token). + * The path to the asset, relative to the current Cloud Assembly * * If asset staging is disabled, this will just be the original path. * If asset staging is enabled it will be the staged path. @@ -125,7 +125,9 @@ export class Asset extends cdk.Construct implements cdk.IAsset { this.assetHash = staging.assetHash; this.sourceHash = this.assetHash; - this.assetPath = staging.stagedPath; + const stack = cdk.Stack.of(this); + + this.assetPath = staging.relativeStagedPath(stack); const packaging = determinePackaging(staging.sourcePath); @@ -134,12 +136,10 @@ export class Asset extends cdk.Construct implements cdk.IAsset { ? true : ARCHIVE_EXTENSIONS.some(ext => staging.sourcePath.toLowerCase().endsWith(ext)); - const stack = cdk.Stack.of(this); - const location = stack.synthesizer.addFileAsset({ packaging, sourceHash: this.sourceHash, - fileName: staging.stagedPath, + fileName: this.assetPath, }); this.s3BucketName = location.bucketName; diff --git a/packages/@aws-cdk/aws-s3-assets/test/asset.test.ts b/packages/@aws-cdk/aws-s3-assets/test/asset.test.ts index 199594ef95bf0..194454cc6cb61 100644 --- a/packages/@aws-cdk/aws-s3-assets/test/asset.test.ts +++ b/packages/@aws-cdk/aws-s3-assets/test/asset.test.ts @@ -10,6 +10,7 @@ import * as path from 'path'; import { Asset } from '../lib/asset'; const SAMPLE_ASSET_DIR = path.join(__dirname, 'sample-asset-directory'); +const SAMPLE_ASSET_HASH = '6b84b87243a4a01c592d78e1fd3855c4bfef39328cd0a450cc97e81717fea2a2'; test('simple use case', () => { const app = new cdk.App({ @@ -208,6 +209,60 @@ test('asset metadata is only emitted if ASSET_RESOURCE_METADATA_ENABLED_CONTEXT }, ResourcePart.CompleteDefinition); }); +test('nested assemblies share assets: legacy synth edition', () => { + // GIVEN + const app = new cdk.App(); + const stack1 = new cdk.Stack(new cdk.Stage(app, 'Stage1'), 'Stack', { synthesizer: new cdk.LegacyStackSynthesizer() }); + const stack2 = new cdk.Stack(new cdk.Stage(app, 'Stage2'), 'Stack', { synthesizer: new cdk.LegacyStackSynthesizer() }); + + // WHEN + new Asset(stack1, 'MyAsset', { path: SAMPLE_ASSET_DIR }); + new Asset(stack2, 'MyAsset', { path: SAMPLE_ASSET_DIR }); + + // THEN + const assembly = app.synth(); + + // Read the assets from the stack metadata + for (const stageName of ['Stage1', 'Stage2']) { + const stackArtifact = assembly.getNestedAssembly(`assembly-${stageName}`).artifacts.filter(isStackArtifact)[0]; + const assetMeta = stackArtifact.findMetadataByType(cxschema.ArtifactMetadataEntryType.ASSET); + expect(assetMeta[0]).toEqual( + expect.objectContaining({ + data: expect.objectContaining({ + packaging: 'zip', + path: `../asset.${SAMPLE_ASSET_HASH}`, + }), + }), + ); + } +}); + +test('nested assemblies share assets: default synth edition', () => { + // GIVEN + const app = new cdk.App(); + const stack1 = new cdk.Stack(new cdk.Stage(app, 'Stage1'), 'Stack', { synthesizer: new cdk.DefaultStackSynthesizer() }); + const stack2 = new cdk.Stack(new cdk.Stage(app, 'Stage2'), 'Stack', { synthesizer: new cdk.DefaultStackSynthesizer() }); + + // WHEN + new Asset(stack1, 'MyAsset', { path: SAMPLE_ASSET_DIR }); + new Asset(stack2, 'MyAsset', { path: SAMPLE_ASSET_DIR }); + + // THEN + const assembly = app.synth(); + + // Read the asset manifests to verify the file paths + for (const stageName of ['Stage1', 'Stage2']) { + const manifestArtifact = assembly.getNestedAssembly(`assembly-${stageName}`).artifacts.filter(isAssetManifestArtifact)[0]; + const manifest = JSON.parse(fs.readFileSync(manifestArtifact.file, { encoding: 'utf-8' })); + + expect(manifest.files[SAMPLE_ASSET_HASH].source).toEqual({ + packaging: 'zip', + path: `../asset.${SAMPLE_ASSET_HASH}`, + }); + } +}); + + describe('staging', () => { test('copy file assets under /${fingerprint}.ext', () => { const tempdir = mkdtempSync(); @@ -326,3 +381,11 @@ describe('staging', () => { function mkdtempSync() { return fs.mkdtempSync(path.join(os.tmpdir(), 'assets.test')); } + +function isStackArtifact(x: any): x is cxapi.CloudFormationStackArtifact { + return x instanceof cxapi.CloudFormationStackArtifact; +} + +function isAssetManifestArtifact(x: any): x is cxapi.AssetManifestArtifact { + return x instanceof cxapi.AssetManifestArtifact; +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-s3-deployment/package.json b/packages/@aws-cdk/aws-s3-deployment/package.json index 4855a85d55912..4598e98c9de4c 100644 --- a/packages/@aws-cdk/aws-s3-deployment/package.json +++ b/packages/@aws-cdk/aws-s3-deployment/package.json @@ -87,7 +87,7 @@ "@types/jest": "^26.0.15", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-s3-notifications/package.json b/packages/@aws-cdk/aws-s3-notifications/package.json index ab017d60d912f..9bede3e465eda 100644 --- a/packages/@aws-cdk/aws-s3-notifications/package.json +++ b/packages/@aws-cdk/aws-s3-notifications/package.json @@ -66,7 +66,7 @@ "@aws-cdk/assert": "0.0.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-sam/package.json b/packages/@aws-cdk/aws-sam/package.json index 12e502538f1cb..1ed859f1eb3c4 100644 --- a/packages/@aws-cdk/aws-sam/package.json +++ b/packages/@aws-cdk/aws-sam/package.json @@ -77,9 +77,9 @@ "@types/jest": "^26.0.15", "cdk-build-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", - "ts-jest": "^26.4.1" + "ts-jest": "^26.4.2" }, "dependencies": { "@aws-cdk/core": "0.0.0", diff --git a/packages/@aws-cdk/aws-secretsmanager/lib/secret.ts b/packages/@aws-cdk/aws-secretsmanager/lib/secret.ts index 4edf692963158..d60a534375483 100644 --- a/packages/@aws-cdk/aws-secretsmanager/lib/secret.ts +++ b/packages/@aws-cdk/aws-secretsmanager/lib/secret.ts @@ -73,6 +73,14 @@ export interface ISecret extends IResource { * account. */ denyAccountRootDelete(): void; + + /** + * Attach a target to this secret. + * + * @param target The target to attach. + * @returns An attached secret + */ + attach(target: ISecretAttachmentTarget): ISecret; } /** @@ -235,6 +243,26 @@ abstract class SecretBase extends Resource implements ISecret { * However, secrets imported by name require a different format. */ protected get arnForPolicies() { return this.secretArn; } + + /** + * Attach a target to this secret + * + * @param target The target to attach + * @returns An attached secret + */ + public attach(target: ISecretAttachmentTarget): ISecret { + const id = 'Attachment'; + const existing = this.node.tryFindChild(id); + + if (existing) { + throw new Error('Secret is already attached to a target.'); + } + + return new SecretTargetAttachment(this, id, { + secret: this, + target, + }); + } } /** @@ -345,26 +373,6 @@ export class Secret extends SecretBase { ...options, }); } - - /** - * Attach a target to this secret - * - * @param target The target to attach - * @returns An attached secret - */ - public attach(target: ISecretAttachmentTarget): ISecret { - const id = 'Attachment'; - const existing = this.node.tryFindChild(id); - - if (existing) { - throw new Error('Secret is already attached to a target.'); - } - - return new SecretTargetAttachment(this, id, { - secret: this, - target, - }); - } } /** diff --git a/packages/@aws-cdk/aws-ses-actions/package.json b/packages/@aws-cdk/aws-ses-actions/package.json index 8ef2f699f5feb..81ff3359d3f30 100644 --- a/packages/@aws-cdk/aws-ses-actions/package.json +++ b/packages/@aws-cdk/aws-ses-actions/package.json @@ -68,7 +68,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-sns-subscriptions/package.json b/packages/@aws-cdk/aws-sns-subscriptions/package.json index aa22738a1b647..7a6572197eebe 100644 --- a/packages/@aws-cdk/aws-sns-subscriptions/package.json +++ b/packages/@aws-cdk/aws-sns-subscriptions/package.json @@ -67,7 +67,7 @@ "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index ee62f913c80c7..5952821dfe994 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -74,7 +74,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.31", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/package.json b/packages/@aws-cdk/aws-stepfunctions-tasks/package.json index 4e77e858735cf..69fcb20cc65a1 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/package.json +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/package.json @@ -69,7 +69,7 @@ "@aws-cdk/aws-sns-subscriptions": "0.0.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/cdk-assets-schema/package.json b/packages/@aws-cdk/cdk-assets-schema/package.json index 9e54e1b01e0c6..ddf0543214beb 100644 --- a/packages/@aws-cdk/cdk-assets-schema/package.json +++ b/packages/@aws-cdk/cdk-assets-schema/package.json @@ -53,7 +53,7 @@ "devDependencies": { "@types/jest": "^26.0.15", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "repository": { diff --git a/packages/@aws-cdk/cfnspec/package.json b/packages/@aws-cdk/cfnspec/package.json index 8a9e9f1907e66..98e7db7193f32 100644 --- a/packages/@aws-cdk/cfnspec/package.json +++ b/packages/@aws-cdk/cfnspec/package.json @@ -24,7 +24,7 @@ "types": "lib/index.d.ts", "devDependencies": { "@types/fs-extra": "^8.1.1", - "@types/md5": "^2.2.0", + "@types/md5": "^2.2.1", "@types/nodeunit": "^0.0.31", "cdk-build-tools": "0.0.0", "fast-json-patch": "^2.2.1", diff --git a/packages/@aws-cdk/cloud-assembly-schema/package.json b/packages/@aws-cdk/cloud-assembly-schema/package.json index eea719afcb6c3..41bc7dc316754 100644 --- a/packages/@aws-cdk/cloud-assembly-schema/package.json +++ b/packages/@aws-cdk/cloud-assembly-schema/package.json @@ -55,7 +55,7 @@ "@types/jest": "^26.0.15", "@types/mock-fs": "^4.13.0", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "mock-fs": "^4.13.0", "pkglint": "0.0.0", "typescript-json-schema": "^0.43.0" diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 549b5dbb28c8b..6c0ab0946035d 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -34,9 +34,9 @@ "@types/table": "^5.0.0", "cdk-build-tools": "0.0.0", "fast-check": "^2.6.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", - "ts-jest": "^26.4.1" + "ts-jest": "^26.4.2" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/@aws-cdk/cloudformation-include/package.json b/packages/@aws-cdk/cloudformation-include/package.json index 4a375fd912535..f9890951363d8 100644 --- a/packages/@aws-cdk/cloudformation-include/package.json +++ b/packages/@aws-cdk/cloudformation-include/package.json @@ -330,9 +330,9 @@ "@types/jest": "^26.0.15", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", - "ts-jest": "^26.4.1" + "ts-jest": "^26.4.2" }, "keywords": [ "aws", diff --git a/packages/@aws-cdk/core/lib/asset-staging.ts b/packages/@aws-cdk/core/lib/asset-staging.ts index e6029a34d7f66..6d63f7a449414 100644 --- a/packages/@aws-cdk/core/lib/asset-staging.ts +++ b/packages/@aws-cdk/core/lib/asset-staging.ts @@ -8,6 +8,7 @@ import * as minimatch from 'minimatch'; import { AssetHashType, AssetOptions } from './assets'; import { BundlingOptions } from './bundling'; import { FileSystem, FingerprintOptions } from './fs'; +import { Cache } from './private/cache'; import { Stack } from './stack'; import { Stage } from './stage'; @@ -15,6 +16,21 @@ import { Stage } from './stage'; // eslint-disable-next-line import { Construct as CoreConstruct } from './construct-compat'; +/** + * A previously staged asset + */ +interface StagedAsset { + /** + * The path where we wrote this asset previously + */ + readonly stagedPath: string; + + /** + * The hash we used previously + */ + readonly assetHash: string; +} + /** * Initialization properties for `AssetStaging`. */ @@ -60,43 +76,30 @@ export class AssetStaging extends CoreConstruct { * Clears the asset hash cache */ public static clearAssetHashCache() { - this.assetHashCache = {}; + this.assetCache.clear(); } /** * Cache of asset hashes based on asset configuration to avoid repeated file * system and bundling operations. */ - private static assetHashCache: { [key: string]: string } = {}; + private static assetCache = new Cache(); /** - * Get asset hash from cache or calculate it in case of cache miss. - */ - private static getOrCalcAssetHash(cacheKey: string, calcFn: () => string) { - this.assetHashCache[cacheKey] = this.assetHashCache[cacheKey] ?? calcFn(); - return this.assetHashCache[cacheKey]; - } - - /** - * The path to the asset (stringinfied token). + * Absolute path to the asset data. + * + * If asset staging is disabled, this will just be the source path or + * a temporary directory used for bundling. * - * If asset staging is disabled, this will just be the original path. * If asset staging is enabled it will be the staged path. */ public readonly stagedPath: string; /** - * The path of the asset as it was referenced by the user. + * The absolute path of the asset as it was referenced by the user. */ public readonly sourcePath: string; - /** - * A cryptographic hash of the asset. - * - * @deprecated see `assetHash`. - */ - public readonly sourceHash: string; - /** * A cryptographic hash of the asset. */ @@ -104,150 +107,233 @@ export class AssetStaging extends CoreConstruct { private readonly fingerprintOptions: FingerprintOptions; - private readonly relativePath?: string; + private readonly hashType: AssetHashType; + private readonly assetOutdir: string; - private bundleDir?: string; + /** + * A custom source fingerprint given by the user + * + * Will not be used literally, always hashed later on. + */ + private readonly customSourceFingerprint?: string; private readonly cacheKey: string; constructor(scope: Construct, id: string, props: AssetStagingProps) { super(scope, id); - this.sourcePath = props.sourcePath; + this.sourcePath = path.resolve(props.sourcePath); this.fingerprintOptions = props; - const outdir = Stage.of(this)?.outdir; + const outdir = Stage.of(this)?.assetOutdir; if (!outdir) { - throw new Error('unable to determine cloud assembly output directory. Assets must be defined indirectly within a "Stage" or an "App" scope'); + throw new Error('unable to determine cloud assembly asset output directory. Assets must be defined indirectly within a "Stage" or an "App" scope'); } + this.assetOutdir = outdir; // Determine the hash type based on the props as props.assetHashType is // optional from a caller perspective. - const hashType = determineHashType(props.assetHashType, props.assetHash); + this.customSourceFingerprint = props.assetHash; + this.hashType = determineHashType(props.assetHashType, this.customSourceFingerprint); + + // Decide what we're going to do, without actually doing it yet + let stageThisAsset: () => StagedAsset; + let skip = false; + if (props.bundling) { + // Check if we actually have to bundle for this stack + const bundlingStacks: string[] = this.node.tryGetContext(cxapi.BUNDLING_STACKS) ?? ['*']; + skip = !bundlingStacks.find(pattern => minimatch(Stack.of(this).stackName, pattern)); + const bundling = props.bundling; + stageThisAsset = () => this.stageByBundling(bundling, skip); + } else { + stageThisAsset = () => this.stageByCopying(); + } // Calculate a cache key from the props. This way we can check if we already - // staged this asset (e.g. the same asset with the same configuration is used - // in multiple stacks). In this case we can completely skip file system and - // bundling operations. + // staged this asset and reuse the result (e.g. the same asset with the same + // configuration is used in multiple stacks). In this case we can completely + // skip file system and bundling operations. + // + // The output directory and whether this asset is skipped or not should also be + // part of the cache key to make sure we don't accidentally return the wrong + // staged asset from the cache. this.cacheKey = calculateCacheKey({ + outdir: this.assetOutdir, sourcePath: path.resolve(props.sourcePath), bundling: props.bundling, - assetHashType: hashType, + assetHashType: this.hashType, + customFingerprint: this.customSourceFingerprint, extraHash: props.extraHash, exclude: props.exclude, + skip, }); - if (props.bundling) { - // Check if we actually have to bundle for this stack - const bundlingStacks: string[] = this.node.tryGetContext(cxapi.BUNDLING_STACKS) ?? ['*']; - const runBundling = !!bundlingStacks.find(pattern => minimatch(Stack.of(this).stackName, pattern)); - if (runBundling) { - const bundling = props.bundling; - this.assetHash = AssetStaging.getOrCalcAssetHash(this.cacheKey, () => { - // Determine the source hash in advance of bundling if the asset hash type - // is SOURCE so that the bundler can opt to re-use its previous output. - const sourceHash = hashType === AssetHashType.SOURCE - ? this.calculateHash(hashType, props.assetHash, props.bundling) - : undefined; - this.bundleDir = this.bundle(bundling, outdir, sourceHash); - return sourceHash ?? this.calculateHash(hashType, props.assetHash, props.bundling); - }); - this.relativePath = renderAssetFilename(this.assetHash); - this.stagedPath = this.relativePath; - } else { // Bundling is skipped - this.assetHash = AssetStaging.getOrCalcAssetHash(this.cacheKey, () => { - return props.assetHashType === AssetHashType.BUNDLE || props.assetHashType === AssetHashType.OUTPUT - ? this.calculateHash(AssetHashType.CUSTOM, this.node.path) // Use node path as dummy hash because we're not bundling - : this.calculateHash(hashType, props.assetHash); - }); - this.stagedPath = this.sourcePath; - } - } else { - this.assetHash = AssetStaging.getOrCalcAssetHash(this.cacheKey, () => this.calculateHash(hashType, props.assetHash)); - this.relativePath = renderAssetFilename(this.assetHash, path.extname(this.sourcePath)); - this.stagedPath = this.relativePath; - } + const staged = AssetStaging.assetCache.obtain(this.cacheKey, stageThisAsset); + this.stagedPath = staged.stagedPath; + this.assetHash = staged.assetHash; + } + + /** + * A cryptographic hash of the asset. + * + * @deprecated see `assetHash`. + */ + public get sourceHash(): string { + return this.assetHash; + } + + /** + * Return the path to the staged asset, relative to the Cloud Assembly (manifest) directory of the given stack + * + * Only returns a relative path if the asset was staged, returns an absolute path if + * it was not staged. + * + * A bundled asset might end up in the outDir and still not count as + * "staged"; if asset staging is disabled we're technically expected to + * reference source directories, but we don't have a source directory for the + * bundled outputs (as the bundle output is written to a temporary + * directory). Nevertheless, we will still return an absolute path. + * + * A non-obvious directory layout may look like this: + * + * ``` + * CLOUD ASSEMBLY ROOT + * +-- asset.12345abcdef/ + * +-- assembly-Stage + * +-- MyStack.template.json + * +-- MyStack.assets.json <- will contain { "path": "../asset.12345abcdef" } + * ``` + */ + public relativeStagedPath(stack: Stack) { + const asmManifestDir = Stage.of(stack)?.outdir; + if (!asmManifestDir) { return this.stagedPath; } - const stagingDisabled = this.node.tryGetContext(cxapi.DISABLE_ASSET_STAGING_CONTEXT); - if (stagingDisabled) { - this.relativePath = undefined; - this.stagedPath = this.bundleDir ?? this.sourcePath; + const isOutsideAssetDir = path.relative(this.assetOutdir, this.stagedPath).startsWith('..'); + if (isOutsideAssetDir || this.stagingDisabled) { + return this.stagedPath; } - this.sourceHash = this.assetHash; + return path.relative(asmManifestDir, this.stagedPath); + } - this.stageAsset(outdir); + /** + * Stage the source to the target by copying + * + * Optionally skip if staging is disabled, in which case we pretend we did something but we don't really. + */ + private stageByCopying(): StagedAsset { + const assetHash = this.calculateHash(this.hashType); + const stagedPath = this.stagingDisabled + ? this.sourcePath + : path.resolve(this.assetOutdir, renderAssetFilename(assetHash, path.extname(this.sourcePath))); + + this.stageAsset(this.sourcePath, stagedPath, 'copy'); + return { assetHash, stagedPath }; } - private stageAsset(outdir: string) { - // Staging is disabled - if (!this.relativePath) { - return; + /** + * Stage the source to the target by bundling + * + * Optionally skip, in which case we pretend we did something but we don't really. + */ + private stageByBundling(bundling: BundlingOptions, skip: boolean): StagedAsset { + if (skip) { + // We should have bundled, but didn't to save time. Still pretend to have a hash, + // but always base it on sources. + return { + assetHash: this.calculateHash(AssetHashType.SOURCE), + stagedPath: this.sourcePath, + }; } - const targetPath = path.join(outdir, this.relativePath); + // Try to calculate assetHash beforehand (if we can) + let assetHash = this.hashType === AssetHashType.SOURCE || this.hashType === AssetHashType.CUSTOM + ? this.calculateHash(this.hashType, bundling) + : undefined; - // Staging the bundling asset. - if (this.bundleDir) { - const isAlreadyStaged = fs.existsSync(targetPath); + const bundleDir = this.determineBundleDir(this.assetOutdir, assetHash); + this.bundle(bundling, bundleDir); - if (isAlreadyStaged && path.resolve(this.bundleDir) !== path.resolve(targetPath)) { - // When an identical asset is already staged and the bundler used an - // intermediate bundling directory, we remove the extra directory. - fs.removeSync(this.bundleDir); - } else if (!isAlreadyStaged) { - fs.renameSync(this.bundleDir, targetPath); - } + // Calculate assetHash afterwards if we still must + assetHash = assetHash ?? this.calculateHash(this.hashType, bundling, bundleDir); + const stagedPath = path.resolve(this.assetOutdir, renderAssetFilename(assetHash)); + this.stageAsset(bundleDir, stagedPath, 'move'); + return { assetHash, stagedPath }; + } + + /** + * Whether staging has been disabled + */ + private get stagingDisabled() { + return !!this.node.tryGetContext(cxapi.DISABLE_ASSET_STAGING_CONTEXT); + } + + /** + * Copies or moves the files from sourcePath to targetPath. + * + * Moving implies the source directory is temporary and can be trashed. + * + * Will not do anything if source and target are the same. + */ + private stageAsset(sourcePath: string, targetPath: string, style: 'move' | 'copy') { + // Is the work already done? + const isAlreadyStaged = fs.existsSync(targetPath); + if (isAlreadyStaged) { + if (style === 'move' && sourcePath !== targetPath) { + fs.removeSync(sourcePath); + } return; } - // Already staged - if (fs.existsSync(targetPath)) { + // Moving can be done quickly + if (style == 'move') { + fs.renameSync(sourcePath, targetPath); return; } // Copy file/directory to staging directory - const stat = fs.statSync(this.sourcePath); + const stat = fs.statSync(sourcePath); if (stat.isFile()) { - fs.copyFileSync(this.sourcePath, targetPath); + fs.copyFileSync(sourcePath, targetPath); } else if (stat.isDirectory()) { fs.mkdirSync(targetPath); - FileSystem.copyDirectory(this.sourcePath, targetPath, this.fingerprintOptions); + FileSystem.copyDirectory(sourcePath, targetPath, this.fingerprintOptions); } else { - throw new Error(`Unknown file type: ${this.sourcePath}`); + throw new Error(`Unknown file type: ${sourcePath}`); } } /** - * Bundles an asset and provides the emitted asset's directory in return. + * Determine the directory where we're going to write the bundling output * - * @param options Bundling options - * @param outdir Parent directory to create the bundle output directory in - * @param sourceHash The asset source hash if known in advance. If this field - * is provided, the bundler may opt to skip bundling, providing any already- - * emitted bundle. If this field is not provided, the bundler uses an - * intermediate directory in outdir. - * @returns The fully resolved bundle output directory. + * This is the target directory where we're going to write the staged output + * files if we can (if the hash is fully known), or a temporary directory + * otherwise. */ - private bundle(options: BundlingOptions, outdir: string, sourceHash?: string): string { - let bundleDir: string; + private determineBundleDir(outdir: string, sourceHash?: string) { if (sourceHash) { - // When an asset hash is known in advance of bundling, the bundler outputs - // directly to the assembly output directory. - bundleDir = path.resolve(path.join(outdir, renderAssetFilename(sourceHash))); - - if (fs.existsSync(bundleDir)) { - // Pre-existing bundle directory. The bundle has already been generated - // once before, so we'll give the caller nothing. - return bundleDir; - } - } else { - // When the asset hash isn't known in advance, bundler outputs to an - // intermediate directory named after the asset's cache key - bundleDir = path.resolve(path.join(outdir, `bundling-temp-${this.cacheKey}`)); + return path.resolve(outdir, renderAssetFilename(sourceHash)); } + // When the asset hash isn't known in advance, bundler outputs to an + // intermediate directory named after the asset's cache key + return path.resolve(outdir, `bundling-temp-${this.cacheKey}`); + } + + /** + * Bundles an asset to the given directory + * + * If the given directory already exists, assume that everything's already + * in order and don't do anything. + * + * @param options Bundling options + * @param bundleDir Where to create the bundle directory + * @returns The fully resolved bundle output directory. + */ + private bundle(options: BundlingOptions, bundleDir: string) { + if (fs.existsSync(bundleDir)) { return; } + fs.ensureDirSync(bundleDir); // Chmod the bundleDir to full access. fs.chmodSync(bundleDir, 0o777); @@ -307,15 +393,9 @@ export class AssetStaging extends CoreConstruct { const outputDir = localBundling ? bundleDir : AssetStaging.BUNDLING_OUTPUT_DIR; throw new Error(`Bundling did not produce any output. Check that content is written to ${outputDir}.`); } - - return bundleDir; } - private calculateHash(hashType: AssetHashType, assetHash?: string, bundling?: BundlingOptions): string { - if (hashType === AssetHashType.CUSTOM && !assetHash) { - throw new Error('`assetHash` must be specified when `assetHashType` is set to `AssetHashType.CUSTOM`.'); - } - + private calculateHash(hashType: AssetHashType, bundling?: BundlingOptions, outputDir?: string): string { // When bundling a CUSTOM or SOURCE asset hash type, we want the hash to include // the bundling configuration. We handle CUSTOM and bundled SOURCE hash types // as a special case to preserve existing user asset hashes in all other cases. @@ -323,7 +403,7 @@ export class AssetStaging extends CoreConstruct { const hash = crypto.createHash('sha256'); // if asset hash is provided by user, use it, otherwise fingerprint the source. - hash.update(assetHash ?? FileSystem.fingerprint(this.sourcePath, this.fingerprintOptions)); + hash.update(this.customSourceFingerprint ?? FileSystem.fingerprint(this.sourcePath, this.fingerprintOptions)); // If we're bundling an asset, include the bundling configuration in the hash if (bundling) { @@ -338,10 +418,10 @@ export class AssetStaging extends CoreConstruct { return FileSystem.fingerprint(this.sourcePath, this.fingerprintOptions); case AssetHashType.BUNDLE: case AssetHashType.OUTPUT: - if (!this.bundleDir) { + if (!outputDir) { throw new Error(`Cannot use \`${hashType}\` hash type when \`bundling\` is not specified.`); } - return FileSystem.fingerprint(this.bundleDir, this.fingerprintOptions); + return FileSystem.fingerprint(outputDir, this.fingerprintOptions); default: throw new Error('Unknown asset hash type.'); } @@ -356,25 +436,27 @@ function renderAssetFilename(assetHash: string, extension = '') { * Determines the hash type from user-given prop values. * * @param assetHashType Asset hash type construct prop - * @param assetHash Asset hash given in the construct props + * @param customSourceFingerprint Asset hash seed given in the construct props */ -function determineHashType(assetHashType?: AssetHashType, assetHash?: string) { - if (assetHash) { - if (assetHashType && assetHashType !== AssetHashType.CUSTOM) { - throw new Error(`Cannot specify \`${assetHashType}\` for \`assetHashType\` when \`assetHash\` is specified. Use \`CUSTOM\` or leave \`undefined\`.`); - } - return AssetHashType.CUSTOM; - } else if (assetHashType) { - return assetHashType; - } else { - return AssetHashType.SOURCE; +function determineHashType(assetHashType?: AssetHashType, customSourceFingerprint?: string) { + const hashType = customSourceFingerprint + ? (assetHashType ?? AssetHashType.CUSTOM) + : (assetHashType ?? AssetHashType.SOURCE); + + if (customSourceFingerprint && hashType !== AssetHashType.CUSTOM) { + throw new Error(`Cannot specify \`${assetHashType}\` for \`assetHashType\` when \`assetHash\` is specified. Use \`CUSTOM\` or leave \`undefined\`.`); } + if (hashType === AssetHashType.CUSTOM && !customSourceFingerprint) { + throw new Error('`assetHash` must be specified when `assetHashType` is set to `AssetHashType.CUSTOM`.'); + } + + return hashType; } /** * Calculates a cache key from the props. Normalize by sorting keys. */ -function calculateCacheKey(props: AssetStagingProps): string { +function calculateCacheKey(props: A): string { return crypto.createHash('sha256') .update(JSON.stringify(sortObject(props))) .digest('hex'); diff --git a/packages/@aws-cdk/core/lib/private/cache.ts b/packages/@aws-cdk/core/lib/private/cache.ts new file mode 100644 index 0000000000000..c8bd6ebba119c --- /dev/null +++ b/packages/@aws-cdk/core/lib/private/cache.ts @@ -0,0 +1,29 @@ +/** + * A simple cache class. + * + * Must be declared at the top of the file because we're going to use it statically in the + * AssetStaging class. + */ +export class Cache { + private cache = new Map(); + + /** + * Clears the cache + */ + public clear() { + this.cache.clear(); + } + + /** + * Get a value from the cache or calculate it + */ + public obtain(cacheKey: string, calcFn: () => A): A { + let value = this.cache.get(cacheKey); + if (value) { return value; } + + value = calcFn(); + this.cache.set(cacheKey, value); + return value; + } +} + diff --git a/packages/@aws-cdk/core/lib/stage.ts b/packages/@aws-cdk/core/lib/stage.ts index 50ef0b7c5b081..072a4b9cc34c3 100644 --- a/packages/@aws-cdk/core/lib/stage.ts +++ b/packages/@aws-cdk/core/lib/stage.ts @@ -153,6 +153,13 @@ export class Stage extends CoreConstruct { return this._assemblyBuilder.outdir; } + /** + * The cloud assembly asset output directory. + */ + public get assetOutdir() { + return this._assemblyBuilder.assetOutdir; + } + /** * Artifact ID of the assembly if it is a nested stage. The root stage (app) * will return an empty string. diff --git a/packages/@aws-cdk/core/test/private/cache.test.ts b/packages/@aws-cdk/core/test/private/cache.test.ts new file mode 100644 index 0000000000000..35d76fe609eef --- /dev/null +++ b/packages/@aws-cdk/core/test/private/cache.test.ts @@ -0,0 +1,42 @@ +import { Cache } from '../../lib/private/cache'; + +let invocations = 0; +let cache: Cache; + +function returnFoo() { + invocations++; + return 'foo'; +} + +beforeEach(() => { + cache = new Cache(); + invocations = 0; +}); + +test('invoke retrieval function only once per key', () => { + // First call + const value = cache.obtain('key', returnFoo); + expect(value).toEqual('foo'); + expect(invocations).toEqual(1); + + // Second call + const value2 = cache.obtain('key', returnFoo); + expect(value2).toEqual('foo'); + expect(invocations).toEqual(1); + + // Different key + const value3 = cache.obtain('key2', returnFoo); + expect(value3).toEqual('foo'); + expect(invocations).toEqual(2); +}); + +test('cache can be cleared', () => { + // First call + expect(cache.obtain('key', returnFoo)).toEqual('foo'); + + cache.clear(); + + expect(cache.obtain('key', returnFoo)).toEqual('foo'); + + expect(invocations).toEqual(2); +}); \ No newline at end of file diff --git a/packages/@aws-cdk/core/test/staging.test.ts b/packages/@aws-cdk/core/test/staging.test.ts index 5a6d144fea1de..31b00700d7068 100644 --- a/packages/@aws-cdk/core/test/staging.test.ts +++ b/packages/@aws-cdk/core/test/staging.test.ts @@ -4,7 +4,7 @@ import * as cxapi from '@aws-cdk/cx-api'; import * as fs from 'fs-extra'; import { nodeunitShim, Test } from 'nodeunit-shim'; import * as sinon from 'sinon'; -import { App, AssetHashType, AssetStaging, BundlingDockerImage, BundlingOptions, FileSystem, Stack } from '../lib'; +import { App, AssetHashType, AssetStaging, BundlingDockerImage, BundlingOptions, FileSystem, Stack, Stage } from '../lib'; const STUB_INPUT_FILE = '/tmp/docker-stub.input'; const STUB_INPUT_CONCAT_FILE = '/tmp/docker-stub.input.concat'; @@ -15,6 +15,9 @@ enum DockerStubCommand { SUCCESS_NO_OUTPUT = 'DOCKER_STUB_SUCCESS_NO_OUTPUT' } +const FIXTURE_TEST1_DIR = path.join(__dirname, 'fs', 'fixtures', 'test1'); +const FIXTURE_TARBALL = path.join(__dirname, 'fs', 'fixtures.tar.gz'); + const userInfo = os.userInfo(); const USER_ARG = `-u ${userInfo.uid}:${userInfo.gid}`; @@ -45,7 +48,8 @@ nodeunitShim({ test.deepEqual(staging.sourceHash, '2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); test.deepEqual(staging.sourcePath, sourcePath); - test.deepEqual(stack.resolve(staging.stagedPath), 'asset.2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); + test.deepEqual(path.basename(staging.stagedPath), 'asset.2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); + test.deepEqual(path.basename(staging.relativeStagedPath(stack)), 'asset.2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); test.done(); }, @@ -60,7 +64,8 @@ nodeunitShim({ test.deepEqual(staging.sourceHash, '2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00'); test.deepEqual(staging.sourcePath, sourcePath); - test.deepEqual(stack.resolve(staging.stagedPath), sourcePath); + test.deepEqual(staging.stagedPath, sourcePath); + test.deepEqual(staging.relativeStagedPath(stack), sourcePath); test.done(); }, @@ -68,12 +73,10 @@ nodeunitShim({ // GIVEN const app = new App(); const stack = new Stack(app, 'stack'); - const directory = path.join(__dirname, 'fs', 'fixtures', 'test1'); - const file = path.join(__dirname, 'fs', 'fixtures.tar.gz'); // WHEN - new AssetStaging(stack, 's1', { sourcePath: directory }); - new AssetStaging(stack, 'file', { sourcePath: file }); + new AssetStaging(stack, 's1', { sourcePath: FIXTURE_TEST1_DIR }); + new AssetStaging(stack, 'file', { sourcePath: FIXTURE_TARBALL }); // THEN const assembly = app.synth(); @@ -88,6 +91,31 @@ nodeunitShim({ test.done(); }, + 'assets in nested assemblies get staged into assembly root directory'(test: Test) { + // GIVEN + const app = new App(); + const stack1 = new Stack(new Stage(app, 'Stage1'), 'Stack'); + const stack2 = new Stack(new Stage(app, 'Stage2'), 'Stack'); + + // WHEN + new AssetStaging(stack1, 's1', { sourcePath: FIXTURE_TEST1_DIR }); + new AssetStaging(stack2, 's1', { sourcePath: FIXTURE_TEST1_DIR }); + + // THEN + const assembly = app.synth(); + + // One asset directory at the top + test.deepEqual(fs.readdirSync(assembly.directory), [ + 'assembly-Stage1', + 'assembly-Stage2', + 'asset.2f37f937c51e2c191af66acf9b09f548926008ec68c575bd2ee54b6e997c0e00', + 'cdk.out', + 'manifest.json', + 'tree.json', + ]); + test.done(); + }, + 'allow specifying extra data to include in the source hash'(test: Test) { // GIVEN const app = new App(); @@ -141,7 +169,7 @@ nodeunitShim({ test.done(); }, - 'bundler succeeds when staging is disabled'(test: Test) { + 'bundled resources have absolute path when staging is disabled'(test: Test) { // GIVEN const app = new App(); const stack = new Stack(app, 'stack'); @@ -171,7 +199,7 @@ nodeunitShim({ test.equal(asset.sourceHash, 'b1e32e86b3523f2fa512eb99180ee2975a50a4439e63e8badd153f2a68d61aa4'); test.equal(asset.sourcePath, directory); - const resolvedStagePath = stack.resolve(asset.stagedPath); + const resolvedStagePath = asset.relativeStagedPath(stack); // absolute path ending with bundling dir test.ok(path.isAbsolute(resolvedStagePath)); test.ok(new RegExp('asset.b1e32e86b3523f2fa512eb99180ee2975a50a4439e63e8badd153f2a68d61aa4$').test(resolvedStagePath)); @@ -682,7 +710,7 @@ nodeunitShim({ test.done(); }, - 'bundling looks at bundling stacks in context'(test: Test) { + 'bundling can be skipped by setting context'(test: Test) { // GIVEN const app = new App(); const stack = new Stack(app, 'MyStack'); @@ -700,9 +728,9 @@ nodeunitShim({ }); test.throws(() => readDockerStubInput()); // Bundling did not run - test.equal(asset.assetHash, '3d96e735e26b857743a7c44523c9160c285c2d3ccf273d80fa38a1e674c32cb3'); // hash of MyStack/Asset test.equal(asset.sourcePath, directory); - test.equal(stack.resolve(asset.stagedPath), directory); + test.equal(asset.stagedPath, directory); + test.equal(asset.relativeStagedPath(stack), directory); test.done(); }, @@ -776,4 +804,4 @@ function readDockerStubInput() { // Concatenated docker inputs since last teardown function readDockerStubInputConcat() { return readAndCleanDockerStubInput(STUB_INPUT_CONCAT_FILE); -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index 9367f6f94c0be..23bc325d3976d 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -79,7 +79,7 @@ "@types/aws-lambda": "^8.10.63", "@types/fs-extra": "^8.1.1", "@types/sinon": "^9.0.7", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/cx-api/lib/app.ts b/packages/@aws-cdk/cx-api/lib/app.ts index 24be06efc6797..41c03f374b408 100644 --- a/packages/@aws-cdk/cx-api/lib/app.ts +++ b/packages/@aws-cdk/cx-api/lib/app.ts @@ -16,8 +16,19 @@ export const PATH_METADATA_ENABLE_CONTEXT = 'aws:cdk:enable-path-metadata'; export const ANALYTICS_REPORTING_ENABLED_CONTEXT = 'aws:cdk:version-reporting'; /** - * If this is set, asset staging is disabled. This means that assets will not be copied to - * the output directory and will be referenced with absolute source paths. + * Disable asset staging (for use with SAM CLI). + * + * Disabling asset staging means that copyable assets will not be copied to the + * output directory and will be referenced with absolute paths. + * + * Not copied to the output directory: this is so users can iterate on the + * Lambda source and run SAM CLI without having to re-run CDK (note: we + * cannot achieve this for bundled assets, if assets are bundled they + * will have to re-run CDK CLI to re-bundle updated versions). + * + * Absolute path: SAM CLI expects `cwd`-relative paths in a resource's + * `aws:asset:path` metadata. In order to be predictable, we will always output + * absolute paths. */ export const DISABLE_ASSET_STAGING_CONTEXT = 'aws:cdk:disable-asset-staging'; diff --git a/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts b/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts index 6d58bb6ae38b5..df947f379ab46 100644 --- a/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts +++ b/packages/@aws-cdk/cx-api/lib/cloud-assembly.ts @@ -209,6 +209,18 @@ export class CloudAssembly { } } +/** + * Construction properties for CloudAssemblyBuilder + */ +export interface CloudAssemblyBuilderProps { + /** + * Use the given asset output directory + * + * @default - Same as the manifest outdir + */ + readonly assetOutdir?: string; +} + /** * Can be used to build a cloud assembly. */ @@ -218,6 +230,11 @@ export class CloudAssemblyBuilder { */ public readonly outdir: string; + /** + * The directory where assets of this Cloud Assembly should be stored + */ + public readonly assetOutdir: string; + private readonly artifacts: { [id: string]: cxschema.ArtifactManifest } = { }; private readonly missing = new Array(); @@ -225,21 +242,15 @@ export class CloudAssemblyBuilder { * Initializes a cloud assembly builder. * @param outdir The output directory, uses temporary directory if undefined */ - constructor(outdir?: string) { + constructor(outdir?: string, props: CloudAssemblyBuilderProps = {}) { this.outdir = determineOutputDirectory(outdir); + this.assetOutdir = props.assetOutdir ?? this.outdir; // we leverage the fact that outdir is long-lived to avoid staging assets into it // that were already staged (copying can be expensive). this is achieved by the fact // that assets use a source hash as their name. other artifacts, and the manifest itself, // will overwrite existing files as needed. - - if (fs.existsSync(this.outdir)) { - if (!fs.statSync(this.outdir).isDirectory()) { - throw new Error(`${this.outdir} must be a directory`); - } - } else { - fs.mkdirSync(this.outdir, { recursive: true }); - } + ensureDirSync(this.outdir); } /** @@ -306,7 +317,10 @@ export class CloudAssemblyBuilder { } as cxschema.NestedCloudAssemblyProperties, }); - return new CloudAssemblyBuilder(innerAsmDir); + return new CloudAssemblyBuilder(innerAsmDir, { + // Reuse the same asset output directory as the current Casm builder + assetOutdir: this.assetOutdir, + }); } } @@ -407,3 +421,13 @@ function ignore(_x: any) { function determineOutputDirectory(outdir?: string) { return outdir ?? fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out')); } + +function ensureDirSync(dir: string) { + if (fs.existsSync(dir)) { + if (!fs.statSync(dir).isDirectory()) { + throw new Error(`${dir} must be a directory`); + } + } else { + fs.mkdirSync(dir, { recursive: true }); + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/cx-api/package.json b/packages/@aws-cdk/cx-api/package.json index 60db83e12eac7..a1fa098f13738 100644 --- a/packages/@aws-cdk/cx-api/package.json +++ b/packages/@aws-cdk/cx-api/package.json @@ -62,7 +62,7 @@ "@types/mock-fs": "^4.13.0", "@types/semver": "^7.3.4", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "mock-fs": "^4.13.0", "pkglint": "0.0.0" }, diff --git a/packages/@aws-cdk/example-construct-library/package.json b/packages/@aws-cdk/example-construct-library/package.json index a15bb0cdd6284..a196ea5fb97ed 100644 --- a/packages/@aws-cdk/example-construct-library/package.json +++ b/packages/@aws-cdk/example-construct-library/package.json @@ -68,7 +68,7 @@ "@aws-cdk/assert": "0.0.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/region-info/build-tools/fact-tables.ts b/packages/@aws-cdk/region-info/build-tools/fact-tables.ts index 6520348d3e2ad..6680629073cf2 100644 --- a/packages/@aws-cdk/region-info/build-tools/fact-tables.ts +++ b/packages/@aws-cdk/region-info/build-tools/fact-tables.ts @@ -2,6 +2,7 @@ export const AWS_OLDER_REGIONS = new Set([ 'us-east-1', 'us-west-1', 'us-west-2', + 'us-gov-west-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', diff --git a/packages/@aws-cdk/region-info/test/__snapshots__/region-info.test.js.snap b/packages/@aws-cdk/region-info/test/__snapshots__/region-info.test.js.snap index 1ec9c0064af08..55df3731f4eec 100644 --- a/packages/@aws-cdk/region-info/test/__snapshots__/region-info.test.js.snap +++ b/packages/@aws-cdk/region-info/test/__snapshots__/region-info.test.js.snap @@ -426,7 +426,7 @@ Object { "cdkMetadataResourceAvailable": false, "domainSuffix": "amazonaws.com", "partition": "aws-us-gov", - "s3StaticWebsiteEndpoint": "s3-website.us-gov-west-1.amazonaws.com", + "s3StaticWebsiteEndpoint": "s3-website-us-gov-west-1.amazonaws.com", "servicePrincipals": Object { "application-autoscaling": "application-autoscaling.amazonaws.com", "autoscaling": "autoscaling.amazonaws.com", diff --git a/packages/@aws-cdk/yaml-cfn/package.json b/packages/@aws-cdk/yaml-cfn/package.json index e80e67461905a..f7a89fbf1aa84 100644 --- a/packages/@aws-cdk/yaml-cfn/package.json +++ b/packages/@aws-cdk/yaml-cfn/package.json @@ -71,7 +71,7 @@ "@types/jest": "^26.0.15", "@types/yaml": "^1.9.7", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "bundledDependencies": [ diff --git a/packages/@monocdk-experiment/assert/package.json b/packages/@monocdk-experiment/assert/package.json index ad5960bac6c75..6f2118b9e51af 100644 --- a/packages/@monocdk-experiment/assert/package.json +++ b/packages/@monocdk-experiment/assert/package.json @@ -38,17 +38,17 @@ "@types/node": "^10.17.42", "cdk-build-tools": "0.0.0", "constructs": "^3.0.4", - "jest": "^26.6.0", + "jest": "^26.6.1", "monocdk": "0.0.0", "pkglint": "0.0.0", - "ts-jest": "^26.4.1" + "ts-jest": "^26.4.2" }, "dependencies": { "@aws-cdk/cloudformation-diff": "0.0.0" }, "peerDependencies": { "constructs": "^3.0.4", - "jest": "^26.6.0", + "jest": "^26.6.1", "monocdk": "^0.0.0" }, "repository": { diff --git a/packages/aws-cdk/README.md b/packages/aws-cdk/README.md index 4bb1c4eb6d3d6..61484f3705e26 100644 --- a/packages/aws-cdk/README.md +++ b/packages/aws-cdk/README.md @@ -140,6 +140,14 @@ currently deployed stack to the template and tags that are about to be deployed will skip deployment if they are identical. Use `--force` to override this behavior and always deploy the stack. +##### Deploying multiple stacks + +You can have multiple stacks in a cdk app. An example can be found in [how to create multiple stacks](https://docs.aws.amazon.com/cdk/latest/guide/stack_how_to_create_multiple_stacks.html). + +In order to deploy them, you can list the stacks you want to deploy. + +If you want to deploy all of them, you can use the flag `--all` or the wildcard `*` to deploy all stacks in an app. + ##### Parameters Pass parameters to your template during deployment by using `--parameters @@ -345,3 +353,10 @@ Some of the interesting keys that can be used in the JSON configuration files: "versionReporting": false, // Opt-out of version reporting (--no-version-reporting) } ``` + +#### Environment + +The following environment variables affect aws-cdk: + +- `CDK_DISABLE_VERSION_CHECK`: If set, disable automatic check for newer versions. +- `CDK_NEW_BOOTSTRAP`: use the modern bootstrapping stack. diff --git a/packages/aws-cdk/bin/cdk.ts b/packages/aws-cdk/bin/cdk.ts index fcae51e342956..035bfbac932af 100644 --- a/packages/aws-cdk/bin/cdk.ts +++ b/packages/aws-cdk/bin/cdk.ts @@ -51,9 +51,9 @@ async function parseCommandLineArguments() { .option('verbose', { type: 'boolean', alias: 'v', desc: 'Show debug logs (specify multiple times to increase verbosity)', default: false }) .count('verbose') .option('profile', { type: 'string', desc: 'Use the indicated AWS profile as the default environment', requiresArg: true }) - .option('proxy', { type: 'string', desc: 'Use the indicated proxy. Will read from HTTPS_PROXY environment variable if not specified.', requiresArg: true }) - .option('ca-bundle-path', { type: 'string', desc: 'Path to CA certificate to use when validating HTTPS requests. Will read from AWS_CA_BUNDLE environment variable if not specified.', requiresArg: true }) - .option('ec2creds', { type: 'boolean', alias: 'i', default: undefined, desc: 'Force trying to fetch EC2 instance credentials. Default: guess EC2 instance status.' }) + .option('proxy', { type: 'string', desc: 'Use the indicated proxy. Will read from HTTPS_PROXY environment variable if not specified', requiresArg: true }) + .option('ca-bundle-path', { type: 'string', desc: 'Path to CA certificate to use when validating HTTPS requests. Will read from AWS_CA_BUNDLE environment variable if not specified', requiresArg: true }) + .option('ec2creds', { type: 'boolean', alias: 'i', default: undefined, desc: 'Force trying to fetch EC2 instance credentials. Default: guess EC2 instance status' }) .option('version-reporting', { type: 'boolean', desc: 'Include the "AWS::CDK::Metadata" resource in synthesized templates (enabled by default)', default: undefined }) .option('path-metadata', { type: 'boolean', desc: 'Include "aws:cdk:path" CloudFormation metadata for each resource (enabled by default)', default: true }) .option('asset-metadata', { type: 'boolean', desc: 'Include "aws:asset:*" CloudFormation metadata for resources that user assets (enabled by default)', default: true }) @@ -79,11 +79,12 @@ async function parseCommandLineArguments() { .option('cloudformation-execution-policies', { type: 'array', desc: 'The Managed Policy ARNs that should be attached to the role performing deployments into this environment (may be repeated, modern bootstrapping only)', default: [], nargs: 1, requiresArg: true }) .option('force', { alias: 'f', type: 'boolean', desc: 'Always bootstrap even if it would downgrade template version', default: false }) .option('termination-protection', { type: 'boolean', default: undefined, desc: 'Toggle CloudFormation termination protection on the bootstrap stacks' }) - .option('show-template', { type: 'boolean', desc: 'Instead of actual bootstrapping, print the current CLI\'s bootstrapping template to stdout for customization.', default: false }) - .option('template', { type: 'string', requiresArg: true, desc: 'Use the template from the given file instead of the built-in one (use --show-template to obtain an example).' }), + .option('show-template', { type: 'boolean', desc: 'Instead of actual bootstrapping, print the current CLI\'s bootstrapping template to stdout for customization', default: false }) + .option('template', { type: 'string', requiresArg: true, desc: 'Use the template from the given file instead of the built-in one (use --show-template to obtain an example)' }), ) .command('deploy [STACKS..]', 'Deploys the stack(s) named STACKS into your AWS account', yargs => yargs - .option('build-exclude', { type: 'array', alias: 'E', nargs: 1, desc: 'Do not rebuild asset with the given ID. Can be specified multiple times.', default: [] }) + .option('all', { type: 'boolean', default: false, desc: 'Deploy all available stacks' }) + .option('build-exclude', { type: 'array', alias: 'E', nargs: 1, desc: 'Do not rebuild asset with the given ID. Can be specified multiple times', default: [] }) .option('exclusively', { type: 'boolean', alias: 'e', desc: 'Only deploy requested stacks, don\'t include dependencies' }) .option('require-approval', { type: 'string', choices: [RequireApproval.Never, RequireApproval.AnyChange, RequireApproval.Broadening], desc: 'What security-sensitive changes need manual approval' }) .option('ci', { type: 'boolean', desc: 'Force CI detection', default: process.env.CI !== undefined }) @@ -95,9 +96,10 @@ async function parseCommandLineArguments() { .option('parameters', { type: 'array', desc: 'Additional parameters passed to CloudFormation at deploy time (STACK:KEY=VALUE)', nargs: 1, requiresArg: true, default: {} }) .option('outputs-file', { type: 'string', alias: 'O', desc: 'Path to file where stack outputs will be written as JSON', requiresArg: true }) .option('previous-parameters', { type: 'boolean', default: true, desc: 'Use previous values for existing parameters (you must specify all parameters on every deployment if this is disabled)' }) - .option('progress', { type: 'string', choices: [StackActivityProgress.BAR, StackActivityProgress.EVENTS], desc: 'Display mode for stack activity events.' }), + .option('progress', { type: 'string', choices: [StackActivityProgress.BAR, StackActivityProgress.EVENTS], desc: 'Display mode for stack activity events' }), ) .command('destroy [STACKS..]', 'Destroy the stack(s) named STACKS', yargs => yargs + .option('all', { type: 'boolean', default: false, desc: 'Destroy all available stacks' }) .option('exclusively', { type: 'boolean', alias: 'e', desc: 'Only destroy requested stacks, don\'t include dependees' }) .option('force', { type: 'boolean', alias: 'f', desc: 'Do not ask for confirmation before destroying the stacks' })) .command('diff [STACKS..]', 'Compares the specified stack with the deployed stack or a local template file, and returns with status 1 if any difference is found', yargs => yargs @@ -210,9 +212,14 @@ async function initCommandLine() { const toolkitStackName: string = ToolkitInfo.determineName(configuration.settings.get(['toolkitStackName'])); debug(`Toolkit stack: ${colors.bold(toolkitStackName)}`); + if (args.all && args.STACKS) { + throw new Error('You must either specify a list of Stacks or the `--all` argument'); + } + args.STACKS = args.STACKS || []; args.ENVIRONMENTS = args.ENVIRONMENTS || []; + const stacks = (args.all) ? ['*'] : args.STACKS; const cli = new CdkToolkit({ cloudExecutable, cloudFormation, @@ -292,7 +299,7 @@ async function initCommandLine() { } } return cli.deploy({ - stackNames: args.STACKS, + stackNames: stacks, exclusively: args.exclusively, toolkitStackName, roleArn: args.roleArn, @@ -311,7 +318,7 @@ async function initCommandLine() { case 'destroy': return cli.destroy({ - stackNames: args.STACKS, + stackNames: stacks, exclusively: args.exclusively, force: args.force, roleArn: args.roleArn, diff --git a/packages/aws-cdk/lib/api/cxapp/cloud-assembly.ts b/packages/aws-cdk/lib/api/cxapp/cloud-assembly.ts index 2ce9fef9b29ce..fb96c549f7fc7 100644 --- a/packages/aws-cdk/lib/api/cxapp/cloud-assembly.ts +++ b/packages/aws-cdk/lib/api/cxapp/cloud-assembly.ts @@ -86,7 +86,7 @@ export class CloudAssembly { if (stacks.length === 1) { return new StackCollection(this, stacks); } else { - throw new Error('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported)\n' + + throw new Error('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\n' + `Stacks: ${stacks.map(x => x.id).join(' ')}`); } default: diff --git a/packages/aws-cdk/lib/version.ts b/packages/aws-cdk/lib/version.ts index fecbe1c0e1886..19bec86549c2e 100644 --- a/packages/aws-cdk/lib/version.ts +++ b/packages/aws-cdk/lib/version.ts @@ -98,7 +98,7 @@ export async function latestVersionIfHigher(currentVersion: string, cacheFile: V } export async function displayVersionMessage(): Promise { - if (!process.stdout.isTTY) { + if (!process.stdout.isTTY || process.env.CDK_DISABLE_VERSION_CHECK) { return; } diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 95ae09424001c..3f8f44962bf87 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -55,11 +55,11 @@ "@types/yargs": "^15.0.7", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "mockery": "^2.1.0", "pkglint": "0.0.0", "sinon": "^9.2.0", - "ts-jest": "^26.4.1", + "ts-jest": "^26.4.2", "ts-mock-imports": "^1.3.0", "@octokit/rest": "^18.0.6", "make-runnable": "^1.3.8" @@ -71,7 +71,7 @@ "@aws-cdk/region-info": "0.0.0", "@aws-cdk/yaml-cfn": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "camelcase": "^6.0.0", "cdk-assets": "0.0.0", "colors": "^1.4.0", diff --git a/packages/aws-cdk/test/api/cloud-assembly.test.ts b/packages/aws-cdk/test/api/cloud-assembly.test.ts index e0882882cc55e..6559718b9f51a 100644 --- a/packages/aws-cdk/test/api/cloud-assembly.test.ts +++ b/packages/aws-cdk/test/api/cloud-assembly.test.ts @@ -57,7 +57,7 @@ test('select behavior: single', async () => { // WHEN await expect(cxasm.selectStacks([], { defaultBehavior: DefaultSelection.OnlySingle })) - .rejects.toThrow('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported)'); + .rejects.toThrow('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`'); }); test('select behavior: repeat', async () => { diff --git a/packages/aws-cdk/test/cdk-toolkit.test.ts b/packages/aws-cdk/test/cdk-toolkit.test.ts index b2849c93da9ce..caf3e6cc83257 100644 --- a/packages/aws-cdk/test/cdk-toolkit.test.ts +++ b/packages/aws-cdk/test/cdk-toolkit.test.ts @@ -44,6 +44,22 @@ describe('deploy', () => { await toolkit.deploy({ stackNames: ['Test-Stack-A', 'Test-Stack-B'] }); }); + test('with one stack specified', async () => { + // GIVEN + const toolkit = defaultToolkitSetup(); + + // WHEN + await toolkit.deploy({ stackNames: ['Test-Stack-A'] }); + }); + + test('with stacks all stacks specified as wildcard', async () => { + // GIVEN + const toolkit = defaultToolkitSetup(); + + // WHEN + await toolkit.deploy({ stackNames: ['*'] }); + }); + test('with sns notification arns', async () => { // GIVEN const notificationArns = ['arn:aws:sns:::cfn-notifications', 'arn:aws:sns:::my-cool-topic']; diff --git a/packages/aws-cdk/test/version.test.ts b/packages/aws-cdk/test/version.test.ts index 005ccd209e609..49ddb4b12aa8d 100644 --- a/packages/aws-cdk/test/version.test.ts +++ b/packages/aws-cdk/test/version.test.ts @@ -3,7 +3,8 @@ import { setTimeout as _setTimeout } from 'timers'; import { promisify } from 'util'; import * as fs from 'fs-extra'; import * as sinon from 'sinon'; -import { latestVersionIfHigher, VersionCheckTTL } from '../lib/version'; +import * as logging from '../lib/logging'; +import { latestVersionIfHigher, VersionCheckTTL, displayVersionMessage } from '../lib/version'; const setTimeout = promisify(_setTimeout); @@ -72,3 +73,11 @@ test('No Version specified for storage in the TTL file', async () => { const storedVersion = fs.readFileSync(cacheFile, 'utf8'); expect(storedVersion).toBe(''); }); + +test('Skip version check if environment variable is set', async () => { + process.stdout.isTTY = true; + process.env.CDK_DISABLE_VERSION_CHECK = '1'; + const printStub = sinon.stub(logging, 'print'); + await displayVersionMessage(); + expect(printStub.called).toEqual(false); +}); diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 812ee2fab8b28..771acbc9c0d96 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -38,7 +38,7 @@ "@types/node": "^10.17.42", "@types/yargs": "^15.0.7", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "jszip": "^3.5.0", "mock-fs": "^4.13.0", "pkglint": "0.0.0" @@ -47,7 +47,7 @@ "@aws-cdk/cloud-assembly-schema": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "archiver": "^5.0.2", - "aws-sdk": "^2.776.0", + "aws-sdk": "^2.778.0", "glob": "^7.1.6", "yargs": "^16.1.0" }, diff --git a/packages/cdk-dasm/package.json b/packages/cdk-dasm/package.json index 931d14a29804b..0e101ed10fc98 100644 --- a/packages/cdk-dasm/package.json +++ b/packages/cdk-dasm/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@types/jest": "^26.0.15", "@types/yaml": "1.9.7", - "jest": "^26.6.0" + "jest": "^26.6.1" }, "keywords": [ "aws", diff --git a/packages/decdk/package.json b/packages/decdk/package.json index 5b27e9a29134b..492a97418fd24 100644 --- a/packages/decdk/package.json +++ b/packages/decdk/package.json @@ -199,7 +199,7 @@ "@types/jest": "^26.0.15", "@types/yaml": "1.9.7", "@types/yargs": "^15.0.7", - "jest": "^26.6.0", + "jest": "^26.6.1", "jsii": "^1.13.0" }, "keywords": [ diff --git a/scripts/foreach.sh b/scripts/foreach.sh index 19f8ccd8e6a02..8e20b83b49a09 100755 --- a/scripts/foreach.sh +++ b/scripts/foreach.sh @@ -56,7 +56,7 @@ command_arg="" for arg in "$@" do - case "$arg" in + case "$arg" in -r | --reset) RESET=1 ;; -s | --skip) SKIP=1 ;; -u | --up) DIRECTION="UP" ;; @@ -66,7 +66,7 @@ do shift done -if [[ "$RESET" -eq 1 ]]; then +if [[ "$RESET" -eq 1 ]]; then reset fi diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 0e9ce15abf100..f99ed0eec2bda 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -39,7 +39,7 @@ "pkglint": "0.0.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^4.3.0", + "@typescript-eslint/eslint-plugin": "^4.5.0", "@typescript-eslint/parser": "^4.3.0", "eslint-plugin-cdk": "0.0.0", "awslint": "0.0.0", @@ -49,12 +49,12 @@ "eslint-import-resolver-typescript": "^2.3.0", "eslint-plugin-import": "^2.22.1", "fs-extra": "^9.0.1", - "jest": "^26.6.0", + "jest": "^26.6.1", "jsii": "^1.13.0", "jsii-pacmak": "^1.13.0", "nodeunit": "^0.11.3", "nyc": "^15.1.0", - "ts-jest": "^26.4.1", + "ts-jest": "^26.4.2", "typescript": "~3.9.7", "yargs": "^16.1.0", "yarn-cling": "0.0.0" diff --git a/tools/cfn2ts/package.json b/tools/cfn2ts/package.json index d18a7449fc107..30ed578d2df47 100644 --- a/tools/cfn2ts/package.json +++ b/tools/cfn2ts/package.json @@ -40,7 +40,7 @@ "@types/jest": "^26.0.15", "@types/yargs": "^15.0.7", "cdk-build-tools": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0" }, "keywords": [ diff --git a/tools/eslint-plugin-cdk/package.json b/tools/eslint-plugin-cdk/package.json index b5fc8f9fcd826..d3fb364bdde40 100644 --- a/tools/eslint-plugin-cdk/package.json +++ b/tools/eslint-plugin-cdk/package.json @@ -17,7 +17,7 @@ "@types/jest": "^26.0.15", "@types/node": "^10.17.42", "eslint-plugin-rulesdir": "^0.1.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "typescript": "~3.9.7" }, "dependencies": { diff --git a/tools/nodeunit-shim/package.json b/tools/nodeunit-shim/package.json index d273b04a765bc..68a6de1d0b276 100644 --- a/tools/nodeunit-shim/package.json +++ b/tools/nodeunit-shim/package.json @@ -17,7 +17,7 @@ "typescript": "~3.9.7" }, "dependencies": { - "jest": "^26.6.0" + "jest": "^26.6.1" }, "keywords": [], "author": "", diff --git a/tools/pkglint/package.json b/tools/pkglint/package.json index 5f3b0cb82b8b9..02857cf3a1f5a 100644 --- a/tools/pkglint/package.json +++ b/tools/pkglint/package.json @@ -39,7 +39,7 @@ "@types/semver": "^7.3.4", "@types/yargs": "^15.0.7", "eslint-plugin-cdk": "0.0.0", - "jest": "^26.6.0", + "jest": "^26.6.1", "typescript": "~3.9.7" }, "dependencies": { diff --git a/tools/yarn-cling/package.json b/tools/yarn-cling/package.json index 0d38b028055b3..0a03fa83c3404 100644 --- a/tools/yarn-cling/package.json +++ b/tools/yarn-cling/package.json @@ -41,7 +41,7 @@ "@types/jest": "^26.0.15", "@types/node": "^10.17.42", "@types/yarnpkg__lockfile": "^1.1.4", - "jest": "^26.6.0", + "jest": "^26.6.1", "pkglint": "0.0.0", "typescript": "~3.9.7" }, diff --git a/yarn.lock b/yarn.lock index 73ad3a59a7542..20ebaa2e32eec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1084,93 +1084,98 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.0.tgz#fd4a4733df3c50260aefb227414296aee96e682f" - integrity sha512-ArGcZWAEYMWmWnc/QvxLDvFmGRPvmHeulhS7FUUAlUGR5vS/SqMfArsGaYmIFEThSotCMnEihwx1h62I1eg5lg== +"@jest/console@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.1.tgz#6a19eaac4aa8687b4db9130495817c65aec3d34e" + integrity sha512-cjqcXepwC5M+VeIhwT6Xpi/tT4AiNzlIx8SMJ9IihduHnsSrnWNvTBfKIpmqOOCNOPqtbBx6w2JqfoLOJguo8g== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.6.0" - jest-util "^26.6.0" + jest-message-util "^26.6.1" + jest-util "^26.6.1" slash "^3.0.0" -"@jest/core@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.0.tgz#04dd3e046e9ebbe06a4f330e05a67f21f7bb314a" - integrity sha512-7wbunxosnC5zXjxrEtTQSblFjRVOT8qz1eSytw8riEeWgegy3ct91NLPEP440CDuWrmW3cOLcEGxIf9q2u6O9Q== +"@jest/core@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.1.tgz#77426822f667a2cda82bf917cee11cc8ba71f9ac" + integrity sha512-p4F0pgK3rKnoS9olXXXOkbus1Bsu6fd8pcvLMPsUy4CVXZ8WSeiwQ1lK5hwkCIqJ+amZOYPd778sbPha/S8Srw== dependencies: - "@jest/console" "^26.6.0" - "@jest/reporters" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/reporters" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.6.0" - jest-config "^26.6.0" - jest-haste-map "^26.6.0" - jest-message-util "^26.6.0" + jest-changed-files "^26.6.1" + jest-config "^26.6.1" + jest-haste-map "^26.6.1" + jest-message-util "^26.6.1" jest-regex-util "^26.0.0" - jest-resolve "^26.6.0" - jest-resolve-dependencies "^26.6.0" - jest-runner "^26.6.0" - jest-runtime "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" - jest-watcher "^26.6.0" + jest-resolve "^26.6.1" + jest-resolve-dependencies "^26.6.1" + jest-runner "^26.6.1" + jest-runtime "^26.6.1" + jest-snapshot "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" + jest-watcher "^26.6.1" micromatch "^4.0.2" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.0.tgz#695ee24cbf110456272caa9debbbf7e01afb2f78" - integrity sha512-l+5MSdiC4rUUrz8xPdj0TwHBwuoqMcAbFnsYDTn5FkenJl8b+lvC5NdJl1tVICGHWnx0fnjdd1luRZ7u3U4xyg== +"@jest/create-cache-key-function@^26.5.0": + version "26.5.0" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-26.5.0.tgz#1d07947adc51ea17766d9f0ccf5a8d6ea94c47dc" + integrity sha512-DJ+pEBUIqarrbv1W/C39f9YH0rJ4wsXZ/VC6JafJPlHW2HOucKceeaqTOQj9MEDQZjySxMLkOq5mfXZXNZcmWw== + +"@jest/environment@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.1.tgz#38a56f1cc66f96bf53befcc5ebeaf1c2dce90e9a" + integrity sha512-GNvHwkOFJtNgSwdzH9flUPzF9AYAZhUg124CBoQcwcZCM9s5TLz8Y3fMtiaWt4ffbigoetjGk5PU2Dd8nLrSEw== dependencies: - "@jest/fake-timers" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/fake-timers" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" - jest-mock "^26.6.0" + jest-mock "^26.6.1" -"@jest/fake-timers@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.0.tgz#5b4cc83fab91029963c53e6e2716f02544323b22" - integrity sha512-7VQpjChrwlwvGNysS10lDBLOVLxMvMtpx0Xo6aIotzNVyojYk0NN0CR8R4T6h/eu7Zva/LB3P71jqwGdtADoag== +"@jest/fake-timers@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.1.tgz#5aafba1822075b7142e702b906094bea15f51acf" + integrity sha512-T/SkMLgOquenw/nIisBRD6XAYpFir0kNuclYLkse5BpzeDUukyBr+K31xgAo9M0hgjU9ORlekAYPSzc0DKfmKg== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@sinonjs/fake-timers" "^6.0.1" "@types/node" "*" - jest-message-util "^26.6.0" - jest-mock "^26.6.0" - jest-util "^26.6.0" + jest-message-util "^26.6.1" + jest-mock "^26.6.1" + jest-util "^26.6.1" -"@jest/globals@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.0.tgz#da2f58d17105b6a7531ee3c8724acb5f233400e2" - integrity sha512-rs3a/a8Lq8FgTx11SxbqIU2bDjsFU2PApl2oK2oUVlo84RSF76afFm2nLojW93AGssr715GHUwhq5b6mpCI5BQ== +"@jest/globals@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.1.tgz#b232c7611d8a2de62b4bf9eb9a007138322916f4" + integrity sha512-acxXsSguuLV/CeMYmBseefw6apO7NuXqpE+v5r3yD9ye2PY7h1nS20vY7Obk2w6S7eJO4OIAJeDnoGcLC/McEQ== dependencies: - "@jest/environment" "^26.6.0" - "@jest/types" "^26.6.0" - expect "^26.6.0" + "@jest/environment" "^26.6.1" + "@jest/types" "^26.6.1" + expect "^26.6.1" -"@jest/reporters@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.0.tgz#2a8d631ad3b19a722fd0fae58ce9fa25e8aac1cf" - integrity sha512-PXbvHhdci5Rj1VFloolgLb+0kkdtzswhG8MzVENKJRI3O1ndwr52G6E/2QupjwrRcYnApZOelFf4nNpf5+SDxA== +"@jest/reporters@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.1.tgz#582ede05278cf5eeffe58bc519f4a35f54fbcb0d" + integrity sha512-J6OlXVFY3q1SXWJhjme5i7qT/BAZSikdOK2t8Ht5OS32BDo6KfG5CzIzzIFnAVd82/WWbc9Hb7SJ/jwSvVH9YA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1181,10 +1186,10 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.6.0" - jest-resolve "^26.6.0" - jest-util "^26.6.0" - jest-worker "^26.5.0" + jest-haste-map "^26.6.1" + jest-resolve "^26.6.1" + jest-util "^26.6.1" + jest-worker "^26.6.1" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" @@ -1202,52 +1207,52 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.0.tgz#79705c8a57165777af5ef1d45c65dcc4a5965c11" - integrity sha512-LV6X1ry+sKjseQsIFz3e6XAZYxwidvmeJFnVF08fq98q08dF1mJYI0lDq/LmH/jas+R4s0pwnNGiz1hfC4ZUBw== +"@jest/test-result@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.1.tgz#d75698d8a06aa663e8936663778c831512330cc1" + integrity sha512-wqAgIerIN2gSdT2A8WeA5+AFh9XQBqYGf8etK143yng3qYd0mF0ie2W5PVmgnjw4VDU6ammI9NdXrKgNhreawg== dependencies: - "@jest/console" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/types" "^26.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.0.tgz#a9dbc6545b1c59e7f375b05466e172126609906d" - integrity sha512-rWPTMa+8rejvePZnJmnKkmKWh0qILFDPpN0qbSif+KNGvFxqqDGafMo4P2Y8+I9XWrZQBeXL9IxPL4ZzDgRlbw== +"@jest/test-sequencer@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.1.tgz#34216ac2c194b0eeebde30d25424d1134703fd2e" + integrity sha512-0csqA/XApZiNeTIPYh6koIDCACSoR6hi29T61tKJMtCZdEC+tF3PoNt7MS0oK/zKC6daBgCbqXxia5ztr/NyCQ== dependencies: - "@jest/test-result" "^26.6.0" + "@jest/test-result" "^26.6.1" graceful-fs "^4.2.4" - jest-haste-map "^26.6.0" - jest-runner "^26.6.0" - jest-runtime "^26.6.0" + jest-haste-map "^26.6.1" + jest-runner "^26.6.1" + jest-runtime "^26.6.1" -"@jest/transform@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.0.tgz#1a6b95d0c7f9b4f96dd3aab9d28422a9e5e4043e" - integrity sha512-NUNA1NMCyVV9g5NIQF1jzW7QutQhB/HAocteCiUyH0VhmLXnGMTfPYQu1G6IjPk+k1SWdh2PD+Zs1vMqbavWzg== +"@jest/transform@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.1.tgz#f70786f96e0f765947b4fb4f54ffcfb7bd783711" + integrity sha512-oNFAqVtqRxZRx6vXL3I4bPKUK0BIlEeaalkwxyQGGI8oXDQBtYQBpiMe5F7qPs4QdvvFYB42gPGIMMcxXaBBxQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.6.0" + jest-haste-map "^26.6.1" jest-regex-util "^26.0.0" - jest-util "^26.6.0" + jest-util "^26.6.1" micromatch "^4.0.2" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71" - integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ== +"@jest/types@^26.6.0": + version "26.6.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.0.tgz#2c045f231bfd79d52514cda3fbc93ef46157fa6a" + integrity sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -1255,10 +1260,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.0.tgz#2c045f231bfd79d52514cda3fbc93ef46157fa6a" - integrity sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg== +"@jest/types@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.1.tgz#2638890e8031c0bc8b4681e0357ed986e2f866c5" + integrity sha512-ywHavIKNpAVrStiRY5wiyehvcktpijpItvGiK72RAn5ctqmzvPk8OvKnvHeBqa1XdQr959CTWAJMqxI8BTibyg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -2147,128 +2152,128 @@ dependencies: "@types/node" ">= 8" -"@parcel/babel-ast-utils@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2053.tgz#c2c2dba5a043e402e04ee5f7caed79fe21132969" - integrity sha512-fcbXhdlcABXJfN/cN0D3hpmf+EcpWehf21ACFMCvOyyfsiMpkWHCQv/xtIB8F0qS5OZGN3EABNNcdJG9sjh96w== +"@parcel/babel-ast-utils@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/babel-ast-utils/-/babel-ast-utils-2.0.0-nightly.2056.tgz#c05216883ee9a53477f3890e978ff39bb4687d19" + integrity sha512-eH5rskkMGdoVHCw5t7tuJdfDChl3mXFwl6MFA83SfGEsfOAdrLreQDGN+Z5jV6chZ+cq6gtGje2ckOSs6zzSfg== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/babel-preset-env@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.431.tgz#23bef18a558b5d98db63ce675c6d7edc6292d469" - integrity sha512-H2ezlzTrunFhVJ3rk1Uf4krrruA7shRLoWEjroNWRp+jpLSdbYKUks2QqwidmR274OxIMtZKu2+bw1ZnA8Wsrw== +"@parcel/babel-preset-env@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/babel-preset-env/-/babel-preset-env-2.0.0-nightly.434.tgz#400a4cbf7c36bf5a25a446b79ff833e50292949d" + integrity sha512-C9dsU6WHw4+k3MxHyf55HTlIJ6jBeOsVJAvTZfGPC2wmMNmbWBjpzzwN08FXUbH46I1myl8EJeUcePyi+J6aMw== dependencies: "@babel/preset-env" "^7.4.0" semver "^5.4.1" -"@parcel/babylon-walk@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2053.tgz#6f26b502af1ee45a64029037100538c9cf96b5e9" - integrity sha512-YFTNMGwbQl2DEwqrPCPejPPdhq6HOBj38Eui9N3HeSg1Az5nYsXp6h+w2s7jPXv6Zj4yY97qGtGWRVe60hflLg== +"@parcel/babylon-walk@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/babylon-walk/-/babylon-walk-2.0.0-nightly.2056.tgz#e7ed28ca5eac5f49c6ddc5813305b75a22b2497d" + integrity sha512-zoEnlXO6xNgsg96ItuSVqqwtaqrcDBmMNP9NTHdwX0iHWO2fWE3v16CJAXoI8E8py9nnbtvbCczfKpEW9c2YQg== dependencies: "@babel/types" "^7.0.0" lodash.clone "^4.5.0" -"@parcel/bundler-default@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.431.tgz#a01c36ce3cbde26d35b207b0e2b8e9e09627fc82" - integrity sha512-5v57j+S5d0/I76aKX1MSnieuvYi3sz+g0XEhIaQHHHLW4zvAJKw8KfjyrHHpQWasO9CqL5Z73T+z4jLRK5jYHg== +"@parcel/bundler-default@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.0.0-nightly.434.tgz#94e2d8d04509926cce04263bb2b1b7a73869a88f" + integrity sha512-cwSGZJreoJXInzRM3tzvEDMZh9tv2Hrze1N5QscTRuRQFOTY31S/l8OROXI6yfqjHfbZo33Uvglif3hiJsikjg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" -"@parcel/cache@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.431.tgz#14a9bfb404b8a01f194c511e8af130a6bbd12ec8" - integrity sha512-GG1KYjeLoCL3jcDagr8Z3f5za2ScxXoGJNM4sW8z9hVX5BKYYjG/Pd11EitziQTz8yyEN3Z63Xv1anO4zRCZqw== +"@parcel/cache@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.0.0-nightly.434.tgz#34171b2bfe8047e8bd9890f4a43c28ec5085547f" + integrity sha512-Dr5P/gOKDvmYZEPrYuWmJHyJ3F2RBSlNGsI1UYFWH8ViCj/yuKKzEiRqBmwjoI7Nx5IRAURrWM7ki77t4VF1Lg== dependencies: - "@parcel/logger" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/logger" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/codeframe@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.431.tgz#1c930a957313132f0cca9240754648f9d0f389c2" - integrity sha512-vn50vb/LdujpNEpEdCnsgAMVuo/7SpChfjxhiqlTxkSWZTJTNZwVUDRxfes2m7s11S12aNDHMZbX8WoIXNe8Pw== +"@parcel/codeframe@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.0.0-nightly.434.tgz#a8d9794dec02f26550dbdcadff54872c3e560c7c" + integrity sha512-WClnfIwSbfw0l+ANBeqiPpd2oObFefX8wgb5JlTPrMgiymDgCy+g3k5YiCuNPZ6WY0GD5whFEV4PkddUHC1P5A== dependencies: chalk "^2.4.2" emphasize "^2.1.0" slice-ansi "^4.0.0" string-width "^4.2.0" -"@parcel/config-default@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.431.tgz#ed6caf7ebbe1e20723363bc47b2608d2918dd662" - integrity sha512-4Nj83SQP+jgKebo3OwCEJU+qwZf0h4oS8ithGVJgVnNZ9SnIo269V04jRZ7su2eZGSM8CiQBlJl+TX7Z9tyqnQ== - dependencies: - "@parcel/bundler-default" "2.0.0-nightly.431+296bc57f" - "@parcel/namer-default" "2.0.0-nightly.431+296bc57f" - "@parcel/optimizer-cssnano" "2.0.0-nightly.431+296bc57f" - "@parcel/optimizer-data-url" "2.0.0-nightly.431+296bc57f" - "@parcel/optimizer-htmlnano" "2.0.0-nightly.431+296bc57f" - "@parcel/optimizer-terser" "2.0.0-nightly.431+296bc57f" - "@parcel/packager-css" "2.0.0-nightly.431+296bc57f" - "@parcel/packager-html" "2.0.0-nightly.431+296bc57f" - "@parcel/packager-js" "2.0.0-nightly.431+296bc57f" - "@parcel/packager-raw" "2.0.0-nightly.431+296bc57f" - "@parcel/packager-raw-url" "2.0.0-nightly.2053+296bc57f" - "@parcel/packager-ts" "2.0.0-nightly.431+296bc57f" - "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2053+296bc57f" - "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2053+296bc57f" - "@parcel/reporter-cli" "2.0.0-nightly.431+296bc57f" - "@parcel/reporter-dev-server" "2.0.0-nightly.431+296bc57f" - "@parcel/resolver-default" "2.0.0-nightly.431+296bc57f" - "@parcel/runtime-browser-hmr" "2.0.0-nightly.431+296bc57f" - "@parcel/runtime-js" "2.0.0-nightly.431+296bc57f" - "@parcel/runtime-react-refresh" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-babel" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-coffeescript" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-css" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-glsl" "2.0.0-nightly.2053+296bc57f" - "@parcel/transformer-graphql" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-html" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-image" "2.0.0-nightly.2053+296bc57f" - "@parcel/transformer-inline-string" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-js" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-json" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-jsonld" "2.0.0-nightly.2053+296bc57f" - "@parcel/transformer-less" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-mdx" "2.0.0-nightly.2053+296bc57f" - "@parcel/transformer-postcss" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-posthtml" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-pug" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-raw" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-sass" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-stylus" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-sugarss" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-toml" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-typescript-types" "2.0.0-nightly.431+296bc57f" - "@parcel/transformer-vue" "2.0.0-nightly.2053+296bc57f" - "@parcel/transformer-yaml" "2.0.0-nightly.431+296bc57f" - -"@parcel/core@2.0.0-nightly.429+296bc57f": - version "2.0.0-nightly.429" - resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.429.tgz#edde8f84a5d03b3b6d042819f2f8321ef64b2572" - integrity sha512-0czo4MYbZElj1hxgGQ+923R2vZN/mDGb4mrkkZIg0WSavKf0ypxD8Tznipb7TYgQu8Ax1jMb5Jh4Rsgi+NnbZA== - dependencies: - "@parcel/cache" "2.0.0-nightly.431+296bc57f" - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/events" "2.0.0-nightly.431+296bc57f" - "@parcel/fs" "2.0.0-nightly.431+296bc57f" - "@parcel/logger" "2.0.0-nightly.431+296bc57f" - "@parcel/package-manager" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" +"@parcel/config-default@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.0.0-nightly.434.tgz#6b830e65252caa1c5bb7aedb248ff61fa90c326a" + integrity sha512-aGYSfV+MM8qC+mrNGSh0+ZXBa0IGCyyiM9kReD/L7KgwTWgO59RXqg7B37j5uV5e8p5l9nc+CC/fjX1zRDu8Ig== + dependencies: + "@parcel/bundler-default" "2.0.0-nightly.434+146cffb6" + "@parcel/namer-default" "2.0.0-nightly.434+146cffb6" + "@parcel/optimizer-cssnano" "2.0.0-nightly.434+146cffb6" + "@parcel/optimizer-data-url" "2.0.0-nightly.434+146cffb6" + "@parcel/optimizer-htmlnano" "2.0.0-nightly.434+146cffb6" + "@parcel/optimizer-terser" "2.0.0-nightly.434+146cffb6" + "@parcel/packager-css" "2.0.0-nightly.434+146cffb6" + "@parcel/packager-html" "2.0.0-nightly.434+146cffb6" + "@parcel/packager-js" "2.0.0-nightly.434+146cffb6" + "@parcel/packager-raw" "2.0.0-nightly.434+146cffb6" + "@parcel/packager-raw-url" "2.0.0-nightly.2056+146cffb6" + "@parcel/packager-ts" "2.0.0-nightly.434+146cffb6" + "@parcel/reporter-bundle-analyzer" "2.0.0-nightly.2056+146cffb6" + "@parcel/reporter-bundle-buddy" "2.0.0-nightly.2056+146cffb6" + "@parcel/reporter-cli" "2.0.0-nightly.434+146cffb6" + "@parcel/reporter-dev-server" "2.0.0-nightly.434+146cffb6" + "@parcel/resolver-default" "2.0.0-nightly.434+146cffb6" + "@parcel/runtime-browser-hmr" "2.0.0-nightly.434+146cffb6" + "@parcel/runtime-js" "2.0.0-nightly.434+146cffb6" + "@parcel/runtime-react-refresh" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-babel" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-coffeescript" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-css" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-glsl" "2.0.0-nightly.2056+146cffb6" + "@parcel/transformer-graphql" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-html" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-image" "2.0.0-nightly.2056+146cffb6" + "@parcel/transformer-inline-string" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-js" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-json" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-jsonld" "2.0.0-nightly.2056+146cffb6" + "@parcel/transformer-less" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-mdx" "2.0.0-nightly.2056+146cffb6" + "@parcel/transformer-postcss" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-posthtml" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-pug" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-raw" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-react-refresh-babel" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-react-refresh-wrap" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-sass" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-stylus" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-sugarss" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-toml" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-typescript-types" "2.0.0-nightly.434+146cffb6" + "@parcel/transformer-vue" "2.0.0-nightly.2056+146cffb6" + "@parcel/transformer-yaml" "2.0.0-nightly.434+146cffb6" + +"@parcel/core@2.0.0-nightly.432+146cffb6": + version "2.0.0-nightly.432" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.0.0-nightly.432.tgz#fd230c0349532530f18b0b865c3803557a327dec" + integrity sha512-pM7PKWmyzf6l+zXI1mUbpDx1KfSLcEMl6jyOuZL7gHSBKFiKCT+DzW8hkmR+Hr2g/sCzlGFey0pN49yYPOGKqQ== + dependencies: + "@parcel/cache" "2.0.0-nightly.434+146cffb6" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/events" "2.0.0-nightly.434+146cffb6" + "@parcel/fs" "2.0.0-nightly.434+146cffb6" + "@parcel/logger" "2.0.0-nightly.434+146cffb6" + "@parcel/package-manager" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/types" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" - "@parcel/workers" "2.0.0-nightly.431+296bc57f" + "@parcel/types" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" + "@parcel/workers" "2.0.0-nightly.434+146cffb6" abortcontroller-polyfill "^1.1.9" base-x "^3.0.8" browserslist "^4.6.6" @@ -2282,72 +2287,72 @@ querystring "^0.2.0" semver "^5.4.1" -"@parcel/diagnostic@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.431.tgz#c60f761cb13e21025e603342cc1cc41774d19cad" - integrity sha512-5PuQPD4p/q013LI+koGor3j7Shj2hjyJXaY3dVlVym/IBXzqEuIWKB9Ul7qBzC0cHxhKJmqwiwYaLF8mgCsaog== +"@parcel/diagnostic@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.0.0-nightly.434.tgz#40a08090cd88d498fae13d7d8c53ce0518a6d824" + integrity sha512-4a54sXQUs9LjreNSH5piZgHbXQDhOv7hb6s1PSD0BEf3h7uxIJttu2R13WcY2OxfTEdGwabbB5HzuSObJpsvaw== dependencies: json-source-map "^0.6.1" nullthrows "^1.1.1" -"@parcel/events@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.431.tgz#ae13bd6c93ea022379dc658290011024fa4593c1" - integrity sha512-O21hZLrLYlRh7klAHQgMtPMO67fxBX3mg9YpvxMG+iQMvfSRgN2w7SDqTceIt2uNy6l4+DLQw02Mg9bjX85bsw== +"@parcel/events@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.0.0-nightly.434.tgz#944e69e93292a3cbc84d4991b20bcd13207cb682" + integrity sha512-zI8rtX8x8Z5BrqHH1MhNJVWIfmJA/ihrLEWC4xjqm0R6+hnx51wvpFG1Nt059cSq7M9TTrrWB63xT8YWnPR91w== -"@parcel/fs-write-stream-atomic@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2053.tgz#b4d43d3ea1ea260be9add6128aa1ecc57200f1f5" - integrity sha512-11PeH3/Fo9RGKGTTuLRrqrb97VqDF1noHFzQP1L6+a59Pn4K/rZ/L+sY+rVNWj9CDPcQEewQrL3jUzkdolwQsg== +"@parcel/fs-write-stream-atomic@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/fs-write-stream-atomic/-/fs-write-stream-atomic-2.0.0-nightly.2056.tgz#a25e56fae139d8a3f69d7cbcf039029b9b8c81be" + integrity sha512-pVVxzPdUvF+ZK/FPld+TYzME+5O6kmcaY4QTyhBoSpiikYcKrvg87pAH4L/Y9JGMokYpS8QizYGwSRf3gqN8AA== dependencies: graceful-fs "^4.1.2" iferr "^1.0.2" imurmurhash "^0.1.4" readable-stream "1 || 2" -"@parcel/fs@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.431.tgz#68719ca0c1f5e77ac03e7e4f5a471d8609e1feea" - integrity sha512-cKMEMV8/8/5pJ4W88NBLc5x9IXuMB1tK7SoTMTlf/MaPS9mz7Tlm8lIPBb3x86DMGYuRilANyw7fw/RJNPkKRQ== +"@parcel/fs@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.0.0-nightly.434.tgz#966ea521886ef556fb85368e4e0f789ac0287f10" + integrity sha512-S/ChW/OOLk93TPH3axORIXJYb4o1p/OOg/juRD+fluu/a46S0rHXAvfX4U/SIw07xEO5nIZbGFiijdtcmgVP7Q== dependencies: - "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2053+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/fs-write-stream-atomic" "2.0.0-nightly.2056+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" "@parcel/watcher" "2.0.0-alpha.8" - "@parcel/workers" "2.0.0-nightly.431+296bc57f" + "@parcel/workers" "2.0.0-nightly.434+146cffb6" graceful-fs "^4.2.4" mkdirp "^0.5.1" ncp "^2.0.0" nullthrows "^1.1.1" rimraf "^2.6.2" -"@parcel/logger@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.431.tgz#a05686c88318342cce23a6b5d38087eb7c36c6c5" - integrity sha512-43nUsGg9VxP1p0ffF9L02EEpXsx0i4tIbNKbi1auFW2IPQ+fSBmv/pU5h4vF4tiLN4tXS/Re20SaGwa/13NLRw== +"@parcel/logger@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.0.0-nightly.434.tgz#06a84f8c6ae8ab16c00eaf62df253dcb4ed9d19c" + integrity sha512-JQqvlYVT6AHnWowpAB0iRRdcQKqfCkgtE2D6IAgC0DyRX5fkn5IfkcUgapdOPf1eEmE24g0y4Iao6Scyz1nEkw== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/events" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/events" "2.0.0-nightly.434+146cffb6" -"@parcel/markdown-ansi@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.431.tgz#abee3634b20dec073451b94a156e25935dc5d842" - integrity sha512-EJWgpLuTIJt5PXZTeDEhF/iuyN04ySzFvFe6gpZJwJ0VJPSs+nslE5pcc+AQIhpGQUWcVv5F6ZF4GmymziWn2w== +"@parcel/markdown-ansi@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.0.0-nightly.434.tgz#3f731c66b65178e9b945afa30847c81da91734e7" + integrity sha512-Ab+4CDD/a15vrogld1Q6xD8c5aFLIrwhXriPjSfcLqs9xopNKXWuQ9C/wJki41/tdTohqILYqXfIR/ZOYNZdeA== dependencies: chalk "^2.4.2" -"@parcel/namer-default@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.431.tgz#ec7a5c9c7e9d36bbe03ed6f84fc7caffeb528acd" - integrity sha512-DnDQCdvha8bL8LmqKvnEc5uw+/OQLRTsbrHUhle9vtj/US6gQj6fR7DgIZDeFyoxLgg9RWc+aSiF8zqwAGywzg== +"@parcel/namer-default@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.0.0-nightly.434.tgz#adba98ed883ba9b7111c9dc756b41e062725daa9" + integrity sha512-TqDlaWHH/eg4158qlXm+MC0OxrFTN5x83L9PWRiCRHRi5Wk0Ax2GKYu0q4RtOOGoSIS0X145CRpzmQVLP2HkAw== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" -"@parcel/node-libs-browser@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2053.tgz#ebdc57748917b1b679b420e8df25f207cda14d72" - integrity sha512-p98O5y4p5a2xA5oB4rUwzXCf4S82JmKsOmdKtTd/DZmJlIvBZb3zFuacs2XJMK67S4OssBHUNMxv74NnPSMWAw== +"@parcel/node-libs-browser@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/node-libs-browser/-/node-libs-browser-2.0.0-nightly.2056.tgz#f9fa82ba72e04b97c30f3d5c41da0e600859e449" + integrity sha512-7GCMoMPEqh5lWRAdibuvT6UfPZbIhWutI/3mHLpMJQjggpkZAe9nx/pXqEwe+MKQH6aj7bXUsSuf/i57O9qONQ== dependencies: assert "^2.0.0" browserify-zlib "^0.2.0" @@ -2372,71 +2377,71 @@ util "^0.12.3" vm-browserify "^1.1.2" -"@parcel/node-resolver-core@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2053.tgz#010c703d7d38ddda06c5143e97c5168a48862573" - integrity sha512-W2Jm6ce2Bfz824fLnd2pQU9cw1lTwxsCF03YiC6U95U0ZyFLDsnA3x6BeIb8CFmlhUEz3lFp2ZgLQHTGAu4mHQ== +"@parcel/node-resolver-core@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.0.0-nightly.2056.tgz#9f2604b7d082ef644308fff0035e590d965125d5" + integrity sha512-RKl0offRQPO345exJ6kfK4k+cFMQqHKdj5JCGpKtxkpe/T5pL2/wryhXNkpYfqboFd6oH5i+cHxWRisOxQzcnQ== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/node-libs-browser" "2.0.0-nightly.2053+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/node-libs-browser" "2.0.0-nightly.2056+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" micromatch "^3.0.4" nullthrows "^1.1.1" querystring "^0.2.0" -"@parcel/optimizer-cssnano@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.431.tgz#816b512eef568c86529f8e067a95ba1c7b0e5b17" - integrity sha512-TPPWr9Ml4b70jApnF414DyeHWPr9NeDaa4nCiSmy5Du79RAfpxtfEan6MAtUBxMEiqLwRAyUxbj/mF2ZjdYidw== +"@parcel/optimizer-cssnano@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.0.0-nightly.434.tgz#3c5822c1c2f4a91150edf9658dd90beb8b393437" + integrity sha512-CDkGSTpu8vNZt7s15jmSusXFu97/e43eaFPdLWWirTjCeOWetzVUxhnE34spE/0lLWsetUNogQ4Jx9w09wy+bg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" cssnano "^4.1.10" postcss "^8.0.5" -"@parcel/optimizer-data-url@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.431.tgz#95e092dc5cf801be3bf86b324c6847f31e7d3e98" - integrity sha512-1Mv0+XnvW5wi6NgBlqiCq/8XbNw6rQhOaM/u3crk+rQ98ua+zL8tT4s3XttOCSD9OwV9E9RyufV8xj/glV8hIQ== +"@parcel/optimizer-data-url@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-data-url/-/optimizer-data-url-2.0.0-nightly.434.tgz#d6c68ec93414bf9e794e09374b66722f94cef39d" + integrity sha512-A5bOEW8VdVO5PU53tWyKQkIEjplO9SIia0bWAnsEilZahzYO2jG29WdNDta7VNc8XM4/Ovy0Z/sxUxT9lZNMFA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" isbinaryfile "^4.0.2" mime "^2.4.4" -"@parcel/optimizer-htmlnano@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.431.tgz#35777a573e34b8af78af5a9ff03f030952d28188" - integrity sha512-mZvgQEEH1u71mxqd+28BLx+ZGYYq44o3RlSquxlx9VtIS6qiUi/Be4+qxevtnAR9J2MWf5D3tgGqoGJXeZTMCg== +"@parcel/optimizer-htmlnano@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.0.0-nightly.434.tgz#eca364a376dc164df970f73e2ae7889a0585b930" + integrity sha512-JcwRgceO1QVzekre4M/nE2SYmsrjkP7k7tC8aZY26phry/CcdaNXpSyfoMkJ2xag/1U8ZP8DGotln+iJrO8AHw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" htmlnano "^0.2.2" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/optimizer-terser@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.431.tgz#04446897700e9ae35fb99249e92be88bc3e899cb" - integrity sha512-OEofMoNpS+pj7N9Y+l0Qdg8bPFrXDT/710T4mZd2ZpP8W3bOfZ9EtN7Pb7sDRBOvxnxDcxAKfvyOXhxudurxAQ== +"@parcel/optimizer-terser@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.0.0-nightly.434.tgz#f277e6a6fdc56d8e7d00d2694b29aa614c605615" + integrity sha512-IFg+6pOwNmMKcuZd8AVG0xdZsg0ndERUFimD+XROq5hadv/QRUY+Xs/sFpJs8LG33h0PDcTFqvtoxKA/VYTkhg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" terser "^5.2.0" -"@parcel/package-manager@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.431.tgz#e0ce92382a3ad8b31ac91caff1605316acaf6a99" - integrity sha512-wbc/UYjTjrqCFZ/AJ1gOxyKDfXE3lmLm0xt5L4GOJBToe6EsfbdowGsb1BTKvP73NcGdU7vZ93qMpv5bgT5INw== +"@parcel/package-manager@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.0.0-nightly.434.tgz#c10023364890c1407c8bc61304c6c473fbd26187" + integrity sha512-He9F62ZWZOnb7l4Oe6xV+afLsZv/5yR8On0lQY4Cuy7LO0Aemud4SS192gS0i8Ns+l5CHDap/M6tpYEKmQ1Urg== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/fs" "2.0.0-nightly.431+296bc57f" - "@parcel/logger" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" - "@parcel/workers" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/fs" "2.0.0-nightly.434+146cffb6" + "@parcel/logger" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" + "@parcel/workers" "2.0.0-nightly.434+146cffb6" command-exists "^1.2.6" cross-spawn "^6.0.4" nullthrows "^1.1.1" @@ -2444,91 +2449,91 @@ semver "^5.4.1" split2 "^3.1.1" -"@parcel/packager-css@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.431.tgz#afe33ebfa5f5e0c3f45154ec7342cddfe752d073" - integrity sha512-DEIMsYxa/hhyKpyP46B2U+zzLqqYoeeWE0TY6iL0JZevbqJneaHd6wWWD4dSZorX7QYjfQdPwD0bpr2bA2F4Jw== +"@parcel/packager-css@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.0.0-nightly.434.tgz#c4c8d96bdef390f23e3caffa5b441ab58c944ec0" + integrity sha512-vcAelclqSXoG5mXJeD3LG1l/Pi/VX1ULp8QmSQ/4dh3bwa7YvEC/1XHQHqUwFxMcOtVQHu7GLQBjpPb/vBxHJg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/packager-html@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.431.tgz#97e28d80f20da261e080a2480c54d80f197ae29c" - integrity sha512-6ahA23Q1fx28wpHOeB1ci5wDvD5KTz6Kqq4g1GwYWDwUHDmgAkxBhYaOGSB5+veEgwgqkDT4IHX90ctCy+vkhw== +"@parcel/packager-html@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.0.0-nightly.434.tgz#fba28b8bb027d07ddc36c63d9f575c5812be7eb1" + integrity sha512-G5lHBn7xfRDr5cNp558CFk46Ivnk4N7G+az58mSTS6byB3k1ZQEldnxYUMtUBpPxZXp8FRMw0FkntoHo/H1p/w== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/types" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/types" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" posthtml "^0.11.3" -"@parcel/packager-js@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.431.tgz#0c2523d19ed5e30c6120477af13458efcbaa412c" - integrity sha512-i+Z+ybrcYWzvK8bc5asyjqPE6g0FCJXVY1ES5Yu9suKWlVlkxzcMI8lZZ80Z1Hk4me4oEsRC3dhE9PRCJkG4Mg== +"@parcel/packager-js@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.0.0-nightly.434.tgz#7ae693501d7497171562ab9b2599170e4e5ca3d1" + integrity sha512-FuKEGO9XlaPDBeGDMMeMPFtrHE5t9kE1iM2Xx/x4wu+4zBopSZTi3XRaqbQ2QCldpss53x/5OclgDUww6Qd1zA== dependencies: "@babel/traverse" "^7.2.3" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/scope-hoisting" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/scope-hoisting" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" -"@parcel/packager-raw-url@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2053.tgz#506a80c3f0e24f42bf68e70d2b7bd275380dac4f" - integrity sha512-S6vI4Lze+Dnq0OqH5y0Or1qFWL0ajPuZSlPlbOqzaoBNYVtWdMEb2qtug/spRKqT7iHrcX4oQSx/qnxNawn0jQ== +"@parcel/packager-raw-url@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw-url/-/packager-raw-url-2.0.0-nightly.2056.tgz#b5c8603f9c690a86635272f86ae16f9466b94fa6" + integrity sha512-zbzebs44fDhJjkyx+RYUwy6Lnil+XkEJVy7UbFy0E+HVD9yiyZRA+8p+4H4+0HgCtdeJBRWx8vBjyfh4ehMN6Q== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/packager-raw@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.431.tgz#bf5e21838aa139c7546231505163bd514c8cacd5" - integrity sha512-thsJdeKUfEuS3G8+Gnb7m+tKQjQlK+UIWVCSL2v/8N7Syf34QySwvH/flSRWNchl0dEcE2y+wVeGNIlW3y9VYw== +"@parcel/packager-raw@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.0.0-nightly.434.tgz#de4357d51ab4edfa252f4dda2f3973d3583d6783" + integrity sha512-8xy6j64me3C7LIs7ldoOjhnb/BSeElXFd0na3hKijUXLAm8lOfxmPjyhW6CNO0cE0SzhDQ0pc5OTnW3uBlWzvA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/packager-ts@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.431.tgz#e8aa1af40943d44d219920f56096c19ccd196577" - integrity sha512-+f8V8rsOyheoc5sk8h6HKY11HcDcaDzj8xwKHdiRDSk1VWfUFgA/uF0uD6jtTzUtlVNhKrZoN2XByorTx4VnAQ== +"@parcel/packager-ts@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/packager-ts/-/packager-ts-2.0.0-nightly.434.tgz#6d383753051ea32b264df6abfb45eefebbf1138c" + integrity sha512-180o4rKA+1L1z/k2YQyErXnhVXNyVSqwLDb/6gBkQD6t1I6nEIXv/y4U7OW1mBRFKOBHcay/oQF3qUZdo3gpCA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/plugin@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.431.tgz#7fcda9c74f87b7f4407c91350d627130a7b62ccf" - integrity sha512-qG1KX98FvZMikPLycE2L2a/ykD06S3kKmz3KZkRA7FmfrdkLS5emO/DstvqdoTeVJbWG3YQlhImI+zABTlvJGg== +"@parcel/plugin@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0-nightly.434.tgz#e7134b0d4719b080f9d015c8390f5f9285d605ff" + integrity sha512-F6XERkc4Y7NeJiys6f5gMeu33suciEaQmLvnyt4ShYeX1ZWKjoze0kt1A1AQf3U3h7wZE4JpzAqjFm7ojdsJPg== dependencies: - "@parcel/types" "2.0.0-nightly.431+296bc57f" + "@parcel/types" "2.0.0-nightly.434+146cffb6" -"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2053.tgz#9ed5ae88752811f2ffbdf675d84e47fb4a732418" - integrity sha512-yi3wBMM32aPMikaNv14p56gmVzA9P8yjVW20GYy9sTQmqCB70FHyWzZk1cgjkeOlFyPDVP0dQP5A8dYteQTiyA== +"@parcel/reporter-bundle-analyzer@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-analyzer/-/reporter-bundle-analyzer-2.0.0-nightly.2056.tgz#de8265f5e142d71e21fcb65fb935251887f9fcfe" + integrity sha512-3HdVmrE0zb6NyVgttG+8T0cnLXSfqpgYrZUIMm7IS13iZVsL5yY3aPf5XLoFzo+9ZHlzY+ViPo5f5kqR2ilPqw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" -"@parcel/reporter-bundle-buddy@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2053.tgz#a8fe39e5a56709b8402576165da30ec98550e0e4" - integrity sha512-VMR6ACWwpxjQRIsB9jvPnHRmg5KbU/pojfFu5nwUBAJIGpszF6iEwUmJR6QQNF804PwDauAPkIr1rqWowi4cHA== +"@parcel/reporter-bundle-buddy@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/reporter-bundle-buddy/-/reporter-bundle-buddy-2.0.0-nightly.2056.tgz#39c2bac29bfd2034140e391daa365ddf8dd3f285" + integrity sha512-rUhKqzPVHRNEILF6wtoHXqvV+XduQqLBOtyBcCYN0C6jEwh51teDu+1GoP5OhdPRAIY2kkQoMadkO/Q6LKk8qQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/reporter-cli@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.431.tgz#fc572cbacbfd00e25dc145e1b3de3983d54a5581" - integrity sha512-wsxDn8iFnjy8pGLNemr5vSXT5qLHHRFti0/Ir3FybkAtcvbAzb1XlF/MrVhHx2beQztTRSbVfmJA5WMqWu/bFQ== +"@parcel/reporter-cli@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.0.0-nightly.434.tgz#5fe891d0ec692bf80200a9bd5a8dd250ebfda246" + integrity sha512-7p4cV9nXqWC0M3P4NrJZ9IecIVEE0HGBb3k34bLHlrvL4bRoaHpoe2+T1QvyrNYesUf+CUBlRXohe4h3QEw4yQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/types" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/types" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" chalk "^3.0.0" filesize "^3.6.0" nullthrows "^1.1.1" @@ -2537,68 +2542,68 @@ strip-ansi "^6.0.0" term-size "^2.1.1" -"@parcel/reporter-dev-server@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.431.tgz#2455b15671e1d250e196b018b2acb7a718754d1d" - integrity sha512-W20/1fAvZU9907e/Fpr5yzpRxrvNEF91G+b8VeF6a6Dw9gt331Ay5qyregN7/CcM2zkWtOB2yG2ckuzPhUnAiw== +"@parcel/reporter-dev-server@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.0.0-nightly.434.tgz#6637e29703b225cfedb43f5145936df5257430b6" + integrity sha512-ZloWZBo1DqMKaQBqs5hPMblySCDd76l4oY8vpmPYvdtO1skWY6VDL7aoVp4qkPPbXmECnvxdys9e2uIqtH/8rw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" connect "^3.7.0" ejs "^2.6.1" - http-proxy-middleware "^0.19.1" + http-proxy-middleware "^1.0.0" nullthrows "^1.1.1" serve-handler "^6.0.0" ws "^6.2.0" -"@parcel/resolver-default@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.431.tgz#188469dda57dd5e43770dbbf7c7f156000126f91" - integrity sha512-Qpx7xdhY1KML0GfCZggsdBsxl4Tp9LtSF0AINHpOTm1JJBzoUGNSytvFneZOHwRe7JPEHgTY+ZEuFEbbjG/lfA== +"@parcel/resolver-default@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.0.0-nightly.434.tgz#5e9ca29004097580bf3c40fe7f18571ec40550fb" + integrity sha512-Zy2wSAwRgZcW8Wug/yFFhI/FNOh9ElMcl96nJhY1YFK6wjwfRDj84vx3fSWJmWofHUOwe9eLmTgaL0Rn+83pEQ== dependencies: - "@parcel/node-resolver-core" "2.0.0-nightly.2053+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/node-resolver-core" "2.0.0-nightly.2056+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/runtime-browser-hmr@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.431.tgz#5483f4c00faaac3154b855fce9ef68bbca1e27b4" - integrity sha512-UU/LFh2cAhi4T+JdoD/A4Ivott6ZC8dZ5V/VfMzdh/ZwdPTDW0Y0q4VihFSVJWj2dX1CzlqUgJk6L3+VUqks/A== +"@parcel/runtime-browser-hmr@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.0.0-nightly.434.tgz#ec49a1df9def8c206dc401b28806ad12656785e4" + integrity sha512-xCDn17bRGHvWd8ygPmUo3yJX9lRngX5WeMwbF5DwvdxTjsg26y+MI8tF2wlHjdOl472ESgv1ZXnBIblDFO3wJw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/runtime-js@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.431.tgz#f47623f3b883938bdf2a609b59129f3e55bcdd4e" - integrity sha512-Irt6e1vWdqqk85b0dzB6HP5vM3si8J6LfmiZZRRPH0yKNE6UL9LsaKMtAI6YSChT4JWwPoy+CWesEBLnrehE2w== +"@parcel/runtime-js@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.0.0-nightly.434.tgz#cadb98b1968950d606cdf96a97b178af121adc68" + integrity sha512-z2B+Sb3ObKoDnqrQU5jrL+Fg5Woy/csW3QtOX4lSmyoZp1NpaTQaB5KpBPe4WrusWMBEXPLea3b8MWAmlrx1rQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" -"@parcel/runtime-react-refresh@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.431.tgz#b0812cd2a4e0abc03e130e264124e692ca52d107" - integrity sha512-oY/7RYcU1y3LusZP0zKISFtOw0b2ZioKAV3gWBHW9/ywB2z6szf2In4byCjnI/otIq2ab2B6VFN7SHnnPwZXdA== +"@parcel/runtime-react-refresh@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.0.0-nightly.434.tgz#28df595c871aeca0ad0fe571328a1803de4f3119" + integrity sha512-KjNDA+z45DIPGybXIiyV2aVxCDYjZAq/nEZc07mVzuQ1jNm0rCR0ndgHQT71rAGUdkAqdOnCSdnN0sVuv2nNXQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" react-refresh "^0.6.0" -"@parcel/scope-hoisting@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.431.tgz#e0194721d523ef88af9c06d1922b1b51faf82068" - integrity sha512-50/KXGnGcRPpPrcoMNYWHrRC6vvKauB1EKy84E32lG0cAafkOvykoo28aQp7vstnxGnVZ9c2hmabyJedxm3L3w== +"@parcel/scope-hoisting@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/scope-hoisting/-/scope-hoisting-2.0.0-nightly.434.tgz#145ebc92ca90f956b1c6b50cc38aade4d5ffb7b7" + integrity sha512-YUxBMSGWPPxmjTjD/1YA5twcBDWKYmo1p1CNUZKp6Toa0R0tiyTrzy3EQEZKzFR0AVMsLUd4wcjBLodnl5/SKQ== dependencies: "@babel/generator" "^7.3.3" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/traverse" "^7.2.3" "@babel/types" "^7.3.3" - "@parcel/babel-ast-utils" "2.0.0-nightly.2053+296bc57f" - "@parcel/babylon-walk" "2.0.0-nightly.2053+296bc57f" - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" + "@parcel/babel-ast-utils" "2.0.0-nightly.2056+146cffb6" + "@parcel/babylon-walk" "2.0.0-nightly.2056+146cffb6" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" "@parcel/source-map@2.0.0-alpha.4.16": @@ -2609,10 +2614,10 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -"@parcel/transformer-babel@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.431.tgz#6bc079070cb02be8b1fb6a6f81ca2a7bf6f6de11" - integrity sha512-cvWTPKNhCv2+NeHBqJIagp+vKIBfutRO0xIuoyJ6+IuA6XbXLnIJlWaJQqQvErJoJ2akY5ytx+lctzWnKd6TXQ== +"@parcel/transformer-babel@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.0.0-nightly.434.tgz#9f6a998743d222444d0571865e8850cf577371c8" + integrity sha512-stlpy8s4cmRXwf1qS7tBNwGV1wcyNjirRwFN78/DTldEH6Is2cIyD7oNWjEULggwfLQCYi95Vw0dNFqPsxXdxw== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2622,85 +2627,85 @@ "@babel/preset-env" "^7.0.0" "@babel/preset-react" "^7.0.0" "@babel/traverse" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2053+296bc57f" - "@parcel/babel-preset-env" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/babel-ast-utils" "2.0.0-nightly.2056+146cffb6" + "@parcel/babel-preset-env" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" browserslist "^4.6.6" core-js "^3.2.1" nullthrows "^1.1.1" semver "^5.7.0" -"@parcel/transformer-coffeescript@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.431.tgz#d7d3465b9318e2535e22b52f92df5d91a1eb21a1" - integrity sha512-Ygws6dccdBw3M39MWjqJS6EIAzJekmg15ivlCww4SNrfesI1+eeArKsL/KrcSvk9YyatYG7fL20rRiAq/nunIw== +"@parcel/transformer-coffeescript@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-coffeescript/-/transformer-coffeescript-2.0.0-nightly.434.tgz#e294131fc679f50a9ad99e547ae8f6f48930d457" + integrity sha512-uDJfJx/Q3PSZ9K5dQPi4xBM3z+1R5QCaAe9FxMbAVkoD2e2/RifalyMbvVrricz8jbGopRDFDacjW7XM3GeKgA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" coffeescript "^2.0.3" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-css@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.431.tgz#1ba7aadab0e87b3ac5ea7e0cccd016f5ec9a6772" - integrity sha512-nq29icIS/0QOynOMDnjTtLLFhaK8GrKF6FD8QFhLi1vAFxyvuDJyFTyHlagTFqWEHQmLw7WEUsfY+uBBj5Ut4Q== +"@parcel/transformer-css@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.0.0-nightly.434.tgz#f9610bca5f8ca1b754672159cd8d009b9d4cc5af" + integrity sha512-Te0QQ1tzs18LEODXX9rpAYpnN+3+MOmGnLSRdR3K1cHc4kdaN76jUKSiCC47UnJMm29I2DQ8aNfdnW/G6U9/tQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" postcss "^8.0.5" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-glsl@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2053.tgz#3d713830d451f5b5a188cb844dd4222919958c4a" - integrity sha512-s7cjzJS3E2MOOETlRfLghdw/mmvbrNuP0zuOWaW6c8zc7AttenoX0/LHScoK71wukfax9S6WdLKJl/xhwmLXMQ== +"@parcel/transformer-glsl@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/transformer-glsl/-/transformer-glsl-2.0.0-nightly.2056.tgz#7615de1278d9d227b942ead9342ca3989c913260" + integrity sha512-FoO/POuYmahss2NewubSXNm1WLLgAREQMAOwkpIuHCY/zxu2cGADAZFX9OS7BlZugL/CJQ4jvPN561QC6SX0yw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-graphql@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.431.tgz#9ea545c47d401ab68e02bbe0cc71273b7405fe9f" - integrity sha512-znKzDICXeQZ8TKGI0pYq7tX9RWG954T5D6Ynzii5zJdzDDfYjs53U3b4XATMk8RhNuAzdpqVwV3PUa9XoPMEnw== +"@parcel/transformer-graphql@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-graphql/-/transformer-graphql-2.0.0-nightly.434.tgz#83a75180fc0f1abe1df31c961290d6732128a55f" + integrity sha512-YBYp2FRfSBrQKAkh1dkonHE6InWsES0EZkSeKm3fJEITfLeka6AlHeUeWdrVNcQOeiyJOhMcR+ebhWCAlk/o1w== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-html@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.431.tgz#2537f9c38eed7a3ae0ea9a7a0fd60aded795cefd" - integrity sha512-wBu3QaBjcHmomFUmi71Ee2fhlr8wPysajAZpegXHep2aSY+Hpfv7zIFleUuyqhGkzli7bTSeHp0HOFqj1l2sTQ== +"@parcel/transformer-html@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.0.0-nightly.434.tgz#d340120036eaa0e13624949c3d721d00083be2ca" + integrity sha512-UJiTIL6lC8PtHbS77yceECunySZczto0yUE0fxwoL7pzibEbs8BC1HNTm4PgngglG8GD2zLeb/9/N3tquA5mEw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-image@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2053.tgz#0cf77853df259fa5cbdb2fd050d983c672be70c4" - integrity sha512-xMBlyb8awU6hxg82+QizaObHShs9rG4nMmPhGuoRLetOFkHzS9OjeWGHooQ2RMEeqPnX0H4rMj7ZPobdSkarqQ== +"@parcel/transformer-image@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.0.0-nightly.2056.tgz#3871a636039daf8b7c4b07ce642f9922ef0611b3" + integrity sha512-e3FguqR0HbyxeLpAxaKre2mNVhdoRDLCVEg05nNpaztROKzbqV6ASEj7S87FWgvm1FwJfAv70XMLRNRQOzFJZQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-inline-string@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.431.tgz#4ef6d0401d748ea5a3be81908096495af038e20b" - integrity sha512-oTmDZ/axGCpkITyQo7lHjuEj2vhCWVKlQfQXSiWW65W7bS2tZ8gyLU1zcC88K3B7/VUH/7m+WrvHuoBsBX0d/g== +"@parcel/transformer-inline-string@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.0.0-nightly.434.tgz#69d29c6e53f8e49a8dade7f63f44777c9d0fb0f4" + integrity sha512-wD92e82sbAqKDis0iGR/QjgEgCQDSt8DrBqLoEdeQO3i63uNt3k5OBoBBz37C3D3GI0gPxBmIxBAloj7XGnVlw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-js@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.431.tgz#cdfbfe23649b1d481454b529ece46b51578171b2" - integrity sha512-eGD0Zc8IT4VXuhj7Fl/Iei2fnN9GMF+lLjC8ElZd6VPZkO6a9R4bYTSnskP8s+f3bquqEnUeodgkwU7+VSBl1g== +"@parcel/transformer-js@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.0.0-nightly.434.tgz#5d600e49719ba9c65f34f9b9eb87352dafadb751" + integrity sha512-2qFWzhQmJUrSk+5WS1M5osSIe8umN503foLeS/tWYopAM+SJzRJewqRpDRUgP4L3JtAvWRRLy7eOcb+VkiY38w== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -2709,193 +2714,193 @@ "@babel/template" "^7.4.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2053+296bc57f" - "@parcel/babylon-walk" "2.0.0-nightly.2053+296bc57f" - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/scope-hoisting" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/babel-ast-utils" "2.0.0-nightly.2056+146cffb6" + "@parcel/babylon-walk" "2.0.0-nightly.2056+146cffb6" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/scope-hoisting" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" micromatch "^4.0.2" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-json@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.431.tgz#da8bfdeba1e0dd6a4b011836bf4c76ed0c5e75d0" - integrity sha512-0lU2UI/XPDKKP2Fc9+re16ft84UfTnPl9MgGzzUSfYjQLSsyOvN5ocY6ue8qHgumFZ7AUWUbUFjuJJgVzGSAqA== +"@parcel/transformer-json@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.0.0-nightly.434.tgz#b432b6f43c07f9e869ebe3f836f35ba0d38ef826" + integrity sha512-CeaFtEEyTNC1c8JObEBIo2EI6PBxGhjV6XUGuXOAbNXrBsFdyRq8+M5kp0z1CZXQxuKuB8qpd+5YEE7te9m+KQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" json5 "^2.1.0" -"@parcel/transformer-jsonld@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2053.tgz#f75f84de1a95b571f63c91e57795750a16aa8071" - integrity sha512-X34rMFizKuLjND2jkK13hIDHdO1Y5GAi5HVZxXBKP0ixYXxXcPpeYtcjcVOX2l86Rg2rPL+BDKv2PweqVG+Geg== +"@parcel/transformer-jsonld@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/transformer-jsonld/-/transformer-jsonld-2.0.0-nightly.2056.tgz#103a7d2d1f8bd9fac1fa448dbda21ba84bbc1d12" + integrity sha512-DpiJtFfKXHtOxdP6Gdq7vAzHxssFb9Hq9bNqqxtDCtiKgHGNtpl9Zr34n16efG0T/uYqqiU3cfOWFmnm+AjZUg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/types" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/types" "2.0.0-nightly.434+146cffb6" json5 "^2.1.2" -"@parcel/transformer-less@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.431.tgz#faf1c2ba4fe98de05b0f7614589cc92f8da1e250" - integrity sha512-wxdDPRZn3mt6mDakyLgnXWHARNX14JT0J8UT3Xcr8dvhh01kgK6KE6Ndp1jhibw36kd+1fvvJ93qRY8nyrf1kg== +"@parcel/transformer-less@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.0.0-nightly.434.tgz#3320a4c295996fdafaa8e9bd468e22e1534b14f1" + integrity sha512-56D81BeWFMi5hsR8qoP1dzqmX2pU0rII1EIOjzeRn06yu0ScOdQkFlNvkN6b/u+KKzM/JSosbEJyKMZToTfpeA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" -"@parcel/transformer-mdx@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2053.tgz#ea7f46349d1f7cba477578ebc7b9dec9f7ca0102" - integrity sha512-zslRcwHCs+dx/PHi7AF5HB1zQ5zdULS3TwEmBjshL6Mxov8O29R1aAWSRzSYN8xgki+8JjJSOGStcZx2P6fTsA== +"@parcel/transformer-mdx@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/transformer-mdx/-/transformer-mdx-2.0.0-nightly.2056.tgz#321492eeb92410c3102710e6810ba62b672ecf7e" + integrity sha512-ypivteof3yhLH5aqEUFF5vF+g9a8VomLd7WFEhir0YPAUJmgyhWouT6pwaNsqJz94X1LDfVAD91LM76LXn4mjg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-postcss@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.431.tgz#e32461c484bc9135e171da3e8de4a089f6198d86" - integrity sha512-gKQtKR0FJinwm4NONJk1rQc1HKDHX+8ypISQ6rDmh5PhH5GsDw6pJRibl/tEAkPuoAH9wozEMk21Qwjjr+TwcQ== +"@parcel/transformer-postcss@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.0.0-nightly.434.tgz#740915497ba6d64eec75f906591ece20beceb118" + integrity sha512-1qGookpv/S0gT3f7RzgwHmvIGxExMoeKqR3kKVx6dD2mp/OnFd6q/apJqLdDSn8zmBUJh19W8Vxo0TIhTsCTeA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" css-modules-loader-core "^1.1.0" nullthrows "^1.1.1" postcss-value-parser "^4.1.0" semver "^5.4.1" -"@parcel/transformer-posthtml@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.431.tgz#01992570a1fac563063ca1917cccd11724392a6a" - integrity sha512-0VA3OJ9yXdQPG+DuEYYL0KcMUACCepOMQF3xLQNCJjh3/SB1f3bmBOzGYPcw18bMHA6S3OX/pNRIIvvhPfBf3g== +"@parcel/transformer-posthtml@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.0.0-nightly.434.tgz#d0e9c37beae66ca520c1c84724b164cb973f58b6" + integrity sha512-+/QBFXKsSil5CAU2+IW1mCEvxrUib370BYxj61z2OvLl+vIERHp9NM1/wiVQgn4vlqL/u7ikycBzGdgtqHsCww== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" posthtml "^0.11.3" posthtml-parser "^0.4.1" posthtml-render "^1.1.5" semver "^5.4.1" -"@parcel/transformer-pug@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.431.tgz#217a3582e2a68293d3d3f3a0e87fbc7c40e1a085" - integrity sha512-EuqsLIFpakB5v6pHzXrMbT7j8vyWMhQA9ubAezlwuUCuMrF+ED+fLZ0amNbfOY17LTutlMOF0ijsaThJg032sg== +"@parcel/transformer-pug@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-pug/-/transformer-pug-2.0.0-nightly.434.tgz#b425f2f9961fa4bfa7c43e6fc02ef51709e55774" + integrity sha512-nhvItcQCOZaK1Bd70/SfRpPbTCYdxdjcaGJN5xvCmI1datH36mbeQCyVNmf05BRYCD6UTJ+MVrrESUsYjnhQhg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-raw@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.431.tgz#8f755a17cdc25d0a2102b27574536d8fe001752d" - integrity sha512-+Z3hKjlUoG8QydM2CpcF1yXW0DFbm99LeLFrAIkAj2VcTRpDjgcXP1smWXaolux/FVto3WK14nk2PScUZqgE4g== +"@parcel/transformer-raw@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.0.0-nightly.434.tgz#0fbcc96fc722fa35b61ac1765b681de0ea009fca" + integrity sha512-F9KIct14mo89ehEPRo9oa+U+LHxVn9aXvjUbDnIGArj0O+mI6NcSKfhnGDfH0tTdh/i1jMtkT1tilW6PK3Yejw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-react-refresh-babel@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.431.tgz#e100cd5b357a7e1655041b42bfee38aa927e34d3" - integrity sha512-pxODnpLkC658na/RD6jRm8SJCUYaCL2ufLrYnh6H7B7VY0dkMg0I8vNRJGmb5R6nWsW8ML2n8QvzOYmTWIq7Ug== +"@parcel/transformer-react-refresh-babel@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-babel/-/transformer-react-refresh-babel-2.0.0-nightly.434.tgz#44aa1adf7a4516d88379012cca4f2c95ddfc2ed2" + integrity sha512-PCDMQsCTapoiM3W4FE8C6x/g4DA8nW8cs6UGAmKZZGQ0QqjqxnfvQoJ73uGSpgkRKmyuuxPU483fwA8xMDGqcQ== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" react-refresh "^0.6.0" -"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.431.tgz#fe24b98d69fcc3c08e5de8367d63a895216e94ae" - integrity sha512-On3rvDjaywOAtp9ZitFAEWmRti5hUTT8KcxiJtvuKU7UzAyT/zDHr7KiaUibvJwdYfMTmukdHwFKDGiXHJSRYw== +"@parcel/transformer-react-refresh-wrap@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.0.0-nightly.434.tgz#95f1feb950a4c079f05286b355e5ead66abb6438" + integrity sha512-hWEfYqpv0PH8a78i2UoFCir7icPufm5xSiL9R7YegLTh2WMjiYWl890ao2dfPoCYCdRp1rhYEjXEwVPvEerYDQ== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/template" "^7.4.0" "@babel/types" "^7.0.0" - "@parcel/babel-ast-utils" "2.0.0-nightly.2053+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/babel-ast-utils" "2.0.0-nightly.2056+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" react-refresh "^0.6.0" semver "^5.4.1" -"@parcel/transformer-sass@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.431.tgz#35d08684ac5488db9a7c1f40df274e381c33c170" - integrity sha512-FAsZ2oxRYTJor6A/EIqX+bitiqc5aURMBRhMwwn/edsVf6uaHd4ZNLjQ5OvYK5+qWyNVK6FcbJx/tWRcNj3xFw== +"@parcel/transformer-sass@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sass/-/transformer-sass-2.0.0-nightly.434.tgz#62a11f9bb78651034a59e7fab4b8dd2d253eccdf" + integrity sha512-6T+HuwYXHt+06ms2fdWAMvlG/a3k30vZ8njiRn542BhNaeCaQ8hSS3BzQG1TPhvqLCAosIZi9YqETBAsriVhug== dependencies: - "@parcel/fs" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/fs" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-stylus@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.431.tgz#971d7f1e1d1d038925148ea09d1dbad2eb000680" - integrity sha512-ptTcApAPuVJ+rRIZ6C+iB+Kq4rUsXsO1GDWgq/YIilGM49xLZB76hwMKg1fCYZEQJyrCEk6PJIVqpu0EAQetAg== +"@parcel/transformer-stylus@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-stylus/-/transformer-stylus-2.0.0-nightly.434.tgz#a1584bb84b652b22e4afefece38ca195d799dec3" + integrity sha512-06brKPO894GOs/8k5UxXayIhg2xYG6l/4WKArnCehN2If0ZLpgLlRMPxOEFdW4RROmFwnX3ye7EvLwTEKFROAg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-sugarss@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.431.tgz#69d9aa5a0ca4c1b4c0b4e7eba282faf8aea34958" - integrity sha512-M3AZQOKR7BLiWTN28GBMADz5EGdecNF1JGbIs9sHYWtNW7koKDVni0z6+5salGBudaimYrHtCixP0eBlS/L0ag== +"@parcel/transformer-sugarss@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-sugarss/-/transformer-sugarss-2.0.0-nightly.434.tgz#6ca9fc6b7997b06082f09df6a627967265d3ab4d" + integrity sha512-poGDU4z5LwSmqnI05SILlamj+x2qGqd05WKNaxKyOH9TaGhAN4qZ8yjCfnCocEf+Kiw5dWfIUubVqHgs1tVBzg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" postcss "^8.0.5" -"@parcel/transformer-toml@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.431.tgz#6ec515d86265be6b6b8d569557c24f4ec6e914fa" - integrity sha512-hZHVL7zW//AYHTCgEkdevGI71radmKqEvT/eLsHQH/AyWwdB+ob7nMMTO5ZIgutluxA9BCgnuzC8+jOtHrz5Vg== +"@parcel/transformer-toml@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-toml/-/transformer-toml-2.0.0-nightly.434.tgz#7cf42bd6fc483dca0db9de313ec98ffc3fb50268" + integrity sha512-XviVqL6ldpzZhwJJgsWi54BMVxA8uPgQPNaMUW+8vv0wYpSsqN4ulJxh2n8jTPheLQiqmENpRO+CFWKd44piMw== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/transformer-typescript-types@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.431.tgz#cb1e474b584d314ae071ced0844c994365b4cfbf" - integrity sha512-7/bejpeNYvfdfWi+CFJ3T0JRP9NfI0W1yh49laX38/V8hYdfZYedA65dzsxnMoOu0F2vHaE6ToD9OnvdCI0UYQ== +"@parcel/transformer-typescript-types@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-typescript-types/-/transformer-typescript-types-2.0.0-nightly.434.tgz#350d086de67943c87327de68b05396c43c830743" + integrity sha512-hMtIFXFWkbtW5Vo+bMu/zlbtw9gN+op+RoSLbvcGxI4HtGNZf/KPeGWoPVKqCepoAuWBn8xgWTf65ojmXvDyfA== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/ts-utils" "2.0.0-nightly.431+296bc57f" + "@parcel/ts-utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" -"@parcel/transformer-vue@2.0.0-nightly.2053+296bc57f": - version "2.0.0-nightly.2053" - resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2053.tgz#1d9e985a8664fd7ad8886cf522d1cc67b9e62da0" - integrity sha512-XwL+Iwf5zOk8duxR27Xw7FWvT3V4D2cr3O2Uz9+bnbv4FL7gxy5ekebU3S30c4rp47SceGsss17ZCwGSknw5vQ== +"@parcel/transformer-vue@2.0.0-nightly.2056+146cffb6": + version "2.0.0-nightly.2056" + resolved "https://registry.yarnpkg.com/@parcel/transformer-vue/-/transformer-vue-2.0.0-nightly.2056.tgz#ffdcaea0b9b891dc42c1e03469e2805c6fdec491" + integrity sha512-EJhqBDLQ7qbq5Tq6JEr4YnRPI4ngK06L5b1jEVBaBv/OCk5O7kdyoItPzzgkAyE5Bwucj8p7ZeGScVD2vNZQpA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" nullthrows "^1.1.1" semver "^5.4.1" -"@parcel/transformer-yaml@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.431.tgz#8395fe907df61b5f93af09e0adb9f87fb175022e" - integrity sha512-euA+BTJjsYTmOKIWIklzwlI+DZ8GFVHYS4rdP+3I/lZEAyTjdZUopA4m99TKq0cwnYPu1R53H2wXsbK1wAK1Vg== +"@parcel/transformer-yaml@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/transformer-yaml/-/transformer-yaml-2.0.0-nightly.434.tgz#e379a0f854f13a5bf2427a01a4f7606696d1c010" + integrity sha512-QdYl7vH7KRYr94kf500IQjybkjYfQldUN9HviZZmJ+ABH5C8mlPVC3LU/XuJQ0W+BOBVbP3aoqsRPAmKb2D1Zg== dependencies: - "@parcel/plugin" "2.0.0-nightly.431+296bc57f" + "@parcel/plugin" "2.0.0-nightly.434+146cffb6" -"@parcel/ts-utils@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.431.tgz#7e8af0fcae0e75659b334fec24e31cd89805dc69" - integrity sha512-0AeaQy4KIG2sT7BB+OnUsmv138DPbrechHQxO1Zfkt7Pd3FWz8vl6cLTfiYA6QW0XyVFCnRFG0GIqubbmSk4Iw== +"@parcel/ts-utils@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/ts-utils/-/ts-utils-2.0.0-nightly.434.tgz#69a5766e40cdff353e9d2791c36fcaaa3e16123b" + integrity sha512-uYrLacAUQLb2nmEQ31iJ+VvoruVtgI4C+f+prhRyKwiq4/VIncGrWA1Z6t/tcSh8VsDYBA1GvTLQAijl4CGyIQ== dependencies: nullthrows "^1.1.1" -"@parcel/types@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.431.tgz#20cd0e153dc8705b357c549f4a26e554937db14d" - integrity sha512-RJA4MWzeL9DaYi5LZwNoVBF8ZIz/dmIi7nYKGqo/LqSTJISh6rNLwhf7YuXMGKxjlLJ95mfaEzcmtTNo/d3Z3g== +"@parcel/types@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.0.0-nightly.434.tgz#34ea8af62584bfb42b1154a340acd00f704bb124" + integrity sha512-jRZEjGRsjHw2NhnZUtD1feo55076JQ09y64Fl8pWUWc+P3VK3sqX07nSy4LEbRJtApU7hxHL1ccnl+P56CsJsw== -"@parcel/utils@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.431.tgz#ba38915f5d35289a42aeaf87d62760f72f5e8167" - integrity sha512-yIdwnvdL47EV8sv8DbcZG+SOSueM4rMrEnHojN/LPOIzTDiQPUtMx0wTGW3923UN3E2vknGbssIDJ+fnl5l2Aw== +"@parcel/utils@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.0.0-nightly.434.tgz#efe2dbe9345a81cbe364f695abc26239ed187de2" + integrity sha512-0lSVXshLl3tXD4YpSaNwvXnBOiRWpDTD0buOBY7qG38zzTpQCSgN+/kGM9T7wrXRtzjxfFOy35tvYTHDtsePnw== dependencies: "@iarna/toml" "^2.2.0" - "@parcel/codeframe" "2.0.0-nightly.431+296bc57f" - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/logger" "2.0.0-nightly.431+296bc57f" - "@parcel/markdown-ansi" "2.0.0-nightly.431+296bc57f" + "@parcel/codeframe" "2.0.0-nightly.434+146cffb6" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/logger" "2.0.0-nightly.434+146cffb6" + "@parcel/markdown-ansi" "2.0.0-nightly.434+146cffb6" "@parcel/source-map" "2.0.0-alpha.4.16" ansi-html "^0.0.7" chalk "^2.4.2" @@ -2920,14 +2925,14 @@ node-addon-api "^3.0.0" node-gyp-build "^4.2.1" -"@parcel/workers@2.0.0-nightly.431+296bc57f": - version "2.0.0-nightly.431" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.431.tgz#af69ad5c18390c8af2fc05395c23d491064baf83" - integrity sha512-0jlEgTwHU38g/KTB57yNT+3ZB7G8cqCxetnMbIo+2oEJPwuOW1qHoaBcL2ld87BNwq9OB5b4gpvGsOxE1X/9OQ== +"@parcel/workers@2.0.0-nightly.434+146cffb6": + version "2.0.0-nightly.434" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.0.0-nightly.434.tgz#a314590bd4e54afc62e863c6d570c9d681b36d94" + integrity sha512-9kwyj18idFgbMTzt2e4nNYf6SY7+R9OEE1yY4kjj97unl3oxMEOMZ1CN+RHMbmWKwVjmqTp0x2Etep1+u8z5zA== dependencies: - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/logger" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/logger" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" chrome-trace-event "^1.0.2" nullthrows "^1.1.1" @@ -3057,6 +3062,13 @@ dependencies: "@types/node" "*" +"@types/http-proxy@^1.17.4": + version "1.17.4" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b" + integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q== + dependencies: + "@types/node" "*" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" @@ -3106,10 +3118,10 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18" integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA== -"@types/md5@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.2.0.tgz#cd82e16b95973f94bb03dee40c5b6be4a7fb7fb4" - integrity sha512-JN8OVL/wiDlCWTPzplsgMPu0uE9Q6blwp68rYsfk2G8aokRUQ8XD9MEhZwihfAiQvoyE+m31m6i3GFXwYWomKQ== +"@types/md5@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.2.1.tgz#0e2d65d8f6cc91aafbc9be5a4c08fee9250406ce" + integrity sha512-bZB0jqBL7JETFqvRKyuDETFceFaVcLm2MBPP5LFEEL/SZuqLnyvzF37tXmMERDncC3oeEj/fOUw88ftJeMpZaw== dependencies: "@types/node" "*" @@ -3257,28 +3269,28 @@ resolved "https://registry.yarnpkg.com/@types/yarnpkg__lockfile/-/yarnpkg__lockfile-1.1.4.tgz#445251eb00bd9c1e751f82c7c6bf4f714edfd464" integrity sha512-/emrKCfQMQmFCqRqqBJ0JueHBT06jBRM3e8OgnvDUcvuExONujIk2hFA5dNsN9Nt41ljGVDdChvCydATZ+KOZw== -"@typescript-eslint/eslint-plugin@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.3.0.tgz#1a23d904bf8ea248d09dc3761af530d90f39c8fa" - integrity sha512-RqEcaHuEKnn3oPFislZ6TNzsBLqpZjN93G69SS+laav/I8w/iGMuMq97P0D2/2/kW4SCebHggqhbcCfbDaaX+g== +"@typescript-eslint/eslint-plugin@^4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.5.0.tgz#4ff9c1d8535ae832e239f0ef6d7210592d9b0b07" + integrity sha512-mjb/gwNcmDKNt+6mb7Aj/TjKzIJjOPcoCJpjBQC9ZnTRnBt1p4q5dJSSmIqAtsZ/Pff5N+hJlbiPc5bl6QN4OQ== dependencies: - "@typescript-eslint/experimental-utils" "4.3.0" - "@typescript-eslint/scope-manager" "4.3.0" + "@typescript-eslint/experimental-utils" "4.5.0" + "@typescript-eslint/scope-manager" "4.5.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.3.0.tgz#3f3c6c508e01b8050d51b016e7f7da0e3aefcb87" - integrity sha512-cmmIK8shn3mxmhpKfzMMywqiEheyfXLV/+yPDnOTvQX/ztngx7Lg/OD26J8gTZfkLKUmaEBxO2jYP3keV7h2OQ== +"@typescript-eslint/experimental-utils@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.5.0.tgz#547fe1158609143ce60645383aa1d6f83ada28df" + integrity sha512-bW9IpSAKYvkqDGRZzayBXIgPsj2xmmVHLJ+flGSoN0fF98pGoKFhbunIol0VF2Crka7z984EEhFi623Rl7e6gg== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.3.0" - "@typescript-eslint/types" "4.3.0" - "@typescript-eslint/typescript-estree" "4.3.0" + "@typescript-eslint/scope-manager" "4.5.0" + "@typescript-eslint/types" "4.5.0" + "@typescript-eslint/typescript-estree" "4.5.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" @@ -3300,11 +3312,24 @@ "@typescript-eslint/types" "4.3.0" "@typescript-eslint/visitor-keys" "4.3.0" +"@typescript-eslint/scope-manager@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.5.0.tgz#8dfd53c3256d4357e7d66c2fc8956835f4d239be" + integrity sha512-C0cEO0cTMPJ/w4RA/KVe4LFFkkSh9VHoFzKmyaaDWAnPYIEzVCtJ+Un8GZoJhcvq+mPFXEsXa01lcZDHDG6Www== + dependencies: + "@typescript-eslint/types" "4.5.0" + "@typescript-eslint/visitor-keys" "4.5.0" + "@typescript-eslint/types@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.3.0.tgz#1f0b2d5e140543e2614f06d48fb3ae95193c6ddf" integrity sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw== +"@typescript-eslint/types@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.5.0.tgz#98256e07bad1c8d15d0c9627ebec82fd971bb3c3" + integrity sha512-n2uQoXnyWNk0Les9MtF0gCK3JiWd987JQi97dMSxBOzVoLZXCNtxFckVqt1h8xuI1ix01t+iMY4h4rFMj/303g== + "@typescript-eslint/typescript-estree@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.3.0.tgz#0edc1068e6b2e4c7fdc54d61e329fce76241cee8" @@ -3319,6 +3344,20 @@ semver "^7.3.2" tsutils "^3.17.1" +"@typescript-eslint/typescript-estree@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.5.0.tgz#d50cf91ae3a89878401111031eb6fb6d03554f64" + integrity sha512-gN1mffq3zwRAjlYWzb5DanarOPdajQwx5MEWkWCk0XvqC8JpafDTeioDoow2L4CA/RkYZu7xEsGZRhqrTsAG8w== + dependencies: + "@typescript-eslint/types" "4.5.0" + "@typescript-eslint/visitor-keys" "4.5.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + "@typescript-eslint/visitor-keys@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.3.0.tgz#0e5ab0a09552903edeae205982e8521e17635ae0" @@ -3327,6 +3366,14 @@ "@typescript-eslint/types" "4.3.0" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.5.0.tgz#b59f26213ac597efe87f6b13cf2aabee70542af0" + integrity sha512-UHq4FSa55NDZqscRU//O5ROFhHa9Hqn9KWTEvJGTArtTQp5GKv9Zqf6d/Q3YXXcFv4woyBml7fJQlQ+OuqRcHA== + dependencies: + "@typescript-eslint/types" "4.5.0" + eslint-visitor-keys "^2.0.0" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -3811,10 +3858,10 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.776.0: - version "2.776.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.776.0.tgz#a809a78b01128614eb6a656a406ff325c70bed8c" - integrity sha512-fIwiHSQ7o8r2WqNg3l6Qrn5XdjRW7zGyn0OVuXmTAKYo9mZn89AVg0MfrcD4ZFcJc56VCKbz5PR04X5oHdk/Bw== +aws-sdk@^2.637.0, aws-sdk@^2.778.0: + version "2.778.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.778.0.tgz#9304d1b2a1f94bfd8a56169f1da20ff40f417f40" + integrity sha512-sIJRO7tMaztLs+gvHF/Wo+iek/rhH99+2OzharQJMS0HATPl5/EdhKgWGv1n/bNpVH+kD3n0QMQgdFu0FNUt0Q== dependencies: buffer "4.9.2" events "1.1.1" @@ -3843,13 +3890,13 @@ axios@^0.19.0: dependencies: follow-redirects "1.5.10" -babel-jest@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.0.tgz#eca57ac8af99d6e06047e595b1faf0b5adf8a7bb" - integrity sha512-JI66yILI7stzjHccAoQtRKcUwJrJb4oMIxLTirL3GdAjGpaUBQSjZDFi9LsPkN4gftsS4R2AThAJwOjJxadwbg== +babel-jest@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.1.tgz#07bd7bec14de47fe0f2c9a139741329f1f41788b" + integrity sha512-duMWEOKrSBYRVTTNpL2SipNIWnZOjP77auOBMPQ3zXAdnDbyZQWU8r/RxNWpUf9N6cgPFecQYelYLytTVXVDtA== dependencies: - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" babel-preset-jest "^26.5.0" @@ -4439,6 +4486,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.4.3.tgz#9e31f7fe701f5fcee5793f77ab4e58fa8dcde8bc" + integrity sha512-5RLK0Qfs0PNDpEyBXIr3bIT1Muw3ojSlvpw6dAmkUcO0+uTrsBn7GuEIgx40u+OzbCBLDta7nvmud85P4EmTsQ== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -6291,16 +6343,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.0.tgz#f48861317f62bb9f1248eaab7ae9e50a9a5a8339" - integrity sha512-EzhbZ1tbwcaa5Ok39BI11flIMeIUSlg1QsnXOrleaMvltwHsvIQPBtL710l+ma+qDFLUgktCXK4YuQzmHdm7cg== +expect@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.1.tgz#e1e053cdc43b21a452b36fc7cc9401e4603949c1" + integrity sha512-BRfxIBHagghMmr1D2MRY0Qv5d3Nc8HCqgbDwNXw/9izmM5eBb42a2YjLKSbsqle76ozGkAEPELQX4IdNHAKRNA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" ansi-styles "^4.0.0" jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" + jest-matcher-utils "^26.6.1" + jest-message-util "^26.6.1" jest-regex-util "^26.0.0" extend-shallow@^2.0.1: @@ -7279,15 +7331,16 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-middleware@^0.19.1: - version "0.19.2" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz#ee73dcc8348165afefe8de2ff717751d181608ee" - integrity sha512-aYk1rTKqLTus23X3L96LGNCGNgWpG4cG0XoZIT1GUPhhulEHX/QalnO6Vbo+WmKWi4AL2IidjuC0wZtbpg0yhQ== +http-proxy-middleware@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.0.6.tgz#0618557722f450375d3796d701a8ac5407b3b94e" + integrity sha512-NyL6ZB6cVni7pl+/IT2W0ni5ME00xR0sN27AQZZrpKn1b+qRh+mLbBxIq9Cq1oGfmTc7BUq4HB77mxwCaxAYNg== dependencies: + "@types/http-proxy" "^1.17.4" http-proxy "^1.18.1" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + is-glob "^4.0.1" + lodash "^4.17.20" + micromatch "^4.0.2" http-proxy@^1.18.1: version "1.18.1" @@ -7611,6 +7664,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" + integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8071,59 +8131,59 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.0.tgz#63b04aa261b5733c6ade96b7dd24784d12d8bb2d" - integrity sha512-k8PZzlp3cRWDe0fDc/pYs+c4w36+hiWXe1PpW/pW1UJmu1TNTAcQfZUrVYleij+uEqlY6z4mPv7Iff3kY0o5SQ== +jest-changed-files@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.1.tgz#2fac3dc51297977ee883347948d8e3d37c417fba" + integrity sha512-NhSdZ5F6b/rIN5V46x1l31vrmukD/bJUXgYAY8VtP1SknYdJwjYDRxuLt7Z8QryIdqCjMIn2C0Cd98EZ4umo8Q== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" execa "^4.0.0" throat "^5.0.0" -jest-cli@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.0.tgz#dc3ae34fd5937310493ed07dc79c5ffba2bf6671" - integrity sha512-lJAMZGpmML+y3Kfln6L5DGRTfKGQ+n1JDM1RQstojSLUhe/EaXWR8vmcx70v4CyJKvFZs7c/0QDkPX5ra/aDew== +jest-cli@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.1.tgz#8952242fa812c05bd129abf7c022424045b7fd67" + integrity sha512-aPLoEjlwFrCWhiPpW5NUxQA1X1kWsAnQcQ0SO/fHsCvczL3W75iVAcH9kP6NN+BNqZcHNEvkhxT5cDmBfEAh+w== dependencies: - "@jest/core" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/core" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" + jest-config "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" prompts "^2.0.1" yargs "^15.4.1" -jest-config@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.0.tgz#cb879a37002f881edb66d673fd40b6704595de89" - integrity sha512-RCR1Kf7MGJ5waVCvrj/k3nCAJKquWZlzs8rkskzj0KlG392hNBOaYd5FQ4cCac08j6pwfIDOwNvMcy0/FqguJg== +jest-config@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.1.tgz#8c343fbdd9c24ad003e261f73583c3c020f32b42" + integrity sha512-mtJzIynIwW1d1nMlKCNCQiSgWaqFn8cH/fOSNY97xG7Y9tBCZbCSuW2GTX0RPmceSJGO7l27JgwC18LEg0Vg+g== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.0" - "@jest/types" "^26.6.0" - babel-jest "^26.6.0" + "@jest/test-sequencer" "^26.6.1" + "@jest/types" "^26.6.1" + babel-jest "^26.6.1" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.0" - jest-environment-node "^26.6.0" + jest-environment-jsdom "^26.6.1" + jest-environment-node "^26.6.1" jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.0" + jest-jasmine2 "^26.6.1" jest-regex-util "^26.0.0" - jest-resolve "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" + jest-resolve "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" micromatch "^4.0.2" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-diff@^26.0.0, jest-diff@^26.6.0: +jest-diff@^26.0.0: version "26.6.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.0.tgz#5e5bbbaf93ec5017fae2b3ef12fc895e29988379" integrity sha512-IH09rKsdWY8YEY7ii2BHlSq59oXyF2pK3GoK+hOK9eD/x6009eNB5Jv1shLMKgxekodPzLlV7eZP1jPFQYds8w== @@ -8133,6 +8193,16 @@ jest-diff@^26.0.0, jest-diff@^26.6.0: jest-get-type "^26.3.0" pretty-format "^26.6.0" +jest-diff@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.1.tgz#38aa194979f454619bb39bdee299fb64ede5300c" + integrity sha512-BBNy/zin2m4kG5In126O8chOBxLLS/XMTuuM2+YhgyHk87ewPzKTuTJcqj3lOWOi03NNgrl+DkMeV/exdvG9gg== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.5.0" + jest-get-type "^26.3.0" + pretty-format "^26.6.1" + jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -8140,53 +8210,53 @@ jest-docblock@^26.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.0.tgz#9e9d90a4fc5a79e1d99a008897038325a6c7fbbf" - integrity sha512-7LzSNwNviYnm4FWK46itIE03NqD/8O8/7tVQ5rwTdTNrmPMQoQ1Z7hEFQ1uzRReluOFislpurpnQ0QsclSiDkA== +jest-each@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.1.tgz#e968e88309a3e2ae9648634af8f89d8ee5acfddd" + integrity sha512-gSn8eB3buchuq45SU7pLB7qmCGax1ZSxfaWuEFblCyNMtyokYaKFh9dRhYPujK6xYL57dLIPhLKatjmB5XWzGA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" chalk "^4.0.0" jest-get-type "^26.3.0" - jest-util "^26.6.0" - pretty-format "^26.6.0" + jest-util "^26.6.1" + pretty-format "^26.6.1" -jest-environment-jsdom@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.0.tgz#2ce353fb82d27a9066bfea3ff2c27d9405076c69" - integrity sha512-bXO9IG7a3YlyiHxwfKF+OWoTA+GIw4FrD+Y0pb6CC+nKs5JuSRZmR2ovEX6PWo6KY42ka3JoZOp3KEnXiFPPCg== +jest-environment-jsdom@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.1.tgz#63093bf89daee6139616568a43633b84cf7aac21" + integrity sha512-A17RiXuHYNVlkM+3QNcQ6n5EZyAc6eld8ra9TW26luounGWpku4tj03uqRgHJCI1d4uHr5rJiuCH5JFRtdmrcA== dependencies: - "@jest/environment" "^26.6.0" - "@jest/fake-timers" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/environment" "^26.6.1" + "@jest/fake-timers" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" - jest-mock "^26.6.0" - jest-util "^26.6.0" + jest-mock "^26.6.1" + jest-util "^26.6.1" jsdom "^16.4.0" -jest-environment-node@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.0.tgz#97f6e48085e67bda43b97f48e678ce78d760cd14" - integrity sha512-kWU6ZD1h6fs7sIl6ufuK0sXW/3d6WLaj48iow0NxhgU6eY89d9K+0MVmE0cRcVlh53yMyxTK6b+TnhLOnlGp/A== +jest-environment-node@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.1.tgz#4d73d8b33c26989a92a0ed3ad0bfd6f7a196d9bd" + integrity sha512-YffaCp6h0j1kbcf1NVZ7umC6CPgD67YS+G1BeornfuSkx5s3xdhuwG0DCxSiHPXyT81FfJzA1L7nXvhq50OWIg== dependencies: - "@jest/environment" "^26.6.0" - "@jest/fake-timers" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/environment" "^26.6.1" + "@jest/fake-timers" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" - jest-mock "^26.6.0" - jest-util "^26.6.0" + jest-mock "^26.6.1" + jest-util "^26.6.1" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.0.tgz#4cd392bc51109bd8e0f765b2d5afa746bebb5ce2" - integrity sha512-RpNqAGMR58uG9E9vWITorX2/R7he/tSbHWldX5upt1ymEcmCaXczqXxjqI6xOtRR8Ev6ZEYDfgSA5Fy7WHUL5w== +jest-haste-map@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.1.tgz#97e96f5fd7576d980307fbe6160b10c016b543d4" + integrity sha512-9kPafkv0nX6ta1PrshnkiyhhoQoFWncrU/uUBt3/AP1r78WSCU5iLceYRTwDvJl67H3RrXqSlSVDDa/AsUB7OQ== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -8194,36 +8264,36 @@ jest-haste-map@^26.6.0: graceful-fs "^4.2.4" jest-regex-util "^26.0.0" jest-serializer "^26.5.0" - jest-util "^26.6.0" - jest-worker "^26.5.0" + jest-util "^26.6.1" + jest-worker "^26.6.1" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.0.tgz#1b59e26aa56651bae3d4637965c8cd4d3851de6d" - integrity sha512-2E3c+0A9y2OIK5caw5qlcm3b4doaf8FSfXKTX3xqKTUJoR4zXh0xvERBNWxZP9xMNXEi/2Z3LVsZpR2hROgixA== +jest-jasmine2@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.1.tgz#11c92603d1fa97e3c33404359e69d6cec7e57017" + integrity sha512-2uYdT32o/ZzSxYAPduAgokO8OlAL1YdG/9oxcEY138EDNpIK5XRRJDaGzTZdIBWSxk0aR8XxN44FvfXtHB+Fiw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.0" + "@jest/environment" "^26.6.1" "@jest/source-map" "^26.5.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.6.0" + expect "^26.6.1" is-generator-fn "^2.0.0" - jest-each "^26.6.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" - jest-runtime "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - pretty-format "^26.6.0" + jest-each "^26.6.1" + jest-matcher-utils "^26.6.1" + jest-message-util "^26.6.1" + jest-runtime "^26.6.1" + jest-snapshot "^26.6.1" + jest-util "^26.6.1" + pretty-format "^26.6.1" throat "^5.0.0" jest-junit@^12.0.0: @@ -8236,31 +8306,31 @@ jest-junit@^12.0.0: uuid "^3.3.3" xml "^1.0.1" -jest-leak-detector@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.0.tgz#a211c4c7627743e8d87b392bf92502cd64275df3" - integrity sha512-3oMv34imWTl1/nwKnmE/DxYo3QqHnZeF3nO6UzldppkhW0Za7OY2DYyWiamqVzwdUrjhoQkY5g+aF6Oc3alYEQ== +jest-leak-detector@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.1.tgz#f63e46dc4e3aa30d29b40ae49966a15730d25bbe" + integrity sha512-j9ZOtJSJKlHjrs4aIxWjiQUjyrffPdiAQn2Iw0916w7qZE5Lk0T2KhIH6E9vfhzP6sw0Q0jtnLLb4vQ71o1HlA== dependencies: jest-get-type "^26.3.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-matcher-utils@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.0.tgz#8f57d78353275bfa7a3ccea128c1030b347138e2" - integrity sha512-BUy/dQYb7ELGRazmK4ZVkbfPYCaNnrMtw1YljVhcKzWUxBM0xQ+bffrfnMLdRZp4wUUcT4ahaVnA3VWZtXWP9Q== +jest-matcher-utils@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.1.tgz#bc90822d352c91c2ec1814731327691d06598400" + integrity sha512-9iu3zrsYlUnl8pByhREF9rr5eYoiEb1F7ymNKg6lJr/0qD37LWS5FSW/JcoDl8UdMX2+zAzabDs7sTO+QFKjCg== dependencies: chalk "^4.0.0" - jest-diff "^26.6.0" + jest-diff "^26.6.1" jest-get-type "^26.3.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-message-util@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.0.tgz#c3499053022e05765f71b8c2535af63009e2d4be" - integrity sha512-WPAeS38Kza29f04I0iOIQrXeiebRXjmn6cFehzI7KKJOgT0NmqYAcLgjWnIAfKs5FBmEQgje1kXab0DaLKCl2w== +jest-message-util@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.1.tgz#d62c20c0fe7be10bfd6020b675abb9b5fa933ff3" + integrity sha512-cqM4HnqncIebBNdTKrBoWR/4ufHTll0pK/FWwX0YasK+TlBQEMqw3IEdynuuOTjDPFO3ONlFn37280X48beByw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" @@ -8268,12 +8338,12 @@ jest-message-util@^26.6.0: slash "^3.0.0" stack-utils "^2.0.2" -jest-mock@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.0.tgz#5d13a41f3662a98a55c7742ac67c482e232ded13" - integrity sha512-HsNmL8vVIn1rL1GWA21Drpy9Cl+7GImwbWz/0fkWHrUXVzuaG7rP0vwLtE+/n70Mt0U8nPkz8fxioi3SC0wqhw== +jest-mock@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.1.tgz#6c12a92a82fc833f81a5b6de6b67d78386e276a3" + integrity sha512-my0lPTBu1awY8iVG62sB2sx9qf8zxNDVX+5aFgoB8Vbqjb6LqIOsfyFA8P1z6H2IsqMbvOX9oCJnK67Y3yUIMA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -8286,83 +8356,84 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.0.tgz#05bfecc977a3a48929fc7d9876f03d93a16b7df0" - integrity sha512-4di+XUT7LwJJ8b8qFEEDQssC5+aeVjLhvRICCaS4alh/EVS9JCT1armfJ3pnSS8t4o6659WbMmKVo82H4LuUVw== +jest-resolve-dependencies@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.1.tgz#e9d091a159ad198c029279737a8b4c507791d75c" + integrity sha512-MN6lufbZJ3RBfTnJesZtHu3hUCBqPdHRe2+FhIt0yiqJ3fMgzWRqMRQyN/d/QwOE7KXwAG2ekZutbPhuD7s51A== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" jest-regex-util "^26.0.0" - jest-snapshot "^26.6.0" + jest-snapshot "^26.6.1" -jest-resolve@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" - integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== +jest-resolve@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.1.tgz#e9a9130cc069620d5aeeb87043dd9e130b68c6a1" + integrity sha512-hiHfQH6rrcpAmw9xCQ0vD66SDuU+7ZulOuKwc4jpbmFFsz0bQG/Ib92K+9/489u5rVw0btr/ZhiHqBpmkbCvuQ== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" chalk "^4.0.0" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^26.6.0" + jest-util "^26.6.1" read-pkg-up "^7.0.1" - resolve "^1.17.0" + resolve "^1.18.1" slash "^3.0.0" -jest-runner@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.0.tgz#465a76efc9ec12cfd83a2af3a6cfb695b13a3efe" - integrity sha512-QpeN6pje8PQvFgT+wYOlzeycKd67qAvSw5FgYBiX2cTW+QTiObTzv/k09qRvT09rcCntFxUhy9VB1mgNGFLYIA== +jest-runner@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.1.tgz#a945971b5a23740c1fe20e372a38de668b7c76bf" + integrity sha512-DmpNGdgsbl5s0FGkmsInmqnmqCtliCSnjWA2TFAJS1m1mL5atwfPsf+uoZ8uYQ2X0uDj4NM+nPcDnUpbNTRMBA== dependencies: - "@jest/console" "^26.6.0" - "@jest/environment" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/environment" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.6.0" + jest-config "^26.6.1" jest-docblock "^26.0.0" - jest-haste-map "^26.6.0" - jest-leak-detector "^26.6.0" - jest-message-util "^26.6.0" - jest-resolve "^26.6.0" - jest-runtime "^26.6.0" - jest-util "^26.6.0" - jest-worker "^26.5.0" + jest-haste-map "^26.6.1" + jest-leak-detector "^26.6.1" + jest-message-util "^26.6.1" + jest-resolve "^26.6.1" + jest-runtime "^26.6.1" + jest-util "^26.6.1" + jest-worker "^26.6.1" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.0.tgz#90f80ea5eb0d97a1089120f582fb84bd36ca5491" - integrity sha512-JEz4YGnybFvtN4NLID6lsZf0bcd8jccwjWcG5TRE3fYVnxoX1egTthPjnC4btIwWJ6QaaHhtOQ/E3AGn8iClAw== +jest-runtime@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.1.tgz#9a131e7b4f0bc6beefd62e7443f757c1d5fa9dec" + integrity sha512-7uOCNeezXDWgjEyzYbRN2ViY7xNZzusNVGAMmU0UHRUNXuY4j4GBHKGMqPo/cBPZA9bSYp+lwK2DRRBU5Dv6YQ== dependencies: - "@jest/console" "^26.6.0" - "@jest/environment" "^26.6.0" - "@jest/fake-timers" "^26.6.0" - "@jest/globals" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/environment" "^26.6.1" + "@jest/fake-timers" "^26.6.1" + "@jest/globals" "^26.6.1" "@jest/source-map" "^26.5.0" - "@jest/test-result" "^26.6.0" - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/test-result" "^26.6.1" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" "@types/yargs" "^15.0.0" chalk "^4.0.0" + cjs-module-lexer "^0.4.2" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.6.0" - jest-haste-map "^26.6.0" - jest-message-util "^26.6.0" - jest-mock "^26.6.0" + jest-config "^26.6.1" + jest-haste-map "^26.6.1" + jest-message-util "^26.6.1" + jest-mock "^26.6.1" jest-regex-util "^26.0.0" - jest-resolve "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" + jest-resolve "^26.6.1" + jest-snapshot "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" slash "^3.0.0" strip-bom "^4.0.0" yargs "^15.4.1" @@ -8375,94 +8446,82 @@ jest-serializer@^26.5.0: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.0.tgz#457aa9c1761efc781ac9c02b021a0b21047c6a38" - integrity sha512-mcqJZeIZqxomvBcsaiIbiEe2g7K1UxnUpTwjMoHb+DX4uFGnuZoZ6m28YOYRyCfZsdU9mmq73rNBnEH2atTR4Q== +jest-snapshot@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.1.tgz#469e9d0b749496aea7dad0d7e5e5c88b91cdb4cc" + integrity sha512-JA7bZp7HRTIJYAi85pJ/OZ2eur2dqmwIToA5/6d7Mn90isGEfeF9FvuhDLLEczgKP1ihreBzrJ6Vr7zteP5JNA== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.0.0" chalk "^4.0.0" - expect "^26.6.0" + expect "^26.6.1" graceful-fs "^4.2.4" - jest-diff "^26.6.0" + jest-diff "^26.6.1" jest-get-type "^26.3.0" - jest-haste-map "^26.6.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" - jest-resolve "^26.6.0" + jest-haste-map "^26.6.1" + jest-matcher-utils "^26.6.1" + jest-message-util "^26.6.1" + jest-resolve "^26.6.1" natural-compare "^1.4.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" semver "^7.3.2" -jest-util@^26.1.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e" - integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw== - dependencies: - "@jest/types" "^26.3.0" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-util@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.0.tgz#a81547f6d38738b505c5a594b37d911335dea60f" - integrity sha512-/cUGqcnKeZMjvTQLfJo65nBOEZ/k0RB/8usv2JpfYya05u0XvBmKkIH5o5c4nCh9DD61B1YQjMGGqh1Ha0aXdg== +jest-util@^26.1.0, jest-util@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.1.tgz#4cc0d09ec57f28d12d053887eec5dc976a352e9b" + integrity sha512-xCLZUqVoqhquyPLuDXmH7ogceGctbW8SMyQVjD9o+1+NPWI7t0vO08udcFLVPLgKWcvc+zotaUv/RuaR6l8HIA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" micromatch "^4.0.2" -jest-validate@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.0.tgz#b95e2076cca1a58b183e5bcce2bf43af52eebf10" - integrity sha512-FKHNqvh1Pgs4NWas56gsTPmjcIoGAAzSVUCK1+g8euzuCGbmdEr8LRTtOEFjd29uMZUk0PhzmzKGlHPe6j3UWw== +jest-validate@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.1.tgz#28730eb8570d60968d9d06f1a8c94d922167bd2a" + integrity sha512-BEFpGbylKocnNPZULcnk+TGaz1oFZQH/wcaXlaXABbu0zBwkOGczuWgdLucUouuQqn7VadHZZeTvo8VSFDLMOA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" camelcase "^6.0.0" chalk "^4.0.0" jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-watcher@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.0.tgz#06001c22831583a16f9ccb388ee33316a7f4200f" - integrity sha512-gw5BvcgPi0PKpMlNWQjUet5C5A4JOYrT7gexdP6+DR/f7mRm7wE0o1GqwPwcTsTwo0/FNf9c/kIDXTRaSAYwlw== +jest-watcher@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.1.tgz#debfa34e9c5c3e735593403794fe53d2955bfabc" + integrity sha512-0LBIPPncNi9CaLKK15bnxyd2E8OMl4kJg0PTiNOI+MXztXw1zVdtX/x9Pr6pXaQYps+eS/ts43O4+HByZ7yJSw== dependencies: - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.6.0" + jest-util "^26.6.1" string-length "^4.0.1" -jest-worker@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" - integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== +jest-worker@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" + integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" - integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== +jest@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.1.tgz#821e8280d2bdeeed40ac7bc43941dceff0f1b650" + integrity sha512-f+ahfqw3Ffy+9vA7sWFGpTmhtKEMsNAZiWBVXDkrpIO73zIz22iimjirnV78kh/eWlylmvLh/0WxHN6fZraZdA== dependencies: - "@jest/core" "^26.6.0" + "@jest/core" "^26.6.1" import-local "^3.0.2" - jest-cli "^26.6.0" + jest-cli "^26.6.1" jmespath@0.15.0: version "0.15.0" @@ -9061,7 +9120,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.2.1: +lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.2.1: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -10336,19 +10395,19 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -parcel@2.0.0-nightly.429: - version "2.0.0-nightly.429" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.429.tgz#bf5419d35865685515f9e3b298b345d48f1b9421" - integrity sha512-C5vyjWrOneYMtE+kEoF9bYXfZn+1DbzzhyU0cXU8wbO9lYrJNnrNS97SXzd9AgeGd2IcXF8GOZtvDtSaglEG1w== - dependencies: - "@parcel/config-default" "2.0.0-nightly.431+296bc57f" - "@parcel/core" "2.0.0-nightly.429+296bc57f" - "@parcel/diagnostic" "2.0.0-nightly.431+296bc57f" - "@parcel/events" "2.0.0-nightly.431+296bc57f" - "@parcel/fs" "2.0.0-nightly.431+296bc57f" - "@parcel/logger" "2.0.0-nightly.431+296bc57f" - "@parcel/package-manager" "2.0.0-nightly.431+296bc57f" - "@parcel/utils" "2.0.0-nightly.431+296bc57f" +parcel@2.0.0-nightly.432: + version "2.0.0-nightly.432" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-nightly.432.tgz#97df939b3808bd96000150892be0004b237d13ee" + integrity sha512-N0PAnhXgtBVC3cJZxqD33yw3T5Njdb6+nqzZ7SXaVfgrxmhBw1JjOHeCqovkNEwUypMDISN/+5DAnTDuvaviCA== + dependencies: + "@parcel/config-default" "2.0.0-nightly.434+146cffb6" + "@parcel/core" "2.0.0-nightly.432+146cffb6" + "@parcel/diagnostic" "2.0.0-nightly.434+146cffb6" + "@parcel/events" "2.0.0-nightly.434+146cffb6" + "@parcel/fs" "2.0.0-nightly.434+146cffb6" + "@parcel/logger" "2.0.0-nightly.434+146cffb6" + "@parcel/package-manager" "2.0.0-nightly.434+146cffb6" + "@parcel/utils" "2.0.0-nightly.434+146cffb6" chalk "^2.1.0" commander "^2.19.0" get-port "^4.2.0" @@ -11042,6 +11101,16 @@ pretty-format@^26.0.0, pretty-format@^26.6.0: ansi-styles "^4.0.0" react-is "^16.12.0" +pretty-format@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.1.tgz#af9a2f63493a856acddeeb11ba6bcf61989660a8" + integrity sha512-MeqqsP5PYcRBbGMvwzsyBdmAJ4EFX7pWFyl7x4+dMVg5pE0ZDdBIvEH2ergvIO+Gvwv1wh64YuOY9y5LuyY/GA== + dependencies: + "@jest/types" "^26.6.1" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + 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" @@ -11292,6 +11361,11 @@ react-is@^16.12.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + react-refresh@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.6.0.tgz#81971b8f3c8c05aaa6ce87491ae41b396133f896" @@ -11684,6 +11758,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13 dependencies: path-parse "^1.0.6" +resolve@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -13028,11 +13110,12 @@ trivial-deferred@^1.0.1: resolved "https://registry.yarnpkg.com/trivial-deferred/-/trivial-deferred-1.0.1.tgz#376d4d29d951d6368a6f7a0ae85c2f4d5e0658f3" integrity sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM= -ts-jest@^26.4.1: - version "26.4.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.1.tgz#08ec0d3fc2c3a39e4a46eae5610b69fafa6babd0" - integrity sha512-F4aFq01aS6mnAAa0DljNmKr/Kk9y4HVZ1m6/rtJ0ED56cuxINGq3Q9eVAh+z5vcYKe5qnTMvv90vE8vUMFxomg== +ts-jest@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.2.tgz#00b6c970bee202ceef7c6e6e9805c4837b22dab8" + integrity sha512-0+MynTTzzbuy5rGjzsCKjxHJk5gY906c/FSaqQ3081+G7dp2Yygfa9hVlbrtNNcztffh1mC6Rs9jb/yHpcjsoQ== dependencies: + "@jest/create-cache-key-function" "^26.5.0" "@types/jest" "26.x" bs-logger "0.x" buffer-from "1.x"