From 048fbc516c34ebd03740f8b166bf333f8940aff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikko=20Haapama=CC=88ki?= Date: Fri, 13 Jan 2023 11:30:01 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20asenna=20sovelluspalomuuri=20(AWS=20WAF?= =?UTF-8?q?)=20edustalle.=20K=C3=A4yt=C3=A4=20WAF:ia=20huoltotaukojen=20ky?= =?UTF-8?q?tkemiseen=20p=C3=A4=C3=A4lle/pois.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deployment/bin/hassu-waf.ts | 12 + deployment/bin/maintenanceMode.ts | 116 ++ deployment/lib/buildspec/buildspec-prod.yml | 2 + .../lib/buildspec/buildspec-training.yml | 2 + deployment/lib/buildspec/buildspec.yml | 2 + deployment/lib/config.ts | 31 +- deployment/lib/hassu-frontend.ts | 8 +- deployment/lib/hassu-pipelines.ts | 2 + deployment/lib/hassu-waf.ts | 184 +++ deployment/package-lock.json | 367 +++-- deployment/package.json | 7 +- package-lock.json | 1219 +++-------------- package.json | 5 +- 13 files changed, 817 insertions(+), 1140 deletions(-) create mode 100644 deployment/bin/hassu-waf.ts create mode 100644 deployment/bin/maintenanceMode.ts create mode 100644 deployment/lib/hassu-waf.ts diff --git a/deployment/bin/hassu-waf.ts b/deployment/bin/hassu-waf.ts new file mode 100644 index 000000000..d1ccd9eb9 --- /dev/null +++ b/deployment/bin/hassu-waf.ts @@ -0,0 +1,12 @@ +#!/usr/bin/env node +import { App } from "aws-cdk-lib"; +import { FrontendWafStack } from "../lib/hassu-waf"; + +async function main() { + const app = new App(); + new FrontendWafStack(app); + + app.synth(); +} + +main(); diff --git a/deployment/bin/maintenanceMode.ts b/deployment/bin/maintenanceMode.ts new file mode 100644 index 000000000..3f57cba84 --- /dev/null +++ b/deployment/bin/maintenanceMode.ts @@ -0,0 +1,116 @@ +import assert from "assert"; +import fetch from "node-fetch"; +import { Config } from "../lib/config"; +import Wafv2, { RegexPatternSetSummary } from "aws-sdk/clients/wafv2"; +import Ssm from "aws-sdk/clients/ssm"; +import { AWSError } from "aws-sdk/lib/error"; + +const waf = new Wafv2({ region: "us-east-1" }); +const ssm = new Ssm({ region: "us-east-1" }); + +async function getSSMParameter(ssmParameterName: string): Promise { + try { + const ssmResponse = await ssm.getParameter({ Name: ssmParameterName }).promise(); + return ssmResponse.Parameter?.Value; + } catch (e) { + if ((e as AWSError).code == "ParameterNotFound") { + return undefined; + } else { + throw e; + } + } +} + +async function getHostNameForEnv(env: string): Promise { + const ssmParameterName = "/" + env + "/FrontendDomainName"; + const ssmParameterValue = await getSSMParameter(ssmParameterName); + if (ssmParameterValue) { + return ssmParameterValue; + } else { + const hostname = process.env.FRONTEND_DOMAIN_NAME; + console.log("SSM:stä ei löydy arvoa " + ssmParameterName + ":lle, joten käytetään hostnamea " + hostname); + assert(hostname, "FRONTEND_DOMAIN_NAME ei ole asetettu"); + return hostname; + } +} + +async function setRegexPattern(hostname: string | undefined) { + const patternSets = await waf.listRegexPatternSets({ Scope: "CLOUDFRONT", Limit: 20 }).promise(); + const envConfigName = Config.getEnvConfigName(); + const patternSet: RegexPatternSetSummary | undefined = patternSets.RegexPatternSets?.find((set) => + set.Name?.endsWith("-" + envConfigName) + ); + if (!patternSet) { + throw new Error("Ympäristölle ei löydy konfiguraatiota"); + } + assert(patternSet.Name); + assert(patternSet.Id); + assert(patternSet.LockToken); + const params: Wafv2.Types.UpdateRegexPatternSetRequest = { + Scope: "CLOUDFRONT", + Name: patternSet.Name, + Id: patternSet.Id, + LockToken: patternSet.LockToken, + RegularExpressionList: [{ RegexString: "^" + hostname + "$" }], + }; + await waf.updateRegexPatternSet(params).promise(); +} + +async function main() { + assert(process.argv); + const command = process.argv[process.argv.length - 1]; + const env = process.env.ENVIRONMENT; + assert(env, "process.env.ENVIRONMENT pitää olla asetettu"); + const envConfig = Config.getEnvConfig(); + if (!envConfig.waf) { + console.log("Ympäristöllä " + env + " ei ole WAF:ia, joten sitä ei voi asettaa huoltotilaan"); + } + if (command == "set") { + const hostname = await getHostNameForEnv(env); + + console.log("Asetetaan ympäristö '" + env + "' (" + hostname + ") huoltotilaan"); + await setRegexPattern(hostname); + await waitForMaintenanceModeResult(hostname); + } else if (command == "clear") { + const hostname = await getHostNameForEnv(env); + + console.log("Poistetaan ympäristö '" + env + "' (" + hostname + ") huoltotilasta"); + await setRegexPattern("varattu-huoltokatkolle"); + await waitForMaintenanceModeOver(hostname); + } else { + console.log("Tuntematon komento " + command); + } +} + +async function waitForMaintenanceModeResult(hostname: string) { + await waitForResponse(hostname, 503); +} + +async function waitForMaintenanceModeOver(hostname: string) { + await waitForResponse(hostname, undefined, 503); +} + +async function waitForResponse(hostname: string, statuscode: number | undefined, notstatuscode?: number) { + let retriesLeft = 60; + while (retriesLeft-- > 0) { + const response = await fetch("https://" + hostname); + console.log(hostname + " status " + response.status); + if (statuscode && response.status == statuscode) { + return; + } + + if (notstatuscode && response.status !== notstatuscode) { + return; + } + + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + throw new Error(hostname + " ei palauttanut statusta " + statuscode + " minuutin kuluessa!"); +} + +main() + .then(() => console.log("Valmis!")) + .catch((e) => { + console.log(e); + process.exit(1); + }); diff --git a/deployment/lib/buildspec/buildspec-prod.yml b/deployment/lib/buildspec/buildspec-prod.yml index f3f2cfaaf..42920daec 100644 --- a/deployment/lib/buildspec/buildspec-prod.yml +++ b/deployment/lib/buildspec/buildspec-prod.yml @@ -26,6 +26,7 @@ phases: build: commands: - npm run get-next-version + - npm run maintenancemode set - npm run deploy:database - npm run deploy:backend - npm run deploy:frontend @@ -37,6 +38,7 @@ phases: post_build: on-failure: ABORT commands: + - npm run maintenancemode clear - ./deployment/bin/reportBuildStatus.sh -t "$ROCKET_CHAT_TOKEN" -u "$ROCKET_CHAT_USER_ID" -r "$CODEBUILD_BUILD_SUCCEEDING" -m "$ENVIRONMENT build" -d "CodeBuild $CODEBUILD_BUILD_URL" cache: paths: diff --git a/deployment/lib/buildspec/buildspec-training.yml b/deployment/lib/buildspec/buildspec-training.yml index 5f16c1632..06eacb3ad 100644 --- a/deployment/lib/buildspec/buildspec-training.yml +++ b/deployment/lib/buildspec/buildspec-training.yml @@ -31,6 +31,7 @@ phases: - npm run test - npm run localstack:stop & - npm run sonar + - npm run maintenancemode set - npm run deploy:database - npm run deploy:backend - npm run deploy:frontend @@ -42,6 +43,7 @@ phases: post_build: on-failure: ABORT commands: + - npm run maintenancemode clear - ./deployment/bin/reportBuildStatus.sh -t "$ROCKET_CHAT_TOKEN" -u "$ROCKET_CHAT_USER_ID" -r "$CODEBUILD_BUILD_SUCCEEDING" -m "$ENVIRONMENT build" -d "CodeBuild $CODEBUILD_BUILD_URL" cache: paths: diff --git a/deployment/lib/buildspec/buildspec.yml b/deployment/lib/buildspec/buildspec.yml index 8a168b14a..207934fab 100644 --- a/deployment/lib/buildspec/buildspec.yml +++ b/deployment/lib/buildspec/buildspec.yml @@ -33,6 +33,7 @@ phases: - npm run test - npm run localstack:stop & - npm run sonar + - npm run maintenancemode set - npm run deploy:database - npm run deploy:backend - npm run deploy:frontend @@ -45,6 +46,7 @@ phases: post_build: on-failure: ABORT commands: + - npm run maintenancemode clear - ./deployment/bin/reportBuildStatus.sh -t "$ROCKET_CHAT_TOKEN" -u "$ROCKET_CHAT_USER_ID" -r "$CODEBUILD_BUILD_SUCCEEDING" -m "$ENVIRONMENT build" -d "CodeBuild $CODEBUILD_BUILD_URL" cache: paths: diff --git a/deployment/lib/config.ts b/deployment/lib/config.ts index f3a2bf616..777ca76bd 100644 --- a/deployment/lib/config.ts +++ b/deployment/lib/config.ts @@ -13,9 +13,10 @@ type Env = { isProd?: boolean; isDevAccount?: boolean; isDeveloperEnvironment?: boolean; + waf?: boolean; }; -enum EnvName { +export enum EnvName { "dev" = "dev", "test" = "test", "training" = "training", @@ -29,18 +30,22 @@ const envConfigs: Record = { dev: { terminationProtection: true, isDevAccount: true, + waf: true, }, test: { terminationProtection: true, isDevAccount: true, + waf: true, }, training: { terminationProtection: true, isDevAccount: true, + waf: true, }, prod: { terminationProtection: true, isProd: true, + waf: true, }, localstack: {}, feature: {}, @@ -164,23 +169,31 @@ export class Config extends BaseConfig { } }; - public static isDeveloperEnvironment() { - return Config.getEnvConfig().isDeveloperEnvironment; + public static isDeveloperEnvironment(): boolean { + return Config.getEnvConfig().isDeveloperEnvironment || false; } - public static isDevAccount() { - return Config.getEnvConfig().isDevAccount; + public static isDevAccount(): boolean { + return Config.getEnvConfig().isDevAccount || false; } - public static isProdAccount() { - return Config.getEnvConfig().isProd; + public static isProdAccount(): boolean { + return Config.getEnvConfig().isProd || false; } - public static getEnvConfig(): Env { - const envConfig = envConfigs[BaseConfig.env as unknown as EnvName]; + public static getEnvConfig(env = BaseConfig.env): Env { + const envConfig = envConfigs[Config.getEnvConfigName(env)]; if (envConfig) { return envConfig; } return envConfigs.developer; } + + public static getEnvConfigName(env = BaseConfig.env): EnvName { + const envName = env as unknown as EnvName; + if (envConfigs[envName]) { + return envName; + } + return EnvName.developer; + } } diff --git a/deployment/lib/hassu-frontend.ts b/deployment/lib/hassu-frontend.ts index 21bee3d43..60dea7dca 100644 --- a/deployment/lib/hassu-frontend.ts +++ b/deployment/lib/hassu-frontend.ts @@ -166,6 +166,11 @@ export class HassuFrontendStack extends Stack { }; } + let webAclId; + if (Config.getEnvConfig().waf) { + webAclId = Fn.importValue("frontendWAFArn"); + } + const nextJSLambdaEdge = new NextJSLambdaEdge(this, id, { ...cachePolicies, serverlessBuildOutDir: "./build", @@ -184,7 +189,7 @@ export class HassuFrontendStack extends Stack { ? [{ functionVersion: frontendRequestFunction.currentVersion, eventType: LambdaEdgeEventType.VIEWER_REQUEST }] : [], }, - cloudfrontProps: { priceClass: PriceClass.PRICE_CLASS_100, logBucket }, + cloudfrontProps: { priceClass: PriceClass.PRICE_CLASS_100, logBucket, webAclId }, invalidationPaths: ["/*"], }); this.configureNextJSAWSPermissions(nextJSLambdaEdge); @@ -215,6 +220,7 @@ export class HassuFrontendStack extends Stack { } const distribution: cloudfront.Distribution = nextJSLambdaEdge.distribution; + new CfnOutput(this, "CloudfrontPrivateDNSName", { value: distribution.distributionDomainName || "", }); diff --git a/deployment/lib/hassu-pipelines.ts b/deployment/lib/hassu-pipelines.ts index 1e853b8ca..1ab10260b 100644 --- a/deployment/lib/hassu-pipelines.ts +++ b/deployment/lib/hassu-pipelines.ts @@ -278,6 +278,8 @@ export class HassuPipelineStack extends Stack { "lambda:ListFunctions", "lambda:InvokeFunction", "lambda:GetFunction", + "waf:ListRegexPatternSets", + "waf:UpdateRegexPatternSet", ], resources: ["*"], }) diff --git a/deployment/lib/hassu-waf.ts b/deployment/lib/hassu-waf.ts new file mode 100644 index 000000000..ee23f4026 --- /dev/null +++ b/deployment/lib/hassu-waf.ts @@ -0,0 +1,184 @@ +import { CfnRegexPatternSet, CfnWebACL, CfnWebACLProps } from "aws-cdk-lib/aws-wafv2"; +import { Config, EnvName } from "./config"; +import { Construct } from "constructs"; +import { CfnOutput, Stack } from "aws-cdk-lib"; +import { BaseConfig } from "../../common/BaseConfig"; + +export class FrontendWafStack extends Stack { + constructor(scope: Construct) { + super(scope, "frontendwaf", { + stackName: "frontendwaf", + terminationProtection: false, + env: { + region: "us-east-1", + }, + tags: Config.tags, + }); + + const maintenanceModeRules: CfnWebACL.RuleProperty[] = []; + let priority = 5; + for (const envName in EnvName) { + const envConfig = Config.getEnvConfig(envName); + if (BaseConfig.isProductionEnvironment() !== envConfig.isDevAccount && envConfig.waf) { + const maintenanceModeRegexSet = new CfnRegexPatternSet(this, "maintenancemode-" + envName, { + name: "Maintenancemode-" + envName, + description: + "Huoltokatkokytkin " + + envName + + "-ymparistolle. Jos regexp on ympariston hostname, niin huoltokatko on kaynnissa. Jos varattu-huoltokatkolle, niin huoltokatkoa ei ole.", + scope: "CLOUDFRONT", + tags: [ + { key: "Project", value: Config.tags.Project }, + { key: "Environment", value: envName }, + ], + regularExpressionList: ["^varattu-huoltokatkolle$"], + }); + + maintenanceModeRules.push({ + name: "Maintenance-" + envName, + priority: priority++, + statement: { + regexPatternSetReferenceStatement: { + arn: maintenanceModeRegexSet.attrArn, + fieldToMatch: { + singleHeader: { Name: "host" }, + }, + textTransformations: [ + { + priority: 0, + type: "NONE", + }, + ], + }, + }, + action: { + block: { + customResponse: { + responseCode: 503, + customResponseBodyKey: "Site-under-maintenance", + }, + }, + }, + visibilityConfig: { + sampledRequestsEnabled: false, + cloudWatchMetricsEnabled: false, + metricName: "Maintenance-" + envName, + }, + }); + } + } + const props: CfnWebACLProps = { + defaultAction: { allow: {} }, + scope: "CLOUDFRONT", + visibilityConfig: { + cloudWatchMetricsEnabled: true, + sampledRequestsEnabled: true, + metricName: `Hassu-Frontend-WAF`, + }, + name: `Hassu-ACL-Frontend`, + rules: [...managedRules, ...maintenanceModeRules], + customResponseBodies: { + "Site-under-maintenance": { content: "Asennuskatko", contentType: "TEXT_HTML" }, + }, + }; + + const cfnWebACL = new CfnWebACL(this, "frontendWAF", props); + new CfnOutput(this, "frontendWAFArn", { + value: cfnWebACL.attrArn, + exportName: "frontendWAFArn", + }); + } +} + +const managedRules = [ + { + name: "AWS-AWSManagedRulesAdminProtectionRuleSet", + priority: 0, + statement: { + managedRuleGroupStatement: { + vendorName: "AWS", + name: "AWSManagedRulesAdminProtectionRuleSet", + }, + }, + overrideAction: { + none: {}, + }, + visibilityConfig: { + sampledRequestsEnabled: true, + cloudWatchMetricsEnabled: true, + metricName: "AWS-AWSManagedRulesAdminProtectionRuleSet", + }, + }, + { + name: "AWS-AWSManagedRulesAmazonIpReputationList", + priority: 1, + statement: { + managedRuleGroupStatement: { + vendorName: "AWS", + name: "AWSManagedRulesAmazonIpReputationList", + }, + }, + overrideAction: { + none: {}, + }, + visibilityConfig: { + sampledRequestsEnabled: true, + cloudWatchMetricsEnabled: true, + metricName: "AWS-AWSManagedRulesAmazonIpReputationList", + }, + }, + { + name: "AWS-AWSManagedRulesAnonymousIpList", + priority: 2, + statement: { + managedRuleGroupStatement: { + vendorName: "AWS", + name: "AWSManagedRulesAnonymousIpList", + }, + }, + overrideAction: { + none: {}, + }, + visibilityConfig: { + sampledRequestsEnabled: true, + cloudWatchMetricsEnabled: true, + metricName: "AWS-AWSManagedRulesAnonymousIpList", + }, + }, + { + name: "AWS-AWSManagedRulesCommonRuleSet", + priority: 3, + statement: { + managedRuleGroupStatement: { + vendorName: "AWS", + name: "AWSManagedRulesCommonRuleSet", + }, + }, + overrideAction: { + none: {}, + }, + visibilityConfig: { + sampledRequestsEnabled: true, + cloudWatchMetricsEnabled: true, + metricName: "AWS-AWSManagedRulesCommonRuleSet", + }, + }, + { + name: "AWS-AWSManagedRulesKnownBadInputsRuleSet", + priority: 4, + statement: { + managedRuleGroupStatement: { + vendorName: "AWS", + name: "AWSManagedRulesKnownBadInputsRuleSet", + }, + }, + overrideAction: { + none: {}, + }, + visibilityConfig: { + sampledRequestsEnabled: true, + cloudWatchMetricsEnabled: true, + metricName: "AWS-AWSManagedRulesKnownBadInputsRuleSet", + }, + }, +]; diff --git a/deployment/package-lock.json b/deployment/package-lock.json index 3f3508aa2..93fc810b8 100644 --- a/deployment/package-lock.json +++ b/deployment/package-lock.json @@ -11,6 +11,7 @@ "@aws-cdk/aws-appsync-alpha": "2.53.0-alpha.0", "@semantic-release/exec": "6.0.2", "@sls-next/cdk-construct": "3.7.0", + "@types/node-fetch": "2.6.2", "aws-cdk": "2.60.0", "aws-cdk-lib": "2.60.0", "aws-cdk-local": "2.15.0", @@ -204,9 +205,9 @@ } }, "node_modules/@aws-crypto/util/node_modules/@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.254.0.tgz", + "integrity": "sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -1069,13 +1070,13 @@ } }, "node_modules/@aws-sdk/querystring-parser": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz", - "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.254.0.tgz", + "integrity": "sha512-WwRD99dwGo2aIrRjLHUAXaWCZ+3fj88IhIwciWTqrHBS3TQWXllOOQmYo7f+aMBB4Q1K6KdKITNi8L7aUuDv2g==", "dev": true, "peer": true, "dependencies": { - "@aws-sdk/types": "3.226.0", + "@aws-sdk/types": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -1083,9 +1084,9 @@ } }, "node_modules/@aws-sdk/querystring-parser/node_modules/@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.254.0.tgz", + "integrity": "sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA==", "dev": true, "peer": true, "dependencies": { @@ -1133,17 +1134,17 @@ } }, "node_modules/@aws-sdk/signature-v4-crt": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.226.0.tgz", - "integrity": "sha512-zaosVAgCnPzIv2qXPi1PGa9RrD3DZ7zfKg/ZGCsYhvFku8+zMK/Ky29+2lS+QB1OzGBW8+ddSuZxJcg0xQi36g==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.254.0.tgz", + "integrity": "sha512-kOG4XSk6cKgzx7hOHxZPVZENUWRCMCxn9gIZJDCZ8jdfrHCLO8dfNYMOM9TxQo2CkGYewIf2uI0l3mUZqfRJxw==", "dev": true, "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/querystring-parser": "3.226.0", - "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/querystring-parser": "3.254.0", + "@aws-sdk/signature-v4": "3.254.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.226.0", + "@aws-sdk/util-middleware": "3.254.0", "@aws-sdk/util-uri-escape": "3.201.0", "aws-crt": "^1.13.2", "tslib": "^2.3.1" @@ -1166,17 +1167,18 @@ } }, "node_modules/@aws-sdk/signature-v4-crt/node_modules/@aws-sdk/signature-v4": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz", - "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.254.0.tgz", + "integrity": "sha512-9FoEnipA9hAgEp6oqIT3+hobF+JgIXIn5QV8kAB7QGxEDqs/pdpEbGc9qbxi0ghdjvqzOSDir9gNI3w0cL8Aug==", "dev": true, "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.226.0", + "@aws-sdk/types": "3.254.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.226.0", + "@aws-sdk/util-middleware": "3.254.0", "@aws-sdk/util-uri-escape": "3.201.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -1184,9 +1186,9 @@ } }, "node_modules/@aws-sdk/signature-v4-crt/node_modules/@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.254.0.tgz", + "integrity": "sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA==", "dev": true, "peer": true, "dependencies": { @@ -1421,9 +1423,9 @@ } }, "node_modules/@aws-sdk/util-middleware": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz", - "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.254.0.tgz", + "integrity": "sha512-gn7vInNTRBo2QatOB+uU99JwV53wf/zlTUnUK0qOuebtSDLMdiO+msiMi2ctz9vMIrtc2XMXNQro1aE0aUPy4w==", "dev": true, "peer": true, "dependencies": { @@ -1493,6 +1495,20 @@ "node": ">= 12.0.0" } }, + "node_modules/@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@aws-sdk/util-utf8-browser": { "version": "3.52.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.52.0.tgz", @@ -1515,6 +1531,33 @@ "node": ">= 12.0.0" } }, + "node_modules/@aws-sdk/util-utf8/node_modules/@aws-sdk/is-array-buffer": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8/node_modules/@aws-sdk/util-buffer-from": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.201.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@aws-sdk/util-waiter": { "version": "3.54.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.54.0.tgz", @@ -2615,9 +2658,9 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { @@ -2707,12 +2750,12 @@ } }, "node_modules/@octokit/types": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.1.1.tgz", - "integrity": "sha512-7tjk+6DyhYAmei8FOEwPfGKc0VE1x56CKPJ+eE44zhDbOyMT+9yan8apfQFxo8oEFsy+0O7PiBtH8w0Yo0Y9Kw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.2.0.tgz", + "integrity": "sha512-v40LBJjw973X7sP6CuldlXDwIdgmVhry3Jq4jveVJgN1XBhqpCEDYTyDeXW/YS0bBGN3CRvTvON5IvZpaxcu0g==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^16.0.0" } }, "node_modules/@pnpm/network.ca-file": { @@ -3001,6 +3044,16 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, + "node_modules/@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", @@ -3264,6 +3317,12 @@ "node": ">=4" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -4476,6 +4535,18 @@ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commist": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", @@ -4989,6 +5060,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -5490,6 +5570,20 @@ "is-callable": "^1.1.3" } }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -5681,9 +5775,9 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "dependencies": { "function-bind": "^1.1.1", @@ -7135,6 +7229,27 @@ "node": ">=10.0.0" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -12364,9 +12479,9 @@ } }, "node_modules/source-map/node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -13784,9 +13899,9 @@ }, "dependencies": { "@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.254.0.tgz", + "integrity": "sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA==", "dev": true, "requires": { "tslib": "^2.3.1" @@ -14520,20 +14635,20 @@ } }, "@aws-sdk/querystring-parser": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz", - "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.254.0.tgz", + "integrity": "sha512-WwRD99dwGo2aIrRjLHUAXaWCZ+3fj88IhIwciWTqrHBS3TQWXllOOQmYo7f+aMBB4Q1K6KdKITNi8L7aUuDv2g==", "dev": true, "peer": true, "requires": { - "@aws-sdk/types": "3.226.0", + "@aws-sdk/types": "3.254.0", "tslib": "^2.3.1" }, "dependencies": { "@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.254.0.tgz", + "integrity": "sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA==", "dev": true, "peer": true, "requires": { @@ -14571,17 +14686,17 @@ } }, "@aws-sdk/signature-v4-crt": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.226.0.tgz", - "integrity": "sha512-zaosVAgCnPzIv2qXPi1PGa9RrD3DZ7zfKg/ZGCsYhvFku8+zMK/Ky29+2lS+QB1OzGBW8+ddSuZxJcg0xQi36g==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.254.0.tgz", + "integrity": "sha512-kOG4XSk6cKgzx7hOHxZPVZENUWRCMCxn9gIZJDCZ8jdfrHCLO8dfNYMOM9TxQo2CkGYewIf2uI0l3mUZqfRJxw==", "dev": true, "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/querystring-parser": "3.226.0", - "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/querystring-parser": "3.254.0", + "@aws-sdk/signature-v4": "3.254.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.226.0", + "@aws-sdk/util-middleware": "3.254.0", "@aws-sdk/util-uri-escape": "3.201.0", "aws-crt": "^1.13.2", "tslib": "^2.3.1" @@ -14598,24 +14713,25 @@ } }, "@aws-sdk/signature-v4": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz", - "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.254.0.tgz", + "integrity": "sha512-9FoEnipA9hAgEp6oqIT3+hobF+JgIXIn5QV8kAB7QGxEDqs/pdpEbGc9qbxi0ghdjvqzOSDir9gNI3w0cL8Aug==", "dev": true, "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.226.0", + "@aws-sdk/types": "3.254.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.226.0", + "@aws-sdk/util-middleware": "3.254.0", "@aws-sdk/util-uri-escape": "3.201.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" } }, "@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.254.0.tgz", + "integrity": "sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA==", "dev": true, "peer": true, "requires": { @@ -14804,9 +14920,9 @@ } }, "@aws-sdk/util-middleware": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz", - "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==", + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.254.0.tgz", + "integrity": "sha512-gn7vInNTRBo2QatOB+uU99JwV53wf/zlTUnUK0qOuebtSDLMdiO+msiMi2ctz9vMIrtc2XMXNQro1aE0aUPy4w==", "dev": true, "peer": true, "requires": { @@ -14864,6 +14980,40 @@ "tslib": "^2.3.0" } }, + "@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==", + "dev": true, + "peer": true, + "requires": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "@aws-sdk/is-array-buffer": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "dev": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-buffer-from": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "dev": true, + "peer": true, + "requires": { + "@aws-sdk/is-array-buffer": "3.201.0", + "tslib": "^2.3.1" + } + } + } + }, "@aws-sdk/util-utf8-browser": { "version": "3.52.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.52.0.tgz", @@ -15733,9 +15883,9 @@ } }, "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", "dev": true }, "@octokit/plugin-paginate-rest": { @@ -15802,12 +15952,12 @@ } }, "@octokit/types": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.1.1.tgz", - "integrity": "sha512-7tjk+6DyhYAmei8FOEwPfGKc0VE1x56CKPJ+eE44zhDbOyMT+9yan8apfQFxo8oEFsy+0O7PiBtH8w0Yo0Y9Kw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.2.0.tgz", + "integrity": "sha512-v40LBJjw973X7sP6CuldlXDwIdgmVhry3Jq4jveVJgN1XBhqpCEDYTyDeXW/YS0bBGN3CRvTvON5IvZpaxcu0g==", "dev": true, "requires": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^16.0.0" } }, "@pnpm/network.ca-file": { @@ -16042,6 +16192,16 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, + "@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "dev": true, + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, "@types/normalize-package-data": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", @@ -16264,6 +16424,12 @@ "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -17230,6 +17396,15 @@ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commist": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", @@ -17645,6 +17820,12 @@ } } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -18041,6 +18222,17 @@ "is-callable": "^1.1.3" } }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -18187,9 +18379,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -19321,6 +19513,21 @@ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -23234,9 +23441,9 @@ }, "dependencies": { "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "tr46": { diff --git a/deployment/package.json b/deployment/package.json index 531849ac1..defa0a3ca 100644 --- a/deployment/package.json +++ b/deployment/package.json @@ -4,15 +4,16 @@ "private": true, "devDependencies": { "@aws-cdk/aws-appsync-alpha": "2.53.0-alpha.0", + "@semantic-release/exec": "6.0.2", "@sls-next/cdk-construct": "3.7.0", + "@types/node-fetch": "2.6.2", "aws-cdk": "2.60.0", "aws-cdk-lib": "2.60.0", "aws-cdk-local": "2.15.0", "aws-sdk": "2.1274.0", "constructs": "10.1.224", - "semantic-release": "19.0.3", - "@semantic-release/exec": "6.0.2", - "node-fetch": "2.6.7" + "node-fetch": "2.6.7", + "semantic-release": "19.0.3" }, "overrides": { "next": "11.1.4", diff --git a/package-lock.json b/package-lock.json index b96b1a390..8fc1a8ae1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4854,16 +4854,16 @@ "peer": true }, "node_modules/@aws-sdk/middleware-retry/node_modules/react-native": { - "version": "0.71.0", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.0.tgz", - "integrity": "sha512-b5oCS/cPVqXT5E2K+0CfQMERAoRu6/6g1no9XRAcjQ4b5JG608WgDh5QgXPHaMSVhAvsJ1DuRoU8C/xqTjQITA==", + "version": "0.71.1", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.1.tgz", + "integrity": "sha512-bLP5+IBj2IX6tgF9WnC/UL2ZPYkVUPsU4xqZV1jntTC2TH4xyLrvfKACjGlz5nQ3Mx4BmOFqsnMxithm53+6Aw==", "dev": true, "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "10.0.0", - "@react-native-community/cli-platform-android": "10.0.0", - "@react-native-community/cli-platform-ios": "10.0.0", + "@react-native-community/cli": "10.1.3", + "@react-native-community/cli-platform-android": "10.1.3", + "@react-native-community/cli-platform-ios": "10.1.1", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.1.0", "@react-native/polyfills": "2.0.0", @@ -4876,16 +4876,16 @@ "jest-environment-node": "^29.2.1", "jsc-android": "^250230.2.1", "memoize-one": "^5.0.0", - "metro-react-native-babel-transformer": "0.73.5", - "metro-runtime": "0.73.5", - "metro-source-map": "0.73.5", + "metro-react-native-babel-transformer": "0.73.7", + "metro-runtime": "0.73.7", + "metro-source-map": "0.73.7", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", "promise": "^8.3.0", "react-devtools-core": "^4.26.1", "react-native-codegen": "^0.71.3", - "react-native-gradle-plugin": "^0.71.12", + "react-native-gradle-plugin": "^0.71.13", "react-refresh": "^0.4.0", "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", @@ -10119,9 +10119,9 @@ } }, "node_modules/@next/react-dev-overlay/node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "engines": { "node": ">=6" } @@ -10306,20 +10306,20 @@ } }, "node_modules/@react-native-community/cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.0.0.tgz", - "integrity": "sha512-KHV9/AbPeIK87jHP7iY07/HQG00J5AYF/dHz2rzqAZGB2WYFAbc5uoLRw90u/U2AcSeO7ep+4kawm+/B9LJreg==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.1.3.tgz", + "integrity": "sha512-kzh6bYLGN1q1q0IiczKSP1LTrovFeVzppYRTKohPI9VdyZwp7b5JOgaQMB/Ijtwm3MxBDrZgV9AveH/eUmUcKQ==", "dev": true, "peer": true, "dependencies": { - "@react-native-community/cli-clean": "^10.0.0", - "@react-native-community/cli-config": "^10.0.0", + "@react-native-community/cli-clean": "^10.1.1", + "@react-native-community/cli-config": "^10.1.1", "@react-native-community/cli-debugger-ui": "^10.0.0", - "@react-native-community/cli-doctor": "^10.0.0", - "@react-native-community/cli-hermes": "^10.0.0", - "@react-native-community/cli-plugin-metro": "^10.0.0", - "@react-native-community/cli-server-api": "^10.0.0", - "@react-native-community/cli-tools": "^10.0.0", + "@react-native-community/cli-doctor": "^10.1.1", + "@react-native-community/cli-hermes": "^10.1.3", + "@react-native-community/cli-plugin-metro": "^10.1.1", + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", "@react-native-community/cli-types": "^10.0.0", "chalk": "^4.1.2", "commander": "^9.4.1", @@ -10744,20 +10744,6 @@ "wcwidth": "^1.0.1" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-platform-ios": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.1.1.tgz", - "integrity": "sha512-EB9/L8j1LqrqyfJtLRixU+d8FIP6Pr83rEgUgXgya/u8wk3h/bvX70w+Ff2skwjdPLr5dLUQ/n5KFX4r3bsNmA==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "^10.1.1", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "glob": "^7.1.3", - "ora": "^5.4.1" - } - }, "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -10999,20 +10985,6 @@ "ip": "^1.1.5" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-platform-android": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.1.3.tgz", - "integrity": "sha512-8YZEpBL6yd9l4CIoFcLOgrV8x2GDujdqrdWrNsNERDAbsiFwqAQvfjyyb57GAZVuEPEJCoqUlGlMCwOh3XQb9A==", - "dev": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "^10.1.1", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "glob": "^7.1.3", - "logkitty": "^0.7.1" - } - }, "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11066,55 +11038,6 @@ "dev": true, "peer": true }, - "node_modules/@react-native-community/cli-hermes/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "peer": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "peer": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11125,72 +11048,6 @@ "node": ">=8" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "peer": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "peer": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@react-native-community/cli-hermes/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11204,27 +11061,14 @@ "node": ">=8" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/@react-native-community/cli-platform-android": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.0.0.tgz", - "integrity": "sha512-wUXq+//PagXVjG6ZedO+zIbNPkCsAiP+uiE45llFTsCtI6vFBwa6oJFHH6fhfeib4mOd7DvIh2Kktrpgyb6nBg==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.1.3.tgz", + "integrity": "sha512-8YZEpBL6yd9l4CIoFcLOgrV8x2GDujdqrdWrNsNERDAbsiFwqAQvfjyyb57GAZVuEPEJCoqUlGlMCwOh3XQb9A==", "dev": true, "peer": true, "dependencies": { - "@react-native-community/cli-tools": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", @@ -11436,13 +11280,13 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.0.0.tgz", - "integrity": "sha512-WLpXzZQ53zb1RhkpSDNHyBR3SIN3WObDRTEaR0TMXsXDeTj8/Eu2DPFpT+uEnD10ly/Y6/DqJsAt4Ku2X76klA==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.1.1.tgz", + "integrity": "sha512-EB9/L8j1LqrqyfJtLRixU+d8FIP6Pr83rEgUgXgya/u8wk3h/bvX70w+Ff2skwjdPLr5dLUQ/n5KFX4r3bsNmA==", "dev": true, "peer": true, "dependencies": { - "@react-native-community/cli-tools": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", @@ -11673,47 +11517,6 @@ "readline": "^1.3.0" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11836,53 +11639,6 @@ "node": ">=0.10.0" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-transformer": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.7.tgz", - "integrity": "sha512-73HW8betjX+VPm3iqsMBe8F/F2Tt+hONO6YJwcF7FonTqQYW1oTz0dOp0dClZGfHUXxpJBz6Vuo7J6TpdzDD+w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "babel-preset-fbjs": "^3.4.0", - "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.73.7", - "metro-react-native-babel-preset": "0.73.7", - "metro-source-map": "0.73.7", - "nullthrows": "^1.1.1" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", - "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -11896,13 +11652,6 @@ "node": ">=4" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -11913,16 +11662,6 @@ "node": ">=4" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -20501,9 +20240,9 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -24856,9 +24595,9 @@ } }, "node_modules/jsdom/node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -26033,30 +25772,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/metro-babel-transformer/node_modules/metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-babel-transformer/node_modules/ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, "node_modules/metro-cache": { "version": "0.73.7", "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.7.tgz", @@ -26251,17 +25966,6 @@ "node": ">= 10.14.2" } }, - "node_modules/metro-config/node_modules/metro-runtime": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", - "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, "node_modules/metro-config/node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -26299,16 +26003,6 @@ "dev": true, "peer": true }, - "node_modules/metro-config/node_modules/react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/metro-config/node_modules/resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", @@ -26581,95 +26275,53 @@ } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.5.tgz", - "integrity": "sha512-CZYgUguqFTzV9vSOZb60p8qlp31aWz8aBB6OqoZ2gJday+n/1k+Y0yy6VPr/tfXJheuQYVIXKvG1gMmUDyxt+Q==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.7.tgz", + "integrity": "sha512-73HW8betjX+VPm3iqsMBe8F/F2Tt+hONO6YJwcF7FonTqQYW1oTz0dOp0dClZGfHUXxpJBz6Vuo7J6TpdzDD+w==", "dev": true, "peer": true, "dependencies": { - "@babel/core": "^7.14.0", + "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.73.5", - "metro-react-native-babel-preset": "0.73.5", - "metro-source-map": "0.73.5", + "metro-babel-transformer": "0.73.7", + "metro-react-native-babel-preset": "0.73.7", + "metro-source-map": "0.73.7", "nullthrows": "^1.1.1" }, "peerDependencies": { "@babel/core": "*" } }, - "node_modules/metro-react-native-babel-transformer/node_modules/metro-babel-transformer": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.5.tgz", - "integrity": "sha512-G3awAJ9of/R2jEg+MRokYcq/TNvMSxJipwybQ2NfwwSj5iLEmRH2YbwTx5w8f5qKgs2K4SS2pmBIs8qjdV6p3Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.14.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.73.5", - "nullthrows": "^1.1.1" - } - }, - "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.5.tgz", - "integrity": "sha512-Ej6J8ozWSs6nrh0nwX7hgX4oPXUai40ckah37cSLu8qeED2XiEtfLV1YksTLafFE8fX0EieiP97U97dkOGHP4w==", + "node_modules/metro-react-native-babel-transformer/node_modules/@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, "peer": true, "dependencies": { - "@babel/core": "^7.14.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.2.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "react-refresh": "^0.4.0" + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/metro-react-native-babel-transformer/node_modules/react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, "node_modules/metro-resolver": { @@ -26683,9 +26335,9 @@ } }, "node_modules/metro-runtime": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.5.tgz", - "integrity": "sha512-8QJOS7bhJmR6r/Gkki/qY9oX/DdxnLhS8FpdG1Xmm2hDeUVAug12ekWTiCRMu7d1CDVv1F8WvUz09QckZ0dO0g==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", + "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", "dev": true, "peer": true, "dependencies": { @@ -26704,43 +26356,22 @@ } }, "node_modules/metro-source-map": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.5.tgz", - "integrity": "sha512-58p3zNWgUrqYYjFJb0KkZ+uJurTL4oz7i5T7577b3kvTYuJ0eK4y7rtYf8EwOfMYxRAn/m20aH1Y1fHTsLUwjQ==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", + "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", "dev": true, "peer": true, "dependencies": { - "@babel/traverse": "^7.14.0", + "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.73.5", + "metro-symbolicate": "0.73.7", "nullthrows": "^1.1.1", - "ob1": "0.73.5", + "ob1": "0.73.7", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, - "node_modules/metro-source-map/node_modules/metro-symbolicate": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.5.tgz", - "integrity": "sha512-aIC8sDlaEdtn0dTt+64IFZFEATatFx3GtzRbJi0+jJx47RjDRiuCt9fzmTMLuadWwnbFK9ZfVMuWEXM9sdtQ7w==", - "dev": true, - "peer": true, - "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.73.5", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/index.js" - }, - "engines": { - "node": ">=8.3" - } - }, "node_modules/metro-symbolicate": { "version": "0.73.7", "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.7.tgz", @@ -26762,30 +26393,6 @@ "node": ">=8.3" } }, - "node_modules/metro-symbolicate/node_modules/metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-symbolicate/node_modules/ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, "node_modules/metro-transform-plugins": { "version": "0.73.7", "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.7.tgz", @@ -26884,30 +26491,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/metro-transform-worker/node_modules/metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-transform-worker/node_modules/ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, "node_modules/metro/node_modules/@babel/core": { "version": "7.20.12", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", @@ -27072,51 +26655,6 @@ "node": ">=4.0" } }, - "node_modules/metro/node_modules/metro-runtime": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", - "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "node_modules/metro/node_modules/metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro/node_modules/ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, - "node_modules/metro/node_modules/react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/metro/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -29521,9 +29059,9 @@ } }, "node_modules/ob1": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.5.tgz", - "integrity": "sha512-MxQH/rCq9/COvgTQbjCldArmesGEidZVVQIn4vDUJvJJ8uMphXOTCBsgWTief2ugvb0WUimIaslKSA+qryFjjQ==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", + "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", "dev": true, "peer": true }, @@ -34173,9 +33711,9 @@ } }, "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -34194,9 +33732,9 @@ } }, "node_modules/tr46/node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -34894,9 +34432,9 @@ } }, "node_modules/uri-js/node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "engines": { "node": ">=6" } @@ -39927,16 +39465,16 @@ "peer": true }, "react-native": { - "version": "0.71.0", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.0.tgz", - "integrity": "sha512-b5oCS/cPVqXT5E2K+0CfQMERAoRu6/6g1no9XRAcjQ4b5JG608WgDh5QgXPHaMSVhAvsJ1DuRoU8C/xqTjQITA==", + "version": "0.71.1", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.1.tgz", + "integrity": "sha512-bLP5+IBj2IX6tgF9WnC/UL2ZPYkVUPsU4xqZV1jntTC2TH4xyLrvfKACjGlz5nQ3Mx4BmOFqsnMxithm53+6Aw==", "dev": true, "peer": true, "requires": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "10.0.0", - "@react-native-community/cli-platform-android": "10.0.0", - "@react-native-community/cli-platform-ios": "10.0.0", + "@react-native-community/cli": "10.1.3", + "@react-native-community/cli-platform-android": "10.1.3", + "@react-native-community/cli-platform-ios": "10.1.1", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.1.0", "@react-native/polyfills": "2.0.0", @@ -39949,16 +39487,16 @@ "jest-environment-node": "^29.2.1", "jsc-android": "^250230.2.1", "memoize-one": "^5.0.0", - "metro-react-native-babel-transformer": "0.73.5", - "metro-runtime": "0.73.5", - "metro-source-map": "0.73.5", + "metro-react-native-babel-transformer": "0.73.7", + "metro-runtime": "0.73.7", + "metro-source-map": "0.73.7", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", "promise": "^8.3.0", "react-devtools-core": "^4.26.1", "react-native-codegen": "^0.71.3", - "react-native-gradle-plugin": "^0.71.12", + "react-native-gradle-plugin": "^0.71.13", "react-refresh": "^0.4.0", "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", @@ -43829,9 +43367,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" }, "source-map": { "version": "0.8.0-beta.0", @@ -43949,20 +43487,20 @@ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@react-native-community/cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.0.0.tgz", - "integrity": "sha512-KHV9/AbPeIK87jHP7iY07/HQG00J5AYF/dHz2rzqAZGB2WYFAbc5uoLRw90u/U2AcSeO7ep+4kawm+/B9LJreg==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.1.3.tgz", + "integrity": "sha512-kzh6bYLGN1q1q0IiczKSP1LTrovFeVzppYRTKohPI9VdyZwp7b5JOgaQMB/Ijtwm3MxBDrZgV9AveH/eUmUcKQ==", "dev": true, "peer": true, "requires": { - "@react-native-community/cli-clean": "^10.0.0", - "@react-native-community/cli-config": "^10.0.0", + "@react-native-community/cli-clean": "^10.1.1", + "@react-native-community/cli-config": "^10.1.1", "@react-native-community/cli-debugger-ui": "^10.0.0", - "@react-native-community/cli-doctor": "^10.0.0", - "@react-native-community/cli-hermes": "^10.0.0", - "@react-native-community/cli-plugin-metro": "^10.0.0", - "@react-native-community/cli-server-api": "^10.0.0", - "@react-native-community/cli-tools": "^10.0.0", + "@react-native-community/cli-doctor": "^10.1.1", + "@react-native-community/cli-hermes": "^10.1.3", + "@react-native-community/cli-plugin-metro": "^10.1.1", + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", "@react-native-community/cli-types": "^10.0.0", "chalk": "^4.1.2", "commander": "^9.4.1", @@ -44491,20 +44029,6 @@ "wcwidth": "^1.0.1" }, "dependencies": { - "@react-native-community/cli-platform-ios": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.1.1.tgz", - "integrity": "sha512-EB9/L8j1LqrqyfJtLRixU+d8FIP6Pr83rEgUgXgya/u8wk3h/bvX70w+Ff2skwjdPLr5dLUQ/n5KFX4r3bsNmA==", - "dev": true, - "peer": true, - "requires": { - "@react-native-community/cli-tools": "^10.1.1", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "glob": "^7.1.3", - "ora": "^5.4.1" - } - }, "ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -44693,20 +44217,6 @@ "ip": "^1.1.5" }, "dependencies": { - "@react-native-community/cli-platform-android": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.1.3.tgz", - "integrity": "sha512-8YZEpBL6yd9l4CIoFcLOgrV8x2GDujdqrdWrNsNERDAbsiFwqAQvfjyyb57GAZVuEPEJCoqUlGlMCwOh3XQb9A==", - "dev": true, - "peer": true, - "requires": { - "@react-native-community/cli-tools": "^10.1.1", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "glob": "^7.1.3", - "logkitty": "^0.7.1" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -44745,46 +44255,6 @@ "dev": true, "peer": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "peer": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "peer": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "peer": true, - "requires": { - "pump": "^3.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -44792,54 +44262,6 @@ "dev": true, "peer": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "peer": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "peer": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "peer": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "peer": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "peer": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "peer": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -44849,27 +44271,17 @@ "requires": { "has-flag": "^4.0.0" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } } } }, "@react-native-community/cli-platform-android": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.0.0.tgz", - "integrity": "sha512-wUXq+//PagXVjG6ZedO+zIbNPkCsAiP+uiE45llFTsCtI6vFBwa6oJFHH6fhfeib4mOd7DvIh2Kktrpgyb6nBg==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.1.3.tgz", + "integrity": "sha512-8YZEpBL6yd9l4CIoFcLOgrV8x2GDujdqrdWrNsNERDAbsiFwqAQvfjyyb57GAZVuEPEJCoqUlGlMCwOh3XQb9A==", "dev": true, "peer": true, "requires": { - "@react-native-community/cli-tools": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", @@ -45032,13 +44444,13 @@ } }, "@react-native-community/cli-platform-ios": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.0.0.tgz", - "integrity": "sha512-WLpXzZQ53zb1RhkpSDNHyBR3SIN3WObDRTEaR0TMXsXDeTj8/Eu2DPFpT+uEnD10ly/Y6/DqJsAt4Ku2X76klA==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.1.1.tgz", + "integrity": "sha512-EB9/L8j1LqrqyfJtLRixU+d8FIP6Pr83rEgUgXgya/u8wk3h/bvX70w+Ff2skwjdPLr5dLUQ/n5KFX4r3bsNmA==", "dev": true, "peer": true, "requires": { - "@react-native-community/cli-tools": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", @@ -45220,39 +44632,6 @@ "readline": "^1.3.0" }, "dependencies": { - "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "peer": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true - } - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -45345,50 +44724,6 @@ "dev": true, "peer": true }, - "metro-react-native-babel-transformer": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.7.tgz", - "integrity": "sha512-73HW8betjX+VPm3iqsMBe8F/F2Tt+hONO6YJwcF7FonTqQYW1oTz0dOp0dClZGfHUXxpJBz6Vuo7J6TpdzDD+w==", - "dev": true, - "peer": true, - "requires": { - "@babel/core": "^7.20.0", - "babel-preset-fbjs": "^3.4.0", - "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.73.7", - "metro-react-native-babel-preset": "0.73.7", - "metro-source-map": "0.73.7", - "nullthrows": "^1.1.1" - } - }, - "metro-runtime": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", - "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "requires": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -45399,13 +44734,6 @@ "path-key": "^2.0.0" } }, - "ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -45413,13 +44741,6 @@ "dev": true, "peer": true }, - "react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -52134,9 +51455,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -55406,9 +54727,9 @@ } }, "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "tough-cookie": { @@ -56441,48 +55762,6 @@ "dev": true, "peer": true }, - "metro-runtime": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", - "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "requires": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - }, - "react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -56561,30 +55840,6 @@ "json5": "^2.2.2", "semver": "^6.3.0" } - }, - "metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "requires": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true } } }, @@ -56743,17 +55998,6 @@ "pretty-format": "^26.6.2" } }, - "metro-runtime": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", - "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -56785,13 +56029,6 @@ "dev": true, "peer": true }, - "react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true - }, "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", @@ -57039,87 +56276,44 @@ } }, "metro-react-native-babel-transformer": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.5.tgz", - "integrity": "sha512-CZYgUguqFTzV9vSOZb60p8qlp31aWz8aBB6OqoZ2gJday+n/1k+Y0yy6VPr/tfXJheuQYVIXKvG1gMmUDyxt+Q==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.7.tgz", + "integrity": "sha512-73HW8betjX+VPm3iqsMBe8F/F2Tt+hONO6YJwcF7FonTqQYW1oTz0dOp0dClZGfHUXxpJBz6Vuo7J6TpdzDD+w==", "dev": true, "peer": true, "requires": { - "@babel/core": "^7.14.0", + "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.73.5", - "metro-react-native-babel-preset": "0.73.5", - "metro-source-map": "0.73.5", + "metro-babel-transformer": "0.73.7", + "metro-react-native-babel-preset": "0.73.7", + "metro-source-map": "0.73.7", "nullthrows": "^1.1.1" }, "dependencies": { - "metro-babel-transformer": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.5.tgz", - "integrity": "sha512-G3awAJ9of/R2jEg+MRokYcq/TNvMSxJipwybQ2NfwwSj5iLEmRH2YbwTx5w8f5qKgs2K4SS2pmBIs8qjdV6p3Q==", - "dev": true, - "peer": true, - "requires": { - "@babel/core": "^7.14.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.73.5", - "nullthrows": "^1.1.1" - } - }, - "metro-react-native-babel-preset": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.5.tgz", - "integrity": "sha512-Ej6J8ozWSs6nrh0nwX7hgX4oPXUai40ckah37cSLu8qeED2XiEtfLV1YksTLafFE8fX0EieiP97U97dkOGHP4w==", + "@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, "peer": true, "requires": { - "@babel/core": "^7.14.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.2.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "react-refresh": "^0.4.0" + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" } - }, - "react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "dev": true, - "peer": true } } }, @@ -57134,9 +56328,9 @@ } }, "metro-runtime": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.5.tgz", - "integrity": "sha512-8QJOS7bhJmR6r/Gkki/qY9oX/DdxnLhS8FpdG1Xmm2hDeUVAug12ekWTiCRMu7d1CDVv1F8WvUz09QckZ0dO0g==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", + "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", "dev": true, "peer": true, "requires": { @@ -57154,37 +56348,20 @@ } }, "metro-source-map": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.5.tgz", - "integrity": "sha512-58p3zNWgUrqYYjFJb0KkZ+uJurTL4oz7i5T7577b3kvTYuJ0eK4y7rtYf8EwOfMYxRAn/m20aH1Y1fHTsLUwjQ==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", + "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", "dev": true, "peer": true, "requires": { - "@babel/traverse": "^7.14.0", + "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.73.5", + "metro-symbolicate": "0.73.7", "nullthrows": "^1.1.1", - "ob1": "0.73.5", + "ob1": "0.73.7", "source-map": "^0.5.6", "vlq": "^1.0.0" - }, - "dependencies": { - "metro-symbolicate": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.5.tgz", - "integrity": "sha512-aIC8sDlaEdtn0dTt+64IFZFEATatFx3GtzRbJi0+jJx47RjDRiuCt9fzmTMLuadWwnbFK9ZfVMuWEXM9sdtQ7w==", - "dev": true, - "peer": true, - "requires": { - "invariant": "^2.2.4", - "metro-source-map": "0.73.5", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - } - } } }, "metro-symbolicate": { @@ -57200,32 +56377,6 @@ "source-map": "^0.5.6", "through2": "^2.0.1", "vlq": "^1.0.0" - }, - "dependencies": { - "metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "requires": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true - } } }, "metro-transform-plugins": { @@ -57313,30 +56464,6 @@ "json5": "^2.2.2", "semver": "^6.3.0" } - }, - "metro-source-map": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", - "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", - "dev": true, - "peer": true, - "requires": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.73.7", - "nullthrows": "^1.1.1", - "ob1": "0.73.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", - "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", - "dev": true, - "peer": true } } }, @@ -59214,9 +58341,9 @@ } }, "ob1": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.5.tgz", - "integrity": "sha512-MxQH/rCq9/COvgTQbjCldArmesGEidZVVQIn4vDUJvJJ8uMphXOTCBsgWTief2ugvb0WUimIaslKSA+qryFjjQ==", + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", + "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", "dev": true, "peer": true }, @@ -62860,9 +61987,9 @@ }, "dependencies": { "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true } } @@ -62877,9 +62004,9 @@ }, "dependencies": { "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true } } @@ -63406,9 +62533,9 @@ }, "dependencies": { "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" } } }, diff --git a/package.json b/package.json index 93531effd..066c4e3b4 100644 --- a/package.json +++ b/package.json @@ -197,6 +197,8 @@ "deploy:stackpolicies": "ts-node --project=deployment/tsconfig.json -r dotenv/config ./deployment/bin/setStackPolicies.ts", "postdeploy:frontend": "npm run setupenvironment", "deploy:account:dev": "cross-env ENVIRONMENT=dev ./deployment/node_modules/.bin/cdk --app \"ts-node --project=tsconfig.cdk.json ./deployment/bin/hassu-account\" deploy account --require-approval never", + "deploy:waf:dev": "cross-env AWS_PROFILE=hassudev ./deployment/node_modules/.bin/cdk --app \"ts-node --project=tsconfig.cdk.json ./deployment/bin/hassu-waf\" deploy frontendwaf --require-approval never", + "deploy:waf:prod": "cross-env AWS_PROFILE=hassuprod ./deployment/node_modules/.bin/cdk --app \"ts-node --project=tsconfig.cdk.json ./deployment/bin/hassu-waf\" deploy frontendwaf --require-approval never", "deploy:monitoring": " ./deployment/node_modules/.bin/cdk --app \"ts-node --project=tsconfig.cdk.json ./deployment/bin/hassu-monitoring\" deploy monitoring --require-approval never", "deploy:account:prod": "cross-env ENVIRONMENT=prod ./deployment/node_modules/.bin/cdk --app \"ts-node --project=tsconfig.cdk.json ./deployment/bin/hassu-account\" deploy account --require-approval never", "deploy:pipelines:dev": "cross-env ENVIRONMENT=dev ./deployment/node_modules/.bin/cdk --app \"ts-node --project=tsconfig.cdk.json ./deployment/bin/hassu-pipelines\" deploy hassu-pipelines --require-approval never", @@ -233,7 +235,8 @@ "opensearch:getmapping": "cross-env DOTENV_CONFIG_PATH=.env.test ts-node --project=backend/tsconfig.json -r dotenv/config ./deployment/bin/opensearch.ts getmapping projekti backend/src/projektiSearch/projekti-mapping.json", "opensearch:getsettings": "cross-env DOTENV_CONFIG_PATH=.env.test ts-node --project=backend/tsconfig.json -r dotenv/config ./deployment/bin/opensearch.ts getsettings projekti backend/src/projektiSearch/projekti-settings.json", "opensearch:delete-index": "aws lambda invoke --cli-binary-format raw-in-base64-out --function-name hassu-dynamodb-stream-handler-$ENVIRONMENT --payload '{\"action\": \"deleteIndex\"}' --log-type Tail lambda_response.json | node ./deployment/bin/process-lambda-output.js && rimraf lambda_response.json", - "opensearch:index": "aws lambda invoke --cli-binary-format raw-in-base64-out --function-name hassu-dynamodb-stream-handler-$ENVIRONMENT --payload '{\"action\": \"index\"}' --log-type Tail lambda_response.json | node ./deployment/bin/process-lambda-output.js && rimraf lambda_response.json" + "opensearch:index": "aws lambda invoke --cli-binary-format raw-in-base64-out --function-name hassu-dynamodb-stream-handler-$ENVIRONMENT --payload '{\"action\": \"index\"}' --log-type Tail lambda_response.json | node ./deployment/bin/process-lambda-output.js && rimraf lambda_response.json", + "maintenancemode": "ts-node --project=deployment/tsconfig.json -r dotenv/config ./deployment/bin/maintenanceMode.ts dotenv_config_path=.env.test" }, "browserslist": { "production": [