From 46cd658e7e9c39755a8bfa2e86402ea4a9f6373e Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Wed, 22 May 2024 01:01:04 +0200 Subject: [PATCH] init --- .gitignore | 8 + README.md | 57 +- bin/literal.ts | 26 + cdk.json | 70 + docs/AWS.png | Bin 0 -> 205676 bytes jest.config.js | 8 + lib/data-stack.ts | 61 + lib/ecs-stack.ts | 123 ++ lib/network-stack.ts | 109 ++ literal.container.env | 9 + package-lock.json | 4149 +++++++++++++++++++++++++++++++++++++++++ package.json | 27 + tsconfig.json | 31 + 13 files changed, 4677 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 bin/literal.ts create mode 100644 cdk.json create mode 100644 docs/AWS.png create mode 100644 jest.config.js create mode 100644 lib/data-stack.ts create mode 100644 lib/ecs-stack.ts create mode 100644 lib/network-stack.ts create mode 100644 literal.container.env create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4bdca62 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.js +!jest.config.js +*.d.ts +node_modules + +# CDK asset staging directory +.cdk.staging +cdk.out \ No newline at end of file diff --git a/README.md b/README.md index 99ab7d5..df93195 100644 --- a/README.md +++ b/README.md @@ -1 +1,56 @@ -# literal-on-aws \ No newline at end of file +# LiteralAI on AWS + +![AWS](./docs/AWS.png) + +## Prerequisites + +- Node.js 14.15.0 or later + +## Setup + +1. Clone this repository +2. [Create an AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#sign-up-for-aws) +3. [Install AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) +4. [Configure AWS CLI](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_auth) `aws configure` +5. `npm install` to install the required dependencies +6. [Bootstrap](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) your environment `cdk bootstrap aws://ACCOUNT-NUMBER/REGION` + +- `aws sts get-caller-identity` to get your AWS account number +- `aws configure get region` to get your AWS region + +## Deploy + +7. [Get your Docker Personal Access Token (PAT)](https://docs.getliteral.ai/self-hosting/get-started) +8. Deploy the infra: `npx cdk deploy --all --parameters EcsStack:dockerPat=LITERAL_DOCKER_PAT` + +You should now be able to see the Literal sign in page. + +## Configure HTTPs + +AWS load balancers are not using HTTPs by default. To enable HTTPs (best practice and needed for OAuth): + +1. Create a certificate on AWS (you will have to update your domain DNS) +2. Add an HTTPs listener to the load balancer using that certificate +3. Allow port 443 in the security group +4. Add a CNAME record redirecting your subdomain to the Load Balancer public URL. + +You should now be able to access Literal with HTTPs through your subdomain. + +## Setup OAuth + +Create a new task revision with `NEXTAUTH_URL` set to your HTTPs endpoint (like `https://literalai.mydomain.com`). + +Then add the required [env variables](https://docs.getliteral.ai/self-hosting/deployment#provider-specific) specific to your OAuth provider. + +Do not forget to allow the OAuth redirect url on your OAuth provider (like `https://literalai.mydomain.com/api/auth/callback/google`) + +Finally, update your container with the latest revision. + +## AWS CDK Useful commands + +- `npm run build` compile typescript to js +- `npm run watch` watch for changes and compile +- `npm run test` perform the jest unit tests +- `npx cdk deploy` deploy this stack to your default AWS account/region +- `npx cdk diff` compare deployed stack with current state +- `npx cdk synth` emits the synthesized CloudFormation template diff --git a/bin/literal.ts b/bin/literal.ts new file mode 100644 index 0000000..cdcfa46 --- /dev/null +++ b/bin/literal.ts @@ -0,0 +1,26 @@ +#!/usr/bin/env node +import 'source-map-support/register'; +import * as cdk from 'aws-cdk-lib'; +import { NetworkStack } from '../lib/network-stack'; +import { EcsStack } from '../lib/ecs-stack'; +import { DataStack } from '../lib/data-stack'; + +const app = new cdk.App(); + +const networkStack = new NetworkStack(app, 'NetworkStack', {}); + +const dataStack = new DataStack(app, 'DataStack', { + vpc: networkStack.vpc, + dataSecurityGroup: networkStack.dataSecurityGroup, + elasticacheSubnetGroup: networkStack.elasticacheSubnetGroup, +}); + +new EcsStack(app, 'EcsStack', { + vpc: networkStack.vpc, + ecsSecurityGroup: networkStack.ecsSecurityGroup, + alb: networkStack.alb, + bucket: dataStack.bucket, + cache: dataStack.cache, + db: dataStack.db, + listener: networkStack.listener, +}); diff --git a/cdk.json b/cdk.json new file mode 100644 index 0000000..a88bc5d --- /dev/null +++ b/cdk.json @@ -0,0 +1,70 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/literal.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "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 + } +} diff --git a/docs/AWS.png b/docs/AWS.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0b1c5c802fdf002038f4327e03d48b5f8d537d GIT binary patch literal 205676 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 Nq<>s5?|}W~{{zQ#m1+P0 literal 0 HcmV?d00001 diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..08263b8 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,8 @@ +module.exports = { + testEnvironment: 'node', + roots: ['/test'], + testMatch: ['**/*.test.ts'], + transform: { + '^.+\\.tsx?$': 'ts-jest' + } +}; diff --git a/lib/data-stack.ts b/lib/data-stack.ts new file mode 100644 index 0000000..7754a49 --- /dev/null +++ b/lib/data-stack.ts @@ -0,0 +1,61 @@ +import * as cdk from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as rds from 'aws-cdk-lib/aws-rds'; +import * as elasticache from 'aws-cdk-lib/aws-elasticache'; +import * as s3 from 'aws-cdk-lib/aws-s3'; + +interface DataStackProps extends cdk.StackProps { + vpc: ec2.Vpc; + dataSecurityGroup: ec2.SecurityGroup; + elasticacheSubnetGroup: elasticache.CfnSubnetGroup; +} + +export class DataStack extends cdk.Stack { + public readonly bucket: s3.Bucket; + public readonly cache: elasticache.CfnCacheCluster; + public readonly db: rds.DatabaseInstance; + + constructor(scope: Construct, id: string, props: DataStackProps) { + super(scope, id, props); + + const db = new rds.DatabaseInstance(this, 'Database', { + engine: rds.DatabaseInstanceEngine.postgres({ + version: rds.PostgresEngineVersion.VER_16_2 + }), + instanceType: new ec2.InstanceType('t3.micro'), + vpc: props.vpc, + vpcSubnets: props.vpc.selectSubnets({subnetGroupName: 'data'}), + databaseName: 'platform', + credentials: rds.Credentials.fromGeneratedSecret('literalai'), + deletionProtection: true, + allocatedStorage: 100, + securityGroups: [props.dataSecurityGroup] + }); + + // Elasticache + const cache = new elasticache.CfnCacheCluster(this, 'Cache', { + cacheNodeType: 'cache.t3.micro', + engine: 'redis', + numCacheNodes: 1, + cacheSubnetGroupName: props.elasticacheSubnetGroup.ref, + vpcSecurityGroupIds: [props.dataSecurityGroup.securityGroupId] + }); + + // S3 + const bucket = new s3.Bucket(this, 'Bucket', { + removalPolicy: cdk.RemovalPolicy.DESTROY, + cors: [ + { + allowedOrigins: ['*'], + allowedMethods: [s3.HttpMethods.GET, s3.HttpMethods.POST], + allowedHeaders: ['*'], + } + ], + }); + + this.bucket = bucket; + this.cache = cache; + this.db = db; + } +} diff --git a/lib/ecs-stack.ts b/lib/ecs-stack.ts new file mode 100644 index 0000000..0c45719 --- /dev/null +++ b/lib/ecs-stack.ts @@ -0,0 +1,123 @@ +import * as cdk from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as ecs from 'aws-cdk-lib/aws-ecs'; +import { ApplicationLoadBalancer, ApplicationProtocol, ApplicationListener } from 'aws-cdk-lib/aws-elasticloadbalancingv2'; +import { Secret } from 'aws-cdk-lib/aws-secretsmanager'; +import * as rds from 'aws-cdk-lib/aws-rds'; +import * as elasticache from 'aws-cdk-lib/aws-elasticache'; +import * as s3 from 'aws-cdk-lib/aws-s3'; +import { PolicyStatement } from 'aws-cdk-lib/aws-iam'; + +interface EcsStackProps extends cdk.StackProps { + vpc: ec2.Vpc; + ecsSecurityGroup: ec2.SecurityGroup; + alb: ApplicationLoadBalancer; + bucket: s3.Bucket; + cache: elasticache.CfnCacheCluster; + db: rds.DatabaseInstance; + listener: ApplicationListener; +} + +export class EcsStack extends cdk.Stack { + constructor(scope: Construct, id: string, props: EcsStackProps) { + super(scope, id, props); + + const literalDockerPat = new cdk.CfnParameter(this, 'dockerPat', { + type: 'String', + description: 'Dockerhub token for Literalai', + }).valueAsString; + + // Secrets + const secret = new Secret(this, 'LiteralaiDockerhub', { + secretStringValue: cdk.SecretValue.unsafePlainText(JSON.stringify({ + username: 'literalai', + password: literalDockerPat + })) + }); + + const nextAuthSecret = new Secret(this, 'NextAuthSecret', { + generateSecretString: { + excludePunctuation: true, + }, + }); + + const cluster = new ecs.Cluster(this, 'Cluster', { vpc: props.vpc }); + + const task = new ecs.FargateTaskDefinition(this, 'task', { + memoryLimitMiB: 2048, + cpu: 1024, + }); + + task.addToTaskRolePolicy(new PolicyStatement({ + actions: ['s3:*'], + resources: [props.bucket.bucketArn] + })); + + task.addToExecutionRolePolicy(new PolicyStatement({ + actions: ['s3:*'], + resources: ['*'] + })); + + const service = new ecs.FargateService(this, 'Service', { + cluster: cluster, + assignPublicIp: true, + vpcSubnets: props.vpc.selectSubnets({subnetGroupName: 'application'}), + taskDefinition: task, + desiredCount: 1, + capacityProviderStrategies: [{ + capacityProvider: 'FARGATE', + weight: 1 + }], + enableExecuteCommand: true, + securityGroups: [props.ecsSecurityGroup], + circuitBreaker: { + rollback: true + } + }); + + const logging = new ecs.AwsLogDriver({ streamPrefix: "service" }) + + const dbSecret = Secret.fromSecretNameV2(this, 'DBSecret', props.db.secret?.secretName || ''); + + const backend = task.addContainer('backend', { + image: ecs.ContainerImage.fromRegistry('docker.io/literalai/platform:latest', { + credentials: secret + }), + portMappings: [{ + containerPort: 3000 + }], + logging, + environment: { + REDIS_URL: `redis://${props.cache.attrRedisEndpointAddress}:${props.cache.attrRedisEndpointPort}`, + DATABASE_SSL: 'true', + BUCKET_NAME: props.bucket.bucketName, + NEXTAUTH_URL: `http://${props.alb.loadBalancerDnsName}`, + }, + environmentFiles: [ + ecs.EnvironmentFile.fromAsset('./literal.container.env') + ], + secrets: { + DATABASE_HOST: ecs.Secret.fromSecretsManager(dbSecret, 'host'), + DATABASE_PORT: ecs.Secret.fromSecretsManager(dbSecret, 'port'), + DATABASE_NAME: ecs.Secret.fromSecretsManager(dbSecret, 'dbname'), + DATABASE_USERNAME: ecs.Secret.fromSecretsManager(dbSecret, 'username'), + DATABASE_PASSWORD: ecs.Secret.fromSecretsManager(dbSecret, 'password'), + NEXTAUTH_SECRET: ecs.Secret.fromSecretsManager(nextAuthSecret), + } + }); + + props.listener.addTargets('Service', { + port: 3000, + protocol: ApplicationProtocol.HTTP, + targets: [service], + healthCheck: { + path: '/', + interval: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(5), + } + }); + + new cdk.CfnOutput(this, 'AlbDnsName', { value: `http://${props.alb.loadBalancerDnsName}` }); + } +} diff --git a/lib/network-stack.ts b/lib/network-stack.ts new file mode 100644 index 0000000..ccd3ef7 --- /dev/null +++ b/lib/network-stack.ts @@ -0,0 +1,109 @@ +import * as cdk from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import { ApplicationLoadBalancer, ApplicationListener } from 'aws-cdk-lib/aws-elasticloadbalancingv2'; +import * as elasticache from 'aws-cdk-lib/aws-elasticache'; + +export class NetworkStack extends cdk.Stack { + public readonly vpc: ec2.Vpc; + public readonly elasticacheSubnetGroup: elasticache.CfnSubnetGroup; + + public readonly albSecurityGroup: ec2.SecurityGroup; + public readonly ecsSecurityGroup: ec2.SecurityGroup; + public readonly dataSecurityGroup: ec2.SecurityGroup; + + public readonly alb: ApplicationLoadBalancer; + public readonly listener: ApplicationListener; + + constructor(scope: Construct, id: string, props?: cdk.StackProps) { + super(scope, id, props); + + const vpc = new ec2.Vpc(this, 'Vpc', { + ipAddresses: ec2.IpAddresses.cidr('172.31.0.0/16'), + maxAzs: 3, + natGateways: 0, + flowLogs: { + VPC: { + destination: ec2.FlowLogDestination.toCloudWatchLogs(), + trafficType: ec2.FlowLogTrafficType.ALL + } + }, + subnetConfiguration: [ + { + cidrMask: 20, + name: 'public', + subnetType: ec2.SubnetType.PUBLIC, + }, + { + cidrMask: 20, + name: 'application', + subnetType: ec2.SubnetType.PUBLIC, + }, + { + cidrMask: 20, + name: 'data', + subnetType: ec2.SubnetType.PRIVATE_ISOLATED, + }, + ], + }); + + const elasticacheSubnetGroup = new elasticache.CfnSubnetGroup(this, 'ElasticacheSubnetGroup', { + subnetIds: vpc.selectSubnets({subnetGroupName: 'data'}).subnetIds, + description: 'Subnet group for redis', + }) + + + // ALB security group + const albSecurityGroup = new ec2.SecurityGroup(this, 'AlbSecurityGroup', { + vpc, + allowAllOutbound: true, + securityGroupName: 'AlbSecurityGroup', + }); + + albSecurityGroup.addIngressRule(albSecurityGroup, ec2.Port.tcp(80), 'HTTP'); + + // ECS security group + const ecsSecurityGroup = new ec2.SecurityGroup(this, 'EcsSecurityGroup', { + vpc, + allowAllOutbound: true, + securityGroupName: 'EcsSecurityGroup', + }); + + ecsSecurityGroup.addIngressRule(albSecurityGroup, ec2.Port.tcp(3000), 'ECS'); + + // Data security group + const dataSecurityGroup = new ec2.SecurityGroup(this, 'DataSecurityGroup', { + vpc, + allowAllOutbound: true, + securityGroupName: 'DataSecurityGroup', + }); + + dataSecurityGroup.addIngressRule(ecsSecurityGroup, ec2.Port.tcp(5432), 'Postgres'); + dataSecurityGroup.addIngressRule(ecsSecurityGroup, ec2.Port.tcp(6379), 'Redis'); + dataSecurityGroup.addIngressRule(ecsSecurityGroup, ec2.Port.tcp(6380), 'Redis'); + + // Application Load Balancer + const alb = new ApplicationLoadBalancer(this, 'ALB', { + loadBalancerName: id.toLowerCase(), + vpc, + internetFacing: true, + vpcSubnets: vpc.selectSubnets({subnetGroupName: 'public'}), + securityGroup: albSecurityGroup, + }); + + const listener = alb.addListener('Listener', { + port: 80, + }); + + // Export + this.vpc = vpc; + this.elasticacheSubnetGroup = elasticacheSubnetGroup; + + this.albSecurityGroup = albSecurityGroup; + this.ecsSecurityGroup = ecsSecurityGroup; + this.dataSecurityGroup = dataSecurityGroup; + + this.alb = alb; + this.listener = listener; + } +} diff --git a/literal.container.env b/literal.container.env new file mode 100644 index 0000000..6d71c78 --- /dev/null +++ b/literal.container.env @@ -0,0 +1,9 @@ +ENABLE_CREDENTIALS_AUTH=false + +EMAIL_SERVER_HOST= +EMAIL_SERVER_PORT= +EMAIL_SERVICE= +EMAIL_FROM= +EMAIL_USER= +EMAIL_SECURE= +EMAIL_PASS= \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5ece7c0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4149 @@ +{ + "name": "infra", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "infra", + "version": "0.1.0", + "dependencies": { + "aws-cdk-lib": "2.141.0", + "constructs": "^10.0.0", + "source-map-support": "^0.5.21" + }, + "bin": { + "infra": "bin/infra.js" + }, + "devDependencies": { + "@types/jest": "^29.5.12", + "@types/node": "20.12.7", + "aws-cdk": "2.141.0", + "jest": "^29.7.0", + "ts-jest": "^29.1.2", + "ts-node": "^10.9.2", + "typescript": "~5.4.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.202", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.202.tgz", + "integrity": "sha512-JqlF0D4+EVugnG5dAsNZMqhu3HW7ehOXm5SDMxMbXNDMdsF0pxtQKNHRl52z1U9igsHmaFpUgSGjbhAJ+0JONg==" + }, + "node_modules/@aws-cdk/asset-kubectl-v20": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", + "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==" + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.3.tgz", + "integrity": "sha512-twhuEG+JPOYCYPx/xy5uH2+VUsIEhPTzDY0F1KuB+ocjWWB/KEDiOVL19nHvbPCB6fhWnkykXEMJ4HHcKvjtvg==" + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aws-cdk": { + "version": "2.141.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.141.0.tgz", + "integrity": "sha512-RM9uDiETBEKCHemItaRGVjOLwoZ5iqXnejpyXY7+YF75c2c0Ui7HSZI8QD0stDg3S/2UbLcKv2RA9dBsjrWUGA==", + "dev": true, + "bin": { + "cdk": "bin/cdk" + }, + "engines": { + "node": ">= 14.15.0" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.141.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.141.0.tgz", + "integrity": "sha512-xda56Lfwpdqg9MssnFdXrAKTmeeNjfrfFCaWwqGqToG6cfGY2W+6wyyoObX60/MeZGhhs3Lhdb/K94ulLJ4X/A==", + "bundleDependencies": [ + "@balena/dockerignore", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "table", + "yaml", + "mime-types" + ], + "dependencies": { + "@aws-cdk/asset-awscli-v1": "^2.2.202", + "@aws-cdk/asset-kubectl-v20": "^2.1.2", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.0.3", + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^11.2.0", + "ignore": "^5.3.1", + "jsonschema": "^1.4.1", + "mime-types": "^2.1.35", + "minimatch": "^3.1.2", + "punycode": "^2.3.1", + "semver": "^7.6.0", + "table": "^6.8.2", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "constructs": "^10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/aws-cdk-lib/node_modules/ajv": { + "version": "8.13.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/astral-regex": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-deep-equal": { + "version": "3.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "11.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.3.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/json-schema-traverse": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.4.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lodash.truncate": { + "version": "4.4.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/lru-cache": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-db": { + "version": "1.52.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-types": { + "version": "2.1.35", + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "3.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.3.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/require-from-string": { + "version": "2.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.6.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/slice-ansi": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/table": { + "version": "6.8.2", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/uri-js": { + "version": "4.4.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001618", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001618.tgz", + "integrity": "sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/constructs": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.3.0.tgz", + "integrity": "sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==", + "engines": { + "node": ">= 16.14.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "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" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.770", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.770.tgz", + "integrity": "sha512-ONwOsDiVvV07CMsyH4+dEaZ9L79HMH/ODHnDS3GkIhgNqdDHJN2C18kFb0fBj0RXpQywsPJl6k2Pqg1IY4r1ig==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "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" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", + "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..323e7d0 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "literal", + "version": "0.1.0", + "bin": { + "infra": "bin/literal.js" + }, + "scripts": { + "build": "tsc", + "watch": "tsc -w", + "test": "jest", + "cdk": "cdk" + }, + "devDependencies": { + "@types/jest": "^29.5.12", + "@types/node": "20.12.7", + "jest": "^29.7.0", + "ts-jest": "^29.1.2", + "aws-cdk": "2.141.0", + "ts-node": "^10.9.2", + "typescript": "~5.4.5" + }, + "dependencies": { + "aws-cdk-lib": "2.141.0", + "constructs": "^10.0.0", + "source-map-support": "^0.5.21" + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..aaa7dc5 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "lib": [ + "es2020", + "dom" + ], + "declaration": true, + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": false, + "inlineSourceMap": true, + "inlineSources": true, + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "typeRoots": [ + "./node_modules/@types" + ] + }, + "exclude": [ + "node_modules", + "cdk.out" + ] +}