From 8b279070050ebfeb36a84b4dd9d64fea2402c845 Mon Sep 17 00:00:00 2001 From: Tati Date: Sun, 9 Jun 2024 02:56:36 +0200 Subject: [PATCH] Add Aws CDK and Update Readme file --- README.md | 131 +++++++- cdk_dest/.gitignore | 342 +++++++++++++++++++++ cdk_dest/README.md | 14 + cdk_dest/cdk.json | 70 +++++ cdk_dest/src/CdkDest/CdkDest.csproj | 20 ++ cdk_dest/src/CdkDest/CdkDestStack.cs | 82 +++++ cdk_dest/src/CdkDest/GlobalSuppressions.cs | 1 + cdk_dest/src/CdkDest/Program.cs | 23 ++ img.png | Bin 0 -> 77499 bytes package-lock.json | 137 +++++++-- package.json | 4 +- src/components/MainLayout/MainLayout.tsx | 4 +- 12 files changed, 779 insertions(+), 49 deletions(-) create mode 100644 cdk_dest/.gitignore create mode 100644 cdk_dest/README.md create mode 100644 cdk_dest/cdk.json create mode 100644 cdk_dest/src/CdkDest/CdkDest.csproj create mode 100644 cdk_dest/src/CdkDest/CdkDestStack.cs create mode 100644 cdk_dest/src/CdkDest/GlobalSuppressions.cs create mode 100644 cdk_dest/src/CdkDest/Program.cs create mode 100644 img.png diff --git a/README.md b/README.md index e9c970196..c1d5c3fe0 100644 --- a/README.md +++ b/README.md @@ -56,15 +56,122 @@ Runs linting and formatting for all files in `src` folder. [Cloud Front](https://d2zyxqnb5qq3f8.cloudfront.net/) 3) AWS CLI commands: -- aws --version -- aws s3 ls -- aws s3api get-bucket-policy --bucket shop-web-app -- aws cloudfront list-distributions -- curl -o NUL -s -w "Total: %{time_total}s\n" https://d2zyxqnb5qq3f8.cloudfront.net -Total: 0.124938s -- curl -o NUL -s -w "Total: %{time_total}s\n" https://shop-web-app.s3.eu-central-1.amazonaws.com/index.html -Total: 0.177813s -- curl -o $null -s -w "Total: %{time_total}s`n" https://d2zyxqnb5qq3f8.cloudfront.net -Total: 0.036126s`n -- curl -o $null -s -w "Total: %{time_total}s`n" https://shop-web-app.s3.eu-central-1.amazonaws.com/index.html -Total: 0.126337s`n +```sh +`aws --version` +`aws s3 ls` +`aws s3api get-bucket-policy --bucket shop-web-app` +`aws cloudfront list-distributions` +``` +```sh +curl -o NUL -s -w "Total: %{time_total}s\n" https://d2zyxqnb5qq3f8.cloudfront.net +# Total: 0.124938s + +curl -o NUL -s -w "Total: %{time_total}s\n" https://shop-web-app.s3.eu-central-1.amazonaws.com/index.html +# Total: 0.177813s + +curl -o $null -s -w "Total: %{time_total}s\n" https://d2zyxqnb5qq3f8.cloudfront.net +# Total: 0.036126s + +curl -o $null -s -w "Total: %{time_total}s\n" https://shop-web-app.s3.eu-central-1.amazonaws.com/index.html +# Total: 0.126337s +``` + +# Task 2.2 + +Used [AWS CDK](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html) +1) Created new folder, for example 'cdk' +2) Installed +* `npm install -g aws-cdk` +3) Configured +* `cdk init app --language csharp` +* `cdk bootstrap` or `cdk bootstrap aws://ID/REGION` + ( + delete options: + * `aws cloudformation describe-stacks` + * `aws cloudformation delete-stack --stack-name CdkStackLayerStack_NAMES` + * `aws cloudformation delete-stack --stack-name CDKToolkit` + * `npm uninstall -g aws-cdk` +) +4) Added new options to CdkStack.cs and Program.cs +# core for AWS CDK (Program.cs) +```csharp +public static void Main(string[] args) +{ + var app = new App(); + new CdkStack(app, "CdkStack", new StackProps + { + Env = new Environment + { + Account = "ACCOUNT_ID", + Region = "eu-central-1", + } + }); + app.Synth(); +} +``` +# CdkStack.cs +```csharp +internal CdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) +{ + // Create the S3 bucket + var bucket = new Bucket(this, $"{BucketId}-bucket", new BucketProps + { + ... + }); + + var oai = new OriginAccessIdentity(this, "OAI"); + + // Create an IAM policy statement to allow GetObject action on the S3 bucket + var bucketPolicyStatement = new PolicyStatement(new PolicyStatementProps + { + ... + }); + + bucket.AddToResourcePolicy(bucketPolicyStatement); + + // Create CloudFront distribution + var distribution = new CloudFrontWebDistribution(this, $"{BucketId}-distribution", new CloudFrontWebDistributionProps + { + OriginConfigs = new[] + { + ... + } + }); + + // Deploy files to the S3 bucket + new BucketDeployment(this, $"{BucketId}-deployment", new BucketDeploymentProps + { + ... + }); + + // Export CloudFront distribution ID + new CfnOutput(this, "DistributionURL", new CfnOutputProps + { + Value = distribution.DistributionDomainName, + Description = "CloudFront distribution" + }); + + // Output S3 bucket URL + new CfnOutput(this, "BucketURL", new CfnOutputProps + { + Value = bucket.BucketWebsiteUrl, + Description = "The URL of the S3 bucket website endpoint" + }); +} +``` + +5) Builded C# project +* `dotnet build src` compile this app +* `cdk deploy` deploy this stack to your default AWS account/region +* `cdk diff` compare deployed stack with current state +* `cdk synth` emits the synthesized CloudFormation template +6) Added options to package.json: + "scripts": { + "cdk-deploy": "cdk deploy --app \"cdk_dest/cdk.out\"", + "deploy": "npm run build && npm run cdk-deploy" + } +7) Result of operation 'cdk deploy --all' +[Settings] (img.png) +8) Checked links: +[S3 bucket link](http://shop-web-app-automated.s3-website.eu-central-1.amazonaws.com/) - the 403 error should be shown +[Cloud Front link](https://dfmqzjmg0ul9o.cloudfront.net/) - should be available. diff --git a/cdk_dest/.gitignore b/cdk_dest/.gitignore new file mode 100644 index 000000000..a4609e758 --- /dev/null +++ b/cdk_dest/.gitignore @@ -0,0 +1,342 @@ +# CDK asset staging directory +.cdk.staging +cdk.out + +# Created by https://www.gitignore.io/api/csharp + +### Csharp ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + + +# End of https://www.gitignore.io/api/csharp \ No newline at end of file diff --git a/cdk_dest/README.md b/cdk_dest/README.md new file mode 100644 index 000000000..f28e4d553 --- /dev/null +++ b/cdk_dest/README.md @@ -0,0 +1,14 @@ +# Welcome to your CDK C# project! + +This is a blank project for CDK development with C#. + +The `cdk.json` file tells the CDK Toolkit how to execute your app. + +It uses the [.NET CLI](https://docs.microsoft.com/dotnet/articles/core/) to compile and execute your project. + +## Useful commands + +* `dotnet build src` compile this app +* `cdk deploy` deploy this stack to your default AWS account/region +* `cdk diff` compare deployed stack with current state +* `cdk synth` emits the synthesized CloudFormation template \ No newline at end of file diff --git a/cdk_dest/cdk.json b/cdk_dest/cdk.json new file mode 100644 index 000000000..8bf662071 --- /dev/null +++ b/cdk_dest/cdk.json @@ -0,0 +1,70 @@ +{ + "app": "dotnet run --project src/CdkDest/CdkDest.csproj", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "src/*/obj", + "src/*/bin", + "src/*.sln", + "src/*/GlobalSuppressions.cs", + "src/*/*.csproj" + ] + }, + "context": { + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, + "@aws-cdk/core:checkSecretUsage": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ], + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true, + "@aws-cdk/aws-iam:minimizePolicies": true, + "@aws-cdk/core:validateSnapshotRemovalPolicy": true, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": true, + "@aws-cdk/core:enablePartitionLiterals": true, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true, + "@aws-cdk/aws-iam:standardizedServicePrincipals": true, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true, + "@aws-cdk/aws-route53-patters:useCertificate": true, + "@aws-cdk/customresources:installLatestAwsSdkDefault": false, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true, + "@aws-cdk/aws-redshift:columnId": true, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true, + "@aws-cdk/aws-kms:aliasNameRef": true, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": true, + "@aws-cdk/aws-efs:denyAnonymousAccess": true, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true, + "@aws-cdk/aws-eks:nodegroupNameAttribute": true, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false + } +} diff --git a/cdk_dest/src/CdkDest/CdkDest.csproj b/cdk_dest/src/CdkDest/CdkDest.csproj new file mode 100644 index 000000000..7e6fe37b5 --- /dev/null +++ b/cdk_dest/src/CdkDest/CdkDest.csproj @@ -0,0 +1,20 @@ + + + + Exe + net6.0 + + Major + + + + + + + + + + + diff --git a/cdk_dest/src/CdkDest/CdkDestStack.cs b/cdk_dest/src/CdkDest/CdkDestStack.cs new file mode 100644 index 000000000..dca0028ef --- /dev/null +++ b/cdk_dest/src/CdkDest/CdkDestStack.cs @@ -0,0 +1,82 @@ +using Amazon.CDK; +using Amazon.CDK.AWS.CloudFront; +using Amazon.CDK.AWS.IAM; +using Amazon.CDK.AWS.S3.Deployment; +using Amazon.CDK.AWS.S3; +using Constructs; + +namespace Cdk +{ + public class CdkStack : Stack + { + private const string BucketId = "shop-web-app"; + + internal CdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) + { + // Create the S3 bucket + var bucket = new Bucket(this, $"{BucketId}-bucket", new BucketProps + { + BucketName = $"{BucketId}-automated", + WebsiteIndexDocument = "index.html", + RemovalPolicy = RemovalPolicy.DESTROY, + AutoDeleteObjects = true, + PublicReadAccess = false, + BlockPublicAccess = BlockPublicAccess.BLOCK_ALL + }); + + var oai = new OriginAccessIdentity(this, "OAI"); + + // Create an IAM policy statement to allow GetObject action on the S3 bucket + var bucketPolicyStatement = new PolicyStatement(new PolicyStatementProps + { + Actions = new[] { "s3:GetObject" }, + Resources = new[] { bucket.BucketArn + "/*" }, + Effect = Effect.ALLOW, + Principals = new[] { new CanonicalUserPrincipal(oai.CloudFrontOriginAccessIdentityS3CanonicalUserId) } + }); + + bucket.AddToResourcePolicy(bucketPolicyStatement); + + // Create CloudFront distribution + var distribution = new CloudFrontWebDistribution(this, $"{BucketId}-distribution", new CloudFrontWebDistributionProps + { + OriginConfigs = new[] + { + new SourceConfiguration + { + S3OriginSource = new S3OriginConfig + { + S3BucketSource = bucket, + OriginAccessIdentity = new OriginAccessIdentity(this, $"{BucketId}-oai") + }, + Behaviors = new[] { new Behavior { IsDefaultBehavior = true } } + } + } + }); + + // Deploy files to the S3 bucket + new BucketDeployment(this, $"{BucketId}-deployment", new BucketDeploymentProps + { + Sources = new[] { Source.Asset("../dist") }, + DestinationBucket = bucket, + Distribution = distribution, + DistributionPaths = new[] { "/*" } + }); + + // Export CloudFront distribution ID + new CfnOutput(this, "DistributionURL", new CfnOutputProps + { + Value = distribution.DistributionDomainName, + Description = "CloudFront distribution" + }); + + // Output S3 bucket URL + new CfnOutput(this, "BucketURL", new CfnOutputProps + { + Value = bucket.BucketWebsiteUrl, + Description = "The URL of the S3 bucket website endpoint" + }); + } + } +} + diff --git a/cdk_dest/src/CdkDest/GlobalSuppressions.cs b/cdk_dest/src/CdkDest/GlobalSuppressions.cs new file mode 100644 index 000000000..26233fcb5 --- /dev/null +++ b/cdk_dest/src/CdkDest/GlobalSuppressions.cs @@ -0,0 +1 @@ +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Potential Code Quality Issues", "RECS0026:Possible unassigned object created by 'new'", Justification = "Constructs add themselves to the scope in which they are created")] diff --git a/cdk_dest/src/CdkDest/Program.cs b/cdk_dest/src/CdkDest/Program.cs new file mode 100644 index 000000000..4617ea662 --- /dev/null +++ b/cdk_dest/src/CdkDest/Program.cs @@ -0,0 +1,23 @@ +using Amazon.CDK; + +namespace Cdk +{ + sealed class Program + { + public static void Main(string[] args) + { + var app = new App(); + new CdkStack(app, "CdkStack", new StackProps + { + // For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html + + Env = new Environment + { + Account = "851725229611", + Region = "eu-central-1", + } + }); + app.Synth(); + } + } +} \ No newline at end of file diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..e68b83ea433c0b1666d29b303bb8186485479a45 GIT binary patch literal 77499 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 Xse0oB3GXt0?gUd~tBYku*Y5uhdjm=6.9.0" } @@ -83,6 +85,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -112,6 +115,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -120,6 +124,7 @@ "version": "7.18.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "dev": true, "dependencies": { "@babel/types": "^7.18.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -133,6 +138,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -158,6 +164,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "dev": true, "dependencies": { "@babel/compat-data": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -175,6 +182,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -183,6 +191,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -191,6 +200,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "dev": true, "dependencies": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.6" @@ -203,6 +213,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -225,6 +236,7 @@ "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", + "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", @@ -251,6 +263,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -262,6 +275,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -281,6 +295,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -289,6 +304,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "dev": true, "dependencies": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.6", @@ -315,6 +331,7 @@ "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", + "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -415,6 +432,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.6", @@ -428,6 +446,7 @@ "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.7", @@ -677,6 +696,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -689,6 +709,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -697,6 +718,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -704,12 +726,14 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2067,6 +2091,7 @@ "version": "4.21.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -2192,6 +2217,7 @@ "version": "1.0.30001363", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -2502,6 +2528,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -2656,7 +2683,8 @@ "node_modules/electron-to-chromium": { "version": "1.4.185", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", - "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==" + "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -3106,6 +3134,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, "engines": { "node": ">=6" } @@ -3935,6 +3964,7 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -4022,6 +4052,7 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "engines": { "node": ">=4" } @@ -4972,6 +5003,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -5000,6 +5032,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -5410,7 +5443,8 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/msw": { "version": "0.43.1", @@ -5623,7 +5657,8 @@ "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", @@ -6025,7 +6060,8 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -7043,6 +7079,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -7476,6 +7513,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -7492,12 +7530,14 @@ "@babel/compat-data": { "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true }, "@babel/core": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -7519,7 +7559,8 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -7527,6 +7568,7 @@ "version": "7.18.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "dev": true, "requires": { "@babel/types": "^7.18.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -7537,6 +7579,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -7558,6 +7601,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "dev": true, "requires": { "@babel/compat-data": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -7568,19 +7612,22 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, "@babel/helper-environment-visitor": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==" + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "dev": true }, "@babel/helper-function-name": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "dev": true, "requires": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.6" @@ -7590,6 +7637,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -7606,6 +7654,7 @@ "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", + "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", @@ -7626,6 +7675,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -7634,6 +7684,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -7646,12 +7697,14 @@ "@babel/helper-validator-option": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true }, "@babel/helpers": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "dev": true, "requires": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.6", @@ -7671,7 +7724,8 @@ "@babel/parser": { "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==" + "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", + "dev": true }, "@babel/plugin-syntax-jsx": { "version": "7.18.6", @@ -7733,6 +7787,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.6", @@ -7743,6 +7798,7 @@ "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", + "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.7", @@ -7942,6 +7998,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -7950,22 +8007,26 @@ "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true }, "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, "@jridgewell/trace-mapping": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -8113,8 +8174,7 @@ "@mui/types": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", - "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", - "requires": {} + "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==" }, "@mui/utils": { "version": "5.8.6", @@ -8369,8 +8429,7 @@ "version": "14.2.1", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.2.1.tgz", "integrity": "sha512-HOr1QiODrq+0j9lKU5i10y9TbhxMBMRMGimNx10asdmau9cb8Xb1Vyg0GvTwyIL2ziQyh2kAloOtAQFBQVuecA==", - "dev": true, - "requires": {} + "dev": true }, "@tootallnate/once": { "version": "2.0.0", @@ -8677,8 +8736,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "7.2.0", @@ -8903,6 +8961,7 @@ "version": "4.21.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "dev": true, "requires": { "caniuse-lite": "^1.0.30001359", "electron-to-chromium": "^1.4.172", @@ -8981,7 +9040,8 @@ "caniuse-lite": { "version": "1.0.30001363", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==" + "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "dev": true }, "chai": { "version": "4.3.6", @@ -9226,6 +9286,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -9342,7 +9403,8 @@ "electron-to-chromium": { "version": "1.4.185", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", - "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==" + "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==", + "dev": true }, "emoji-regex": { "version": "8.0.0", @@ -9586,7 +9648,8 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true }, "escape-string-regexp": { "version": "4.0.0", @@ -9792,8 +9855,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-prettier": { "version": "4.2.1", @@ -10185,7 +10247,8 @@ "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true }, "get-caller-file": { "version": "2.0.5", @@ -10245,7 +10308,8 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true }, "globby": { "version": "11.1.0", @@ -10932,7 +10996,8 @@ "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true }, "json-parse-even-better-errors": { "version": "2.3.1", @@ -10954,7 +11019,8 @@ "json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "jss": { "version": "10.9.0", @@ -11272,7 +11338,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "msw": { "version": "0.43.1", @@ -11426,7 +11493,8 @@ "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true }, "normalize-path": { "version": "3.0.0", @@ -11716,7 +11784,8 @@ "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "picomatch": { "version": "2.3.1", @@ -12437,6 +12506,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -12636,8 +12706,7 @@ "version": "8.8.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "dev": true, - "requires": {} + "dev": true }, "xml-name-validator": { "version": "4.0.0", diff --git a/package.json b/package.json index 632fd8370..13ff409a8 100755 --- a/package.json +++ b/package.json @@ -10,7 +10,9 @@ "test:ui": "vitest --ui", "test:coverage": "vitest run --coverage", "lint": "eslint --ignore-path .gitignore --fix src", - "prettier": "prettier src --write" + "prettier": "prettier src --write", + "cdk-deploy": "cdk deploy --app \"cdk_dest/cdk.out\"", + "deploy": "npm run build && npm run cdk-deploy" }, "dependencies": { "@emotion/react": "^11.9.3", diff --git a/src/components/MainLayout/MainLayout.tsx b/src/components/MainLayout/MainLayout.tsx index ec679471c..5cbaf6f57 100755 --- a/src/components/MainLayout/MainLayout.tsx +++ b/src/components/MainLayout/MainLayout.tsx @@ -10,7 +10,7 @@ function Copyright() { {"Copyright © "} - My Store + My Test Store {" "} {new Date().getFullYear()} {"."} @@ -37,7 +37,7 @@ const MainLayout: React.FC<{ children: React.ReactNode }> = ({ children }) => { color="textSecondary" component="p" > - Thank you for your purchase! + Test! Thank you for your purchase!