diff --git a/.gitignore b/.gitignore index 17c6eec..82e7f2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,14 @@ -.classpath.txt -target -.classpath -.project -.idea -.settings -.vscode -*.iml -node_modules/ +*.js +!jest.config.js +!**/lambdas/*.js +!header.js +*.d.ts +node_modules +__pycache__/ +*.pyc + +# CDK temporary file +cdk.context.json # CDK asset staging directory .cdk.staging diff --git a/.travis.yml b/.travis.yml index a28c4d1..c2bd16d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,26 @@ dist: bionic node_js: - node -script: - - npm run lint - - npm run test \ No newline at end of file +jobs: + fast_finish: true + include: + - name: Infrastructure + before_install: + - cd infrastructure/ + + install: + - npm install + + script: + - npm run lint + - npm run test + + - name: UI + before_install: + - cd ui/ + + install: + - npm install + + script: + - npm run test \ No newline at end of file diff --git a/infrastructure/README.md b/README.md similarity index 100% rename from infrastructure/README.md rename to README.md diff --git a/.eslintignore b/infrastructure/.eslintignore similarity index 100% rename from .eslintignore rename to infrastructure/.eslintignore diff --git a/.eslintrc b/infrastructure/.eslintrc similarity index 100% rename from .eslintrc rename to infrastructure/.eslintrc diff --git a/header.js b/infrastructure/header.js similarity index 100% rename from header.js rename to infrastructure/header.js diff --git a/infrastructure/lib/app-stack.ts b/infrastructure/lib/app-stack.ts index 0fe0474..d2db81f 100644 --- a/infrastructure/lib/app-stack.ts +++ b/infrastructure/lib/app-stack.ts @@ -25,6 +25,7 @@ import { GraphDatabase } from "./database/graph-database"; import { Worker } from "./workers/worker"; import { KaiUserPool } from "./authentication/user-pool"; import { GraphDatabaseProps } from "./database/graph-database-props"; +import { PolicyStatement } from "@aws-cdk/aws-iam"; // The main stack for Kai export class AppStack extends cdk.Stack { @@ -62,6 +63,21 @@ export class AppStack extends cdk.Stack { const layerVersionArn = samApp.getAtt("Outputs.LayerVersionArn").toString(); const kubectlLambdaLayer = LayerVersion.fromLayerVersionArn(this, "KubectlLambdaLayer", layerVersionArn); + // Describe EKS cluster policy statement + const describeClusterPolicyStatement = new PolicyStatement({ + actions: [ "eks:DescribeCluster" ], + resources: [ platform.eksCluster.clusterArn ] + }); + + // Manage EBS Volumes policy statement + const manageVolumesPolicyStatement = new PolicyStatement({ + resources: ["*"], + actions: [ + "ec2:DescribeVolumes", + "ec2:DeleteVolume" + ] + }); + // Workers new Worker(this, "AddGraphWorker", { cluster: platform.eksCluster, @@ -70,7 +86,10 @@ export class AppStack extends cdk.Stack { graphTable: database.table, handler: "add_graph.handler", timeout: ADD_GRAPH_TIMEOUT, - batchSize: ADD_GRAPH_WORKER_BATCH_SIZE + batchSize: ADD_GRAPH_WORKER_BATCH_SIZE, + policyStatements: [ + describeClusterPolicyStatement + ] }); const deleteGraphWorker = new Worker(this, "DeleteGraphWorker", { @@ -80,7 +99,27 @@ export class AppStack extends cdk.Stack { graphTable: database.table, handler: "delete_graph.handler", timeout: DELETE_GRAPH_TIMEOUT, - batchSize: DELETE_GRAPH_WORKER_BATCH_SIZE + batchSize: DELETE_GRAPH_WORKER_BATCH_SIZE, + policyStatements: [ + describeClusterPolicyStatement, + manageVolumesPolicyStatement + ] + }); + + // Graph uninstaller + new GraphUninstaller(this, "GraphUninstaller", { + getGraphsFunctionArn: kaiRest.getGraphsLambda.functionArn, + deleteGraphFunctionArn: kaiRest.deleteGraphLambda.functionArn, + kubectlLayer: kubectlLambdaLayer, + timeout: cdk.Duration.seconds(30), + dependencies: [ + platform, + database, + deleteGraphWorker, + kaiRest.getGraphsLambda, + kaiRest.deleteGraphLambda, + kaiRest.deleteGraphQueue + ] }); // Graph uninstaller diff --git a/infrastructure/lib/constants.ts b/infrastructure/lib/constants.ts index f9979e8..d53cf05 100644 --- a/infrastructure/lib/constants.ts +++ b/infrastructure/lib/constants.ts @@ -27,4 +27,4 @@ const TIMEOUT_FOR_ADDING_GRAPH_IN_MINUTES = 5; // how long it should take for on const TIMEOUT_FOR_DELETING_GRAPH_IN_MINUTES = 2; // how long it should take for one graph to be deleted export const DELETE_GRAPH_TIMEOUT = Duration.minutes(TIMEOUT_FOR_DELETING_GRAPH_IN_MINUTES * DELETE_GRAPH_WORKER_BATCH_SIZE); -export const ADD_GRAPH_TIMEOUT = Duration.minutes(TIMEOUT_FOR_ADDING_GRAPH_IN_MINUTES * ADD_GRAPH_WORKER_BATCH_SIZE); \ No newline at end of file +export const ADD_GRAPH_TIMEOUT = Duration.minutes(TIMEOUT_FOR_ADDING_GRAPH_IN_MINUTES * ADD_GRAPH_WORKER_BATCH_SIZE); diff --git a/infrastructure/lib/platform/graph-platform.ts b/infrastructure/lib/platform/graph-platform.ts index d5788cd..038c0f6 100644 --- a/infrastructure/lib/platform/graph-platform.ts +++ b/infrastructure/lib/platform/graph-platform.ts @@ -58,7 +58,7 @@ export class GraphPlatForm extends cdk.Construct { // Create cluster this._eksCluster = new eks.Cluster(this, "EksCluster", { - version: eks.KubernetesVersion.V1_16, + version: eks.KubernetesVersion.V1_17, kubectlEnabled: true, vpc: vpc, mastersRole: mastersRole, diff --git a/infrastructure/lib/platform/lambdas/uninstall_graphs.py b/infrastructure/lib/platform/lambdas/uninstall_graphs.py index d3c9b2d..349e08c 100644 --- a/infrastructure/lib/platform/lambdas/uninstall_graphs.py +++ b/infrastructure/lib/platform/lambdas/uninstall_graphs.py @@ -42,7 +42,7 @@ def delete(event, context): InvocationType = "RequestResponse", Payload = json.dumps({ "pathParameters": { - "graphId": graph["graphId"] + "graphName": graph["graphName"] } }) ) @@ -50,7 +50,7 @@ def delete(event, context): logger.info("Received responsePayloadJson: {}".format(responsePayloadJson)) if responsePayloadJson["statusCode"] != 202: logger.error("Unable to delete graph: {}, received status code: {}, message: {}".format( - graph["graphId"], + graph["graphName"], responsePayloadJson["statusCode"], responsePayloadJson["body"] ) diff --git a/infrastructure/lib/rest-api/README.md b/infrastructure/lib/rest-api/README.md index 0dae986..c92bf46 100644 --- a/infrastructure/lib/rest-api/README.md +++ b/infrastructure/lib/rest-api/README.md @@ -50,7 +50,7 @@ curl -H "Authorization: " https://.execute-api. The Graphs resource enables creation, deletion and retrieval of Graphs managed by Kai. #### GET /graphs -Retrieves all graphs objects from the backend database. At present this only includes the graphId and its current state but this is likely to change as the project grows. +Retrieves all graphs objects from the backend database. At present this only includes the graphName and its current state but this is likely to change as the project grows. A graph can be in different states. At present these states can be: * DEPLOYMENT_QUEUED @@ -77,7 +77,7 @@ Example response: ] ``` -#### GET /graphs/{graphId} +#### GET /graphs/{graphName} Retrieves a single graph from the backend database. If the Graph Id is not found, a 404 response is sent. If the requesting user is not a configured administrator of the graph a 403 response is returned. Example response: @@ -89,12 +89,12 @@ Example response: ``` #### POST /graphs -Creates and deploys a new graph. This endpoint is asynchronous meaning it will return before deploying a graph which takes around 5 minutes. At present, you need to provide a Gaffer schema which is split into two parts: elements and types, as well as a graphId which must be unique. This endpoint will respond with a simple 201 return code. If the user requests a graph which is already created, A 400 response will be sent, along with an error message. There is a constraint in gaffer-docker that graph ids have to be lowercase alphanumerics. We hope to address this in a bugfix to allow uppercase alphanumerics too. By default only the creating user has administration access to the graph through the REST API. If you wish to specify additional users with administration privileges they can be listed in an optional "administrators" property. If an attempt is made to configure users who are not members of the Cognito User Pool a 400 response will be returned. +Creates and deploys a new graph. This endpoint is asynchronous meaning it will return before deploying a graph which takes around 5 minutes. At present, you need to provide a Gaffer schema which is split into two parts: elements and types, as well as a graphName which must be unique. This endpoint will respond with a simple 201 return code. If the user requests a graph which is already created, A 400 response will be sent, along with an error message. There is a constraint in gaffer-docker that graph names have to be lowercase alphanumerics. We hope to address this in a bugfix to allow uppercase alphanumerics too. By default only the creating user has administration access to the graph through the REST API. If you wish to specify additional users with administration privileges they can be listed in an optional "administrators" property. If an attempt is made to configure users who are not members of the Cognito User Pool a 400 response will be returned. Example request body: ```json { - "graphId": "basic", + "graphName": "basic", "administrators": [], "schema": { "elements": { @@ -135,5 +135,5 @@ Example request body: } ``` -#### DELETE /graphs/{graphId} -Deletes a graph deployment from the platform. This endpoint is asynchronous meaning that it will respond before the graph deployment is removed. Once the graph deployment is removed, the graph will be removed from the backend database. If the requested graphId is not present or is not in the backend database at the start, a 400 error is returned. If the user is not an administrator a 403 response is returned. Otherwise a 202 status code is returned. +#### DELETE /graphs/{graphName} +Deletes a graph deployment from the platform. This endpoint is asynchronous meaning that it will respond before the graph deployment is removed. Once the graph deployment is removed, the graph will be removed from the backend database. If the requested graphName is not present or is not in the backend database at the start, a 400 error is returned. If the user is not an administrator a 403 response is returned. Otherwise a 202 status code is returned. diff --git a/infrastructure/lib/rest-api/kai-rest-api.ts b/infrastructure/lib/rest-api/kai-rest-api.ts index 50e14d3..869f57b 100644 --- a/infrastructure/lib/rest-api/kai-rest-api.ts +++ b/infrastructure/lib/rest-api/kai-rest-api.ts @@ -108,7 +108,6 @@ export class KaiRestApi extends cdk.Construct { props.graphTable.grantReadData(this._getGraphsLambda); // Both GET and GET all are served by the same lambda - const getGraphIntegration = new api.LambdaIntegration(this._getGraphsLambda); graphsResource.addMethod("GET", getGraphIntegration, methodOptions); graph.addMethod("GET", getGraphIntegration, methodOptions); diff --git a/infrastructure/lib/rest-api/lambdas/get_graph_request.py b/infrastructure/lib/rest-api/lambdas/get_graph_request.py index 99d8b0d..f6fc5fe 100644 --- a/infrastructure/lib/rest-api/lambdas/get_graph_request.py +++ b/infrastructure/lib/rest-api/lambdas/get_graph_request.py @@ -1,47 +1,100 @@ -import os -import boto3 -from graph import Graph -import json -from user import User - -graph = Graph() -user = User() - -def handler(event, context): - """ - Main entrypoint for the HTTP GET lambda functions. This function - serves both GET handlers so returns all graphs if no graphName - is specified in the path parameters - """ - path_params = event["pathParameters"] - return_all = False - graph_name = None - if path_params is None or path_params["graphName"] is None: - return_all = True - else: - graph_name = path_params["graphName"] - - requesting_user = user.get_requesting_cognito_user(event) - - if return_all: - return { - "statusCode": 200, - "body": json.dumps(graph.get_all_graphs(requesting_user)) - } - else: - if not user.is_authorized(requesting_user, graph_name): - return { - "statusCode": 403, - "body": "User: {} is not authorized to retrieve graph: {}".format(requesting_user, graph_name) - } +import subprocess +import logging +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +standard_kubeconfig="/tmp/kubeconfig" + + +class CommandHelper: + @staticmethod + def run_command(cmd, release_name): + succeeded=False try: - return { - "statusCode": 200, - "body": json.dumps(graph.get_graph(graph.format_graph_name(graph_name))) - } - except Exception as e: - return { - "statusCode": 404, - "body": graph_name + " was not found" - } + subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, check=True, cwd="/tmp") + succeeded=True + except subprocess.CalledProcessError as err: + logger.error("Error during excution of command: %s against release name: %s", cmd, release_name) + logger.error(err.output) + + return succeeded + + +class KubeConfigurator: + def run_once(f): + def wrapper(*args, **kwargs): + if not wrapper.has_run: + wrapper.has_run = True + return f(*args, **kwargs) + wrapper.has_run = False + return wrapper + + @run_once + def update_kube_config(self, cluster_name, kubeconfig=standard_kubeconfig): + logger.info("Configuring kubectl for cluster: %s", cluster_name); + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + +class HelmClient: + __HELM_CMD="helm" + + def __init__(self, cluster_name, kubeconfig=standard_kubeconfig): + KubeConfigurator().update_kube_config(cluster_name=cluster_name, kubeconfig=kubeconfig) + self.kubeconfig = kubeconfig + + def __run(self, instruction, release_name, values=None, chart=None, repo=None): + """ + Runs a Helm command and returns True if it succeeds and False if it fails + """ + cmd = [ self.__HELM_CMD, instruction, release_name ] + if chart is not None: + cmd.append(chart) + if repo is not None: + cmd.extend(["--repo", repo]) + if values is not None: + cmd.extend(["--values", values]) + cmd.extend(["--kubeconfig", self.kubeconfig]) + + return CommandHelper.run_command(cmd, release_name) + + def install_chart(self, release_name, values=None, chart="gaffer", repo="https://gchq.github.io/gaffer-docker"): + """ + Installs a Helm chart and returns True if it Succeeds and False if it fails + """ + return self.__run(instruction="install", release_name=release_name, values=values, chart=chart, repo=repo) + + def uninstall_chart(self, release_name): + """ + Uninstalls a Helm release and returns True if it Succeeds and False if it fails + """ + return self.__run(instruction="uninstall", release_name=release_name) + + +class KubernetesClient: + __KUBECTL_CMD="kubectl" + + def __init__(self, cluster_name, kubeconfig=standard_kubeconfig): + KubeConfigurator().update_kube_config(cluster_name=cluster_name, kubeconfig=kubeconfig) + self.kubeconfig = kubeconfig + + def delete_volumes(self, release_name): + """ + Deletes the Persistent Volume Claims associated to a release_name + """ + # HDFS Datanodes & Namenode + self.__delete_volumes(release_name=release_name, selectors=["app.kubernetes.io/instance={}".format(release_name)]) + + # Zookeeper + self.__delete_volumes(release_name=release_name, selectors=["release={}".format(release_name)]) + + def __delete_volumes(self, release_name, selectors): + cmd = [ self.__KUBECTL_CMD, "delete", "pvc", "--kubeconfig", self.kubeconfig ] + for selector in selectors: + cmd.append("--selector") + cmd.append(selector) + + CommandHelper.run_command(cmd, release_name) \ No newline at end of file diff --git a/infrastructure/lib/rest-api/lambdas/graph/__init__.py b/infrastructure/lib/rest-api/lambdas/graph/__init__.py index 908665d..4e62e3e 100644 --- a/infrastructure/lib/rest-api/lambdas/graph/__init__.py +++ b/infrastructure/lib/rest-api/lambdas/graph/__init__.py @@ -25,13 +25,13 @@ def get_all_graphs(self, requesting_user): return list(filter(lambda graph: requesting_user in graph["administrators"], graphs)) - def get_graph(self, release_name): + def get_graph(self, graph_name): """ Gets a specific graph from Dynamodb table """ response = self.table.get_item( Key={ - "releaseName": release_name + "releaseName": format_graph_name(graph_name) } ) if "Item" in response: @@ -60,5 +60,4 @@ def create_graph(self, release_name, graph_name, status, administrators): "administrators": administrators }, ConditionExpression=boto3.dynamodb.conditions.Attr("releaseName").not_exists() - ) - + ) \ No newline at end of file diff --git a/infrastructure/lib/rest-api/lambdas/user/__init__.py b/infrastructure/lib/rest-api/lambdas/user/__init__.py index 4f7e3be..d55a30a 100644 --- a/infrastructure/lib/rest-api/lambdas/user/__init__.py +++ b/infrastructure/lib/rest-api/lambdas/user/__init__.py @@ -29,13 +29,13 @@ def get_requesting_cognito_user(self, request): return None return request["requestContext"]["authorizer"]["claims"]["cognito:username"] - def is_authorized(self, user, graphId): + def is_authorized(self, user, graphName): # If Authenticated through AWS account treat as admin for all graphs if (user is None): return True # Otherwise check the list of administrators configured on the graph try: - graph_record = self.graph.get_graph(graphId) + graph_record = self.graph.get_graph(graphName) return user in graph_record["administrators"] except Exception as e: return False diff --git a/infrastructure/lib/workers/lambdas/delete_graph.py b/infrastructure/lib/workers/lambdas/delete_graph.py index a451a8f..2fea8fa 100644 --- a/infrastructure/lib/workers/lambdas/delete_graph.py +++ b/infrastructure/lib/workers/lambdas/delete_graph.py @@ -1,10 +1,9 @@ import os -import subprocess -import boto3 import json import logging +import time from graph import Graph -from kubernetes import HelmClient +from kubernetes import HelmClient, KubernetesClient logger = logging.getLogger() logger.setLevel(logging.INFO) @@ -15,29 +14,30 @@ graph_table_name = os.getenv("graph_table_name") -def uninstall_release(helm_client, body): +def uninstall_release(helm_client, kubernetes_client, body): """ Uninstalls a release from the Kubernetes Cluster """ - release_Name = body["releaseName"] + release_name = body["releaseName"] expected_status=body["expectedStatus"] # Create a Graph object to track the deletion - graph = Graph(graph_table_name, release_Name) + graph = Graph(graph_table_name, release_name) if not graph.check_status(expected_status): - logger.warn("Graph %s had unexpected status. Abandoning delete", release_Name) + logger.warn("Graph %s had unexpected status. Abandoning delete", release_name) return graph.update_status("DELETION_IN_PROGRESS") - uninstalled = helm_client.uninstall_chart(release_Name) + uninstalled = helm_client.uninstall_chart(release_name) if uninstalled: + kubernetes_client.delete_volumes(release_name); graph.delete() else: graph.update_status("DELETION_FAILED") - + def handler(event, context): """ The entrypoint for the Delete Graph Handler @@ -45,6 +45,7 @@ def handler(event, context): logger.info(event) helm_client = HelmClient(cluster_name) + kubernetes_client = KubernetesClient(cluster_name) for record in event["Records"]: body = json.loads(record["body"]) - uninstall_release(helm_client, body) \ No newline at end of file + uninstall_release(helm_client, kubernetes_client, body) \ No newline at end of file diff --git a/infrastructure/lib/workers/worker-props.ts b/infrastructure/lib/workers/worker-props.ts index 5770e00..152d321 100644 --- a/infrastructure/lib/workers/worker-props.ts +++ b/infrastructure/lib/workers/worker-props.ts @@ -19,6 +19,7 @@ import { ILayerVersion } from "@aws-cdk/aws-lambda"; import { Cluster } from "@aws-cdk/aws-eks"; import { Duration } from "@aws-cdk/core"; import { Table } from "@aws-cdk/aws-dynamodb"; +import { PolicyStatement } from "@aws-cdk/aws-iam"; export interface WorkerProps { queue: Queue; @@ -28,4 +29,5 @@ export interface WorkerProps { handler: string; timeout: Duration; batchSize: number; + policyStatements: PolicyStatement[]; } \ No newline at end of file diff --git a/infrastructure/lib/workers/worker.ts b/infrastructure/lib/workers/worker.ts index 32a83b5..4b4ea90 100644 --- a/infrastructure/lib/workers/worker.ts +++ b/infrastructure/lib/workers/worker.ts @@ -18,7 +18,6 @@ import { Construct } from "@aws-cdk/core"; import { WorkerProps } from "./worker-props"; import * as lambda from "@aws-cdk/aws-lambda"; import * as path from "path"; -import { PolicyStatement } from "@aws-cdk/aws-iam"; import { SqsEventSource } from "@aws-cdk/aws-lambda-event-sources"; export class Worker extends Construct { @@ -56,11 +55,10 @@ export class Worker extends Construct { batchSize: props.batchSize })); - // Add permisssions to role - this._function.addToRolePolicy(new PolicyStatement({ - actions: [ "eks:DescribeCluster" ], - resources: [ props.cluster.clusterArn ] - })); + // Add policy statements to role + for (const policyStatement of props.policyStatements) { + this._function.addToRolePolicy(policyStatement); + } props.graphTable.grantReadWriteData(this._function); diff --git a/infrastructure/package-lock.json b/infrastructure/package-lock.json index 5ef2e6e..eee2a91 100644 --- a/infrastructure/package-lock.json +++ b/infrastructure/package-lock.json @@ -5,201 +5,202 @@ "requires": true, "dependencies": { "@aws-cdk/assert": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.54.0.tgz", - "integrity": "sha512-JJ5LXeKGzZzP3epMQQlpVGxNhoj+wsqWZehdsHyciRX+ZUeX3xz37EA3zoDEI3aq/yzN+MVvbl3LjAnfsdrQaw==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.59.0.tgz", + "integrity": "sha512-60AWONWt47O46GXOIa80jaUHwLG20pHM2gee0rwM1DHP4nOBcDBgRAIHP9qSCkASXSi/VuDbaXZPYpHohI0BUw==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/cloudformation-diff": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/cloudformation-diff": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/assets": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.54.0.tgz", - "integrity": "sha512-p8MKp2xw/Qyf9613Kf51sf2hv9Sd5bU7bOtQCBmSJ4zUpVSOIPn4HMwpIeU+dQwy8Oo+RrrtryEbn0XFn6W+jg==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.59.0.tgz", + "integrity": "sha512-CKkySASphv4kyszBYthKqSO9wiSBWRJc7woHM7+i1fy3pOGeUoyaHl/CpUyU/sT1eWmtOmGzMm0bI53vumH4ZQ==", "requires": { - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-apigateway": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.54.0.tgz", - "integrity": "sha512-dRcV9pZC68jOtP/jxIl7WmtT24aeeoJiqhSCBhT9UB3qdjK1jOmMsBP41zoPGTcvmFebDoF8Xd0mxJF4iVWVtQ==", - "requires": { - "@aws-cdk/assets": "1.54.0", - "@aws-cdk/aws-certificatemanager": "1.54.0", - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-logs": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/aws-s3-assets": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.59.0.tgz", + "integrity": "sha512-FUvc3OlnDoFn6hUTfORFUyrNsnkZ01v5fu0fhC8NDw+KC3Gb0ZrW1Rrs2sfKLSMB14Aks1YpgR240hsQEesD8g==", + "requires": { + "@aws-cdk/assets": "1.59.0", + "@aws-cdk/aws-certificatemanager": "1.59.0", + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-logs": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/aws-s3-assets": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-applicationautoscaling": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.54.0.tgz", - "integrity": "sha512-KhXpgsXB4TGtkvxH4ilsoWHZgUY/ADR9hNnoipYepEt/zlhGyDzLr/O0vdehhBY4aBISQSK9EMMHRALftMKxwQ==", - "requires": { - "@aws-cdk/aws-autoscaling-common": "1.54.0", - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.59.0.tgz", + "integrity": "sha512-LdHqp9DPuH0i7K0873dvbf9/JG60LjuIbX+lynhvI6/0tokKtlTiZIegutMrH2Ck+ex6EHnnIgSgRHJ3whN3MA==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.59.0", + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-autoscaling": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.54.0.tgz", - "integrity": "sha512-rjMDKxbg1iVXJO+cJw+jJ3tfEVoxZ1eMpnOARL4uTn6KmOJrZ8IMPsUNqRKFSRCnqzDTPZhVFLX0Ao8Nq+vMfw==", - "requires": { - "@aws-cdk/aws-autoscaling-common": "1.54.0", - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-elasticloadbalancing": "1.54.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-sns": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.59.0.tgz", + "integrity": "sha512-dKK44VABZnIueEvo9BTYjFsZWUBndwJEPK2tflhX4yVWsM62gl4YjvhSmnTuoOdCbZwza3UL5oklJo4JNSTgpg==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.59.0", + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-elasticloadbalancing": "1.59.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-sns": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-autoscaling-common": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.54.0.tgz", - "integrity": "sha512-snCx7u0yBlsnmPH4pzefJh7MZZzMhTWjESqTXO0GpKTVRu4oaVqMeG/s1hnD5Sv3ThEMVVMyQncnNdgMSGgvkA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.59.0.tgz", + "integrity": "sha512-15HHOkZapAFctHfcNoMjjyA/yzDFVGpo18ce9kvB0GLDpexGjk/am4WCfrGXwUkUUDl1h5G4sNb9SrqtSDFeNA==", "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-certificatemanager": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.54.0.tgz", - "integrity": "sha512-5AGIzpdAdgUMBDBmrFlmB0fnCLZSEM1za0Ure1FwMK0GjB0tYO2IYQqn438L7rXB7IG9HN4T7pu7GcfE7Q4pMw==", - "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-route53": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.59.0.tgz", + "integrity": "sha512-IyUG8vQM2Nat8m6Yp+v5k+WtnDRJQPSmRNNwEasnztgCy1GD5Xc+zZRKBq1qwPRzFo2eO/YryBXQl/c6Nz9Jgw==", + "requires": { + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-route53": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-cloudformation": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.54.0.tgz", - "integrity": "sha512-YTW0dPiIUY4wptKlQTFxAPWFLA8Fz8/fa22YCcsLE5ftdGStgSJkrikrqOKmx8eSSZ6OQGGhouRSYV1eqPioxQ==", - "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/aws-sns": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.59.0.tgz", + "integrity": "sha512-spIFELZPkbuqcPAFSm1P4He0X/aXaBNzWosIBNCJmZBxuz8NdZWhG27mE1bKdubiCylH2fDeu9Rqz3kIVdu2aw==", + "requires": { + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/aws-sns": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-cloudwatch": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.54.0.tgz", - "integrity": "sha512-+L+tp+XyPqiFBy3P6osOgqqCV/155phcGtZ660BCL5I5ykE08Q9/n6yA3wRh2BU7xZhH5zTYnJ6cIuRmIFcOWw==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.59.0.tgz", + "integrity": "sha512-dNy8lj7nlZw4EJGIXbruVlmrunD+isici+H6w+Y7Tsb43WYtK3MqBchcMZ0nFZly1DBd+J4O2a4ZsaqJQX3SSA==", "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-codeguruprofiler": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.54.0.tgz", - "integrity": "sha512-VQIEjaliup+mtM+JERZuREtB8EcHJ5/zfH3bFUTeiUKvheXAIppGh9K8lq/z/PMHjsac6sH+XzozMdHj4Oe8bQ==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.59.0.tgz", + "integrity": "sha512-fiiLKmjekVlIDbo5Qcxj9v2EQPus/FfBOH0r4biOJlBsjTtJQD/f5ufizy8tF1NCAIeP8oTrrRZ9OkI4owyQyg==", "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0" + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0" } }, "@aws-cdk/aws-cognito": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.54.0.tgz", - "integrity": "sha512-/FEI2zMcoTNACOJ5Y6jDy88lFnxPU2uXVfGISJP4fx3Z64+JmdUWTfDY/Xa5Kk+Ev2n8EddIVsJ1Ah+aVLrb7Q==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/custom-resources": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.59.0.tgz", + "integrity": "sha512-PZojwlnDUncKnwJVQzY3UrDzmB56Xmp5Hf9e8C6TCNdVTNCeX+4qEaCgN9Mmmm/vFM+KWMn5QUOj+BQqA4wi+w==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/custom-resources": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-dynamodb": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-dynamodb/-/aws-dynamodb-1.54.0.tgz", - "integrity": "sha512-3BJf41r3Ncy0et1fyATVUnDnOHeOYaKAY/OOpo+5a9g59DCgUNp09XoTBFemXRwOKPOO1IDV8fX6CTmg8XXblA==", - "requires": { - "@aws-cdk/aws-applicationautoscaling": "1.54.0", - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/custom-resources": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-dynamodb/-/aws-dynamodb-1.59.0.tgz", + "integrity": "sha512-nFvhwOk0049nSuNDKYlNGo3qkIuDzS8HF6qSYzOsSoxbpdPejrRYOB5GTPC0DZ7Nc5XtUvei7HWn9C6lfigIxw==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.59.0", + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/custom-resources": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-ec2": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.54.0.tgz", - "integrity": "sha512-MZXDHf8jj//BBNQx+EwuocV5WH2njFQqzo2cF9tpTPPjd30prD5D8FCPi3RIdXafKdpQvTzor4cYPbYFKbdU+A==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/aws-logs": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/aws-ssm": "1.54.0", - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", - "@aws-cdk/region-info": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.59.0.tgz", + "integrity": "sha512-+jeY3Ju4QyJ60oroLSzWd9UNvJ3wBINwpVi8xKmAoxnkoKazIP9TUQO+e10t8fay7nZ4aZyceO0LauOIiqIipg==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/aws-logs": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/aws-s3-assets": "1.59.0", + "@aws-cdk/aws-ssm": "1.59.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", + "@aws-cdk/region-info": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-efs": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.54.0.tgz", - "integrity": "sha512-kHeH5cGonYrE1vwStnB1SwAX3XDZYDOiBlGxPz5s7x8TCeMdjRWhHP5Qow+h5Rt6UOocZJ+QV8G4fbXU2yZC1g==", - "requires": { - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.59.0.tgz", + "integrity": "sha512-Z09Sz0bMJcQY8hjl1BHzmSoLBAcfDqtv1KDjyjsLIzcMcJHGJ4eOJPY5BLmrKOtQ7EuH1BoiT58qp0YIwhvtTQ==", + "requires": { + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-eks": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-eks/-/aws-eks-1.54.0.tgz", - "integrity": "sha512-WwGlp1yoduV7jECHBkoWYD1EXD+xJRL+uqxzvGRpPponV936XuYP88eOxFoXJqvsSyX6k+61WTl8Vz+wxmKjSQ==", - "requires": { - "@aws-cdk/aws-autoscaling": "1.54.0", - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-ssm": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/custom-resources": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-eks/-/aws-eks-1.59.0.tgz", + "integrity": "sha512-pzWEFOTCFs6sFJpau9cc3yNAVOv/Hwwdsbru/8Jt2HRwjoIo8pEPLK7Xl+wrf6k74ClIvbWNnT1QrZwXwrutKQ==", + "requires": { + "@aws-cdk/aws-autoscaling": "1.59.0", + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-ssm": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/custom-resources": "1.59.0", "constructs": "^3.0.2", "yaml": "1.10.0" }, @@ -211,249 +212,250 @@ } }, "@aws-cdk/aws-elasticloadbalancing": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.54.0.tgz", - "integrity": "sha512-B1f8DH+9TVfAWq0ZDIpIPsoOkSavTuuWI6dF3fWGCDEHFij08frutlcXROC5iHaY4aS+TTrmUC6Iu1CmUEXAtw==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.59.0.tgz", + "integrity": "sha512-7rzZvpKrQ8xfzs6tQdpohTrwLwMky3gWfOX4b1usZPgZuLuA1764CLahofl6uCaTsegVPV55nL0yVsFJvvN7Zw==", "requires": { - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/core": "1.54.0", + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-elasticloadbalancingv2": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.54.0.tgz", - "integrity": "sha512-b/SMpM97C3bQCAAdANW90JfIxfZ1FCZn15v7bwoDyUtoO6M+HmnYfdd8wHCbHnKj/gE0UAq79x83/wwVgf8Ukw==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.54.0", - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/region-info": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.59.0.tgz", + "integrity": "sha512-a5hgfXVUFIZXn3YCRAJFVvP8/eRbMEDjL07W01DP3+pBZePwdvaiJ6oh7trs666ThTAlgxkEqtrtqLMluNLaig==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.59.0", + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/region-info": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-events": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.54.0.tgz", - "integrity": "sha512-l45QoTocCC182lXAf2uozpqU7Y+P7NKtUQ3xVXV+9f9Aldjq6vPDml8MxyWGn5liKTcqRzekL4gOoQbUG8Effg==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.59.0.tgz", + "integrity": "sha512-WEgJgwcziiab1uIe2Ag7UODJPKnb/FkwyaLnm8IFBb/4Y6XL6tajmq+MKSmHARzUWnKZbAl3gV/Lioh+VM2udg==", "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-iam": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.54.0.tgz", - "integrity": "sha512-oS2W85oDITpaLqIWAGM+ADBW+csRDkz2n46dkdfoEq0m2Y5ZQESvXi7J9eWjcDu1ofDDDVDl3snbWJTnfW3+Hg==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.59.0.tgz", + "integrity": "sha512-CpUX0k6ynHuWIQsdOfp7a6wJYwwfpbP144mfJfNj0yPiCO6k2vHsup1zfTC6m6vn44cNrUTwnQ0t1r+iWdvzdw==", "requires": { - "@aws-cdk/core": "1.54.0", - "@aws-cdk/region-info": "1.54.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/region-info": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-kinesis": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kinesis/-/aws-kinesis-1.54.0.tgz", - "integrity": "sha512-plTQh+FjyvjUxWIXNaP6aOphY82O+quZquC0/OgSE5ZEaGOx1qD+dL4hXqQePQevwLTOmk82/2di2TbNGTsyRw==", - "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/aws-logs": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kinesis/-/aws-kinesis-1.59.0.tgz", + "integrity": "sha512-M1UOkq4n6r0hxAYTJO2R9BhdOqu19mbT9Hwyl6Xg32kpIKN61XoZjMXJdX6WtOKar3Pst1yjA0fbPgQXMZUfaA==", + "requires": { + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/aws-logs": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-kms": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.54.0.tgz", - "integrity": "sha512-9BL6bPfj0KPtVTp7sm2oplTUlVp3DqWz/NPd9xQcQEW4VPddYTxP+a/hRDSjTYQtE84Gt2+EXT1pjVBcqNpw2A==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.59.0.tgz", + "integrity": "sha512-5qUc1DShsJ1AjZnkC0aRpmp9bgwwFO8/WOaXefhGN+VR3TFfwt8Ad9anG2zakXMw5DmYhhvdnj+9uu5M06XVJw==", "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-lambda": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.54.0.tgz", - "integrity": "sha512-YF/s/2aDTtLSCjRBdH93DrrNdk0HoxSbanIxh25hddbuGMm7se+wS4qtmyyWL/05J/o/BGbWQWOLMUGj1gmaGQ==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-codeguruprofiler": "1.54.0", - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-efs": "1.54.0", - "@aws-cdk/aws-events": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-logs": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/aws-s3-assets": "1.54.0", - "@aws-cdk/aws-sqs": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.59.0.tgz", + "integrity": "sha512-f2uq/9S/xcHSYQG19jYD75ac/puRfoQ9yYWyRIhmkx4NXD2r9NF1WGYRMNVO+zVpGqt7/yJlAwz3wTvFfGijAA==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.59.0", + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-codeguruprofiler": "1.59.0", + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-efs": "1.59.0", + "@aws-cdk/aws-events": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-logs": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/aws-s3-assets": "1.59.0", + "@aws-cdk/aws-sqs": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-lambda-event-sources": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-event-sources/-/aws-lambda-event-sources-1.54.0.tgz", - "integrity": "sha512-/xyJOP/Uh/9818TDF9FRldltT0sFVjroZdRt+PmwUwG9YW5EHNfVPG6g5gt3GRqDtFXWGKA5TsXz8YTYOO7Uzg==", - "requires": { - "@aws-cdk/aws-apigateway": "1.54.0", - "@aws-cdk/aws-dynamodb": "1.54.0", - "@aws-cdk/aws-events": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kinesis": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/aws-s3-notifications": "1.54.0", - "@aws-cdk/aws-sns": "1.54.0", - "@aws-cdk/aws-sns-subscriptions": "1.54.0", - "@aws-cdk/aws-sqs": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-event-sources/-/aws-lambda-event-sources-1.59.0.tgz", + "integrity": "sha512-7kZVipCuAIoYJPHNoGbD8zHSydHRwXcwyfQeuCK1hCpIK3R9mmScRXE07Ll36UXyGL6N1qxwowyukyF98sO3GA==", + "requires": { + "@aws-cdk/aws-apigateway": "1.59.0", + "@aws-cdk/aws-dynamodb": "1.59.0", + "@aws-cdk/aws-events": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kinesis": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/aws-s3-notifications": "1.59.0", + "@aws-cdk/aws-sns": "1.59.0", + "@aws-cdk/aws-sns-subscriptions": "1.59.0", + "@aws-cdk/aws-sqs": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-logs": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.54.0.tgz", - "integrity": "sha512-VjEzm0HD8rwOsH3qe4ZA37eMjQbO0ZxmyMgXtysET9hYs+i0Iwr5cZ/T/FHSY/OBc0BOHJXi/Qx7W8/WARH9eQ==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.59.0.tgz", + "integrity": "sha512-dpMx7W8KBa2MRd3Km+o+SNvUp600hS1XikvEtKTP/Z2rlWlx023u03qJ6WTcv2E1rZpoEq0V7PELzvBiaWzvmQ==", "requires": { - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/core": "1.54.0", + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-route53": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.54.0.tgz", - "integrity": "sha512-8zJk4ljSWpf0HXUtPw+aFB0BZCzewybAtKvd85kmJvKGk4GZLAJdz5EWRchksznxpwO30J+5T7DC4Q/8QuN1Pw==", - "requires": { - "@aws-cdk/aws-ec2": "1.54.0", - "@aws-cdk/aws-logs": "1.54.0", - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.59.0.tgz", + "integrity": "sha512-NrnZ+CndRBqkGuW9mdxv8AVeT+cxkZQg1J0VcB1slgyR8tFca75EUQmcXhWu/4fLyrrU/5KUeKM4IMYxzMe7tw==", + "requires": { + "@aws-cdk/aws-ec2": "1.59.0", + "@aws-cdk/aws-logs": "1.59.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-s3": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.54.0.tgz", - "integrity": "sha512-dMcHtvoAyCTuh74fPY7Y7R+PW3T+vyUZNpDKgaj4I//Q96ybb3YcXyrptIXMNDAWVPL8GNIcEAGfpY5wYLE0qQ==", - "requires": { - "@aws-cdk/aws-events": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.59.0.tgz", + "integrity": "sha512-hdxCBvxVqhzrJ7q6zPV3M6Xcvx0FOrZfIq/608ZnV9uASMUqoWoyssKC8BPxLuQmJg9lMHNOTvz4JEo/tmcINQ==", + "requires": { + "@aws-cdk/aws-events": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-s3-assets": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.54.0.tgz", - "integrity": "sha512-IMGX3mqQyF4OurYh+Pu+HeImlvcOSaeq9WfiH31NzWvHNiR7Zuh2MvRG7r1lo9VNtS4Ttk1nXJFBe2W0yTFDrA==", - "requires": { - "@aws-cdk/assets": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/core": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.59.0.tgz", + "integrity": "sha512-rkmLi9vXLgYUuPy4a1pnBXxVdDP0KklFmT8zkVhy2jb0ZOPHdQAWNskyU03O6hEfWHTAdjNA+f8OlrfOxYXZ+g==", + "requires": { + "@aws-cdk/assets": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/core": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-s3-notifications": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-notifications/-/aws-s3-notifications-1.54.0.tgz", - "integrity": "sha512-9JnqM3b9itcG8kvOFV59/UsRRoIH7h/fBHaL+e/+D6d70+zkmXEn8157NuDWotoU8+of68zaji6rq4fMy98sVw==", - "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-s3": "1.54.0", - "@aws-cdk/aws-sns": "1.54.0", - "@aws-cdk/aws-sqs": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-notifications/-/aws-s3-notifications-1.59.0.tgz", + "integrity": "sha512-W3kDM2cFP5WaNUMNyy7UgfpzzWfqm9pLAlj059ytqrk/Xy7xi0yH4ByiuwFOsgHJ1RF8ggWNrSEh4swo38msjw==", + "requires": { + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-s3": "1.59.0", + "@aws-cdk/aws-sns": "1.59.0", + "@aws-cdk/aws-sqs": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-sam": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.54.0.tgz", - "integrity": "sha512-brICLV616UiXTNOCvvlC7enwvcKaiZLtT7VEPQTf3eiJp9VDs4RfNSMefm5wIkfmHLWPHvRlexPFaZb/PeU7UA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.59.0.tgz", + "integrity": "sha512-TgZYIVFY9Xr3MbgV0St3N1p8lDVPXJZvCbBr0CrGRdsWJdQwDt+ZwWoy0bCfKV2v0A1JUj3jPkWl3VobbDUFtw==", "requires": { - "@aws-cdk/core": "1.54.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-sns": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.54.0.tgz", - "integrity": "sha512-bmP7Z0i26Yq1Ix0yaz+tjJaersLZMOj/WDhfkpaucyPlTCj/hV2BQSGUMWgl3QgadapUPZVDv9DBiqvjLlTPMA==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-events": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/aws-sqs": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.59.0.tgz", + "integrity": "sha512-q2iOd7rgkrhZ4MqXxEp3JwcxOos2RczY/U9slhmSZdkE/3eBsJr17Qor0q1Gic2Z3jazC1t8QpHxaEbLck3vYQ==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-events": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/aws-sqs": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-sns-subscriptions": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.54.0.tgz", - "integrity": "sha512-iizYWPCRbRcPu9IvZTprybFAyBYz/bxJ9qY8YNg13zei4DvmE0KSK7To6ljSY0xXiFjJt4BNVI8BsYrXYOMYrg==", - "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-sns": "1.54.0", - "@aws-cdk/aws-sqs": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.59.0.tgz", + "integrity": "sha512-ew06PMC8Nyo++rMGoKdA87HNcctyoR0oatNjw3483QUUYRxgio/kLWrbcFX4+iwxnVwKKOOD6aTZmQWb7u9/8w==", + "requires": { + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-sns": "1.59.0", + "@aws-cdk/aws-sqs": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-sqs": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.54.0.tgz", - "integrity": "sha512-ykW2CWbIgvKqUGjrhMCCqOYJ2HUYijTtRcRFdrPD0BrSixcwWW4LW/PpJhDgOjfAw20TS1k3ivYl4pcfg2XWQw==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.59.0.tgz", + "integrity": "sha512-8eT1CxxvE2EUqAADiBGmPi4WCJndjrcPAUlc+LODa5qFV4wdANKdZyfYDJ9an4yzJObPe6IdtigLvn3jI7Hxfg==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/aws-ssm": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.54.0.tgz", - "integrity": "sha512-i66zvnOpEpTONI/kKeH4rBg9Lr3w5Z9N+dPJRkqZRqv/f3n2vegPzYX1o3C2eBuVeOCcbgj8775khJO8PbBlww==", - "requires": { - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-kms": "1.54.0", - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.59.0.tgz", + "integrity": "sha512-oGHTXoRqG5nuCgcjsA1tq/Z5snCUXXWU1vBioL/8selhukV4HEMm5O03FJiPAEQ31U196PkrRqludG8JJMv8pA==", + "requires": { + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-kms": "1.59.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/cfnspec": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.54.0.tgz", - "integrity": "sha512-0cel4Z9K3MZfMLuzapGN6qKTv15vQkDb/DMGRMJe7P4h/pkJHYbROv/uiWXx+b5uCUQxLjJYCxnJlJbK0tK8wA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.59.0.tgz", + "integrity": "sha512-Th296cIiWQk2HTtUoA3Tk/2IoMscb+kQrHTmyvh4VIUfoIR6F3gJXTN5+M4hnV4JOHI7QzVlXFTlveL9zENN4w==", "dev": true, "requires": { "md5": "^2.2.1" } }, "@aws-cdk/cloud-assembly-schema": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.54.0.tgz", - "integrity": "sha512-9E4td0R9N/r1fjQaVdeDxVGFqoJNlXMGt0EM2wwiC5JjJj7MkdPVOO0qcvwPdZuYHZMVr/UFAHFjTQBrj6LCEA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.59.0.tgz", + "integrity": "sha512-RG3jWYmDeqB66U4U+vOoQGjib0wjBwMew3aMElWItcNV8uOfZTPIUUQYItr6/Z78lmyi/qzVjtOWWWzVczEXfA==", "requires": { "jsonschema": "^1.2.5", "semver": "^7.2.2" @@ -470,12 +472,12 @@ } }, "@aws-cdk/cloudformation-diff": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.54.0.tgz", - "integrity": "sha512-K97QZS+kPnao/E08mkWCZIdwG4M/WP8Obm1kSvTsH1QADcE5tmmEQNq+G4rVd6J3Xik0wbKtNgfh0iFcUuof/g==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.59.0.tgz", + "integrity": "sha512-0PeDQuvKHp54//claazbnIYvtUlKmW8IAoRLADgU9DyMCHBxyqNNsJrKdC3OxKlgJJiRRVgVZ2qQkmVlbmB73A==", "dev": true, "requires": { - "@aws-cdk/cfnspec": "1.54.0", + "@aws-cdk/cfnspec": "1.59.0", "colors": "^1.4.0", "diff": "^4.0.2", "fast-deep-equal": "^3.1.3", @@ -492,12 +494,12 @@ } }, "@aws-cdk/core": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.54.0.tgz", - "integrity": "sha512-LqHIDudkJp9//7Crfr00l2Z5U+4xkEIiRcEXXNkwEnV2iPzuQErCoDJ+JiQj2kOk3EFbbVpTBPI+6LV1nKSLuw==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.59.0.tgz", + "integrity": "sha512-BULP1wGAFBbYUk3CNWW39wX3ZVtA/hS5XxfOU0upo7rNOTk2QqgS8JW4YdAJFNQ0Nd5GrUYSeNfXhM92qFfnkA==", "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "constructs": "^3.0.2", "fs-extra": "^9.0.1", "minimatch": "^3.0.4" @@ -559,25 +561,25 @@ } }, "@aws-cdk/custom-resources": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.54.0.tgz", - "integrity": "sha512-pTZu5PH3UUX/53fFuIQamidmswaC2JMw97KBXWpFLz1WBPA2Jvb2Y67yiy814HZdz9WdscccIQIcCFh8ms4c7g==", - "requires": { - "@aws-cdk/aws-cloudformation": "1.54.0", - "@aws-cdk/aws-iam": "1.54.0", - "@aws-cdk/aws-lambda": "1.54.0", - "@aws-cdk/aws-logs": "1.54.0", - "@aws-cdk/aws-sns": "1.54.0", - "@aws-cdk/core": "1.54.0", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.59.0.tgz", + "integrity": "sha512-nhxyzFTikODnszfbRUfYwlGSXNx9MUBcu8L2EpSBeSDkBSisMM+rstKbW2HcmhiTPZurEsA7Nmx049R4rEhkMg==", + "requires": { + "@aws-cdk/aws-cloudformation": "1.59.0", + "@aws-cdk/aws-iam": "1.59.0", + "@aws-cdk/aws-lambda": "1.59.0", + "@aws-cdk/aws-logs": "1.59.0", + "@aws-cdk/aws-sns": "1.59.0", + "@aws-cdk/core": "1.59.0", "constructs": "^3.0.2" } }, "@aws-cdk/cx-api": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.54.0.tgz", - "integrity": "sha512-LVskfK1wcL7IhiyY74cQM1JZn4y08IGKvPEldnQVx+OlvB4BDsXRIT4pyRgnGYNWDI5yaQqi+M2D5zqqaLcN+g==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.59.0.tgz", + "integrity": "sha512-3FHhwiZGR4dus7SrJ04IQ8nb5zVidX2j5Ahs75oCz9vyNze4/qLbVJBe/0KHBgHwfKrQ3b05J8ytxgZXeezFKw==", "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", "semver": "^7.2.2" }, "dependencies": { @@ -588,9 +590,9 @@ } }, "@aws-cdk/region-info": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.54.0.tgz", - "integrity": "sha512-nEhNfDRY7AZOt8ebRdGjVPBRu1X25UTqsHbzgPBk+4Ov4CfgAi06onoacGgyTw4WzLikAdVTtRHJULmI158clg==" + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.59.0.tgz", + "integrity": "sha512-RNvLd670L8oXiOKO7QBoenJN8uIKJ54g5YTLlcDve6H1M0g7+IhmY2FNnDlJXnAU3yTNXUQo+ZflbvrYs7L4GQ==" }, "@babel/code-frame": { "version": "7.10.1", @@ -1964,19 +1966,19 @@ "dev": true }, "aws-cdk": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.54.0.tgz", - "integrity": "sha512-nHtf/c4bMShNvnkyV2Jpvq7v6fGhfELsdABChXX3Yjal37Jso8iOq3LJV1hxusad9Dt+79cNKc8P2axNjLuGdQ==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.59.0.tgz", + "integrity": "sha512-RSGcn2ZfRQ83R8uR1Ooo3eiKlVSmeI2EDLaoRoaVyDtAeQIe1u/TrFk6R18Xslhr+079ip7Ii6w20/RaYpnrpg==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/cloudformation-diff": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", - "@aws-cdk/region-info": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/cloudformation-diff": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", + "@aws-cdk/region-info": "1.59.0", "archiver": "^4.0.2", "aws-sdk": "^2.715.0", "camelcase": "^6.0.0", - "cdk-assets": "1.54.0", + "cdk-assets": "1.59.0", "colors": "^1.4.0", "decamelize": "^4.0.0", "fs-extra": "^9.0.1", @@ -1995,18 +1997,18 @@ }, "dependencies": { "@aws-cdk/cfnspec": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.54.0.tgz", - "integrity": "sha512-0cel4Z9K3MZfMLuzapGN6qKTv15vQkDb/DMGRMJe7P4h/pkJHYbROv/uiWXx+b5uCUQxLjJYCxnJlJbK0tK8wA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.59.0.tgz", + "integrity": "sha512-Th296cIiWQk2HTtUoA3Tk/2IoMscb+kQrHTmyvh4VIUfoIR6F3gJXTN5+M4hnV4JOHI7QzVlXFTlveL9zENN4w==", "dev": true, "requires": { "md5": "^2.2.1" } }, "@aws-cdk/cloud-assembly-schema": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.54.0.tgz", - "integrity": "sha512-9E4td0R9N/r1fjQaVdeDxVGFqoJNlXMGt0EM2wwiC5JjJj7MkdPVOO0qcvwPdZuYHZMVr/UFAHFjTQBrj6LCEA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.59.0.tgz", + "integrity": "sha512-RG3jWYmDeqB66U4U+vOoQGjib0wjBwMew3aMElWItcNV8uOfZTPIUUQYItr6/Z78lmyi/qzVjtOWWWzVczEXfA==", "dev": true, "requires": { "jsonschema": "^1.2.5", @@ -2014,12 +2016,12 @@ } }, "@aws-cdk/cloudformation-diff": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.54.0.tgz", - "integrity": "sha512-K97QZS+kPnao/E08mkWCZIdwG4M/WP8Obm1kSvTsH1QADcE5tmmEQNq+G4rVd6J3Xik0wbKtNgfh0iFcUuof/g==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.59.0.tgz", + "integrity": "sha512-0PeDQuvKHp54//claazbnIYvtUlKmW8IAoRLADgU9DyMCHBxyqNNsJrKdC3OxKlgJJiRRVgVZ2qQkmVlbmB73A==", "dev": true, "requires": { - "@aws-cdk/cfnspec": "1.54.0", + "@aws-cdk/cfnspec": "1.59.0", "colors": "^1.4.0", "diff": "^4.0.2", "fast-deep-equal": "^3.1.3", @@ -2028,19 +2030,19 @@ } }, "@aws-cdk/cx-api": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.54.0.tgz", - "integrity": "sha512-LVskfK1wcL7IhiyY74cQM1JZn4y08IGKvPEldnQVx+OlvB4BDsXRIT4pyRgnGYNWDI5yaQqi+M2D5zqqaLcN+g==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.59.0.tgz", + "integrity": "sha512-3FHhwiZGR4dus7SrJ04IQ8nb5zVidX2j5Ahs75oCz9vyNze4/qLbVJBe/0KHBgHwfKrQ3b05J8ytxgZXeezFKw==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", "semver": "^7.2.2" } }, "@aws-cdk/region-info": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.54.0.tgz", - "integrity": "sha512-nEhNfDRY7AZOt8ebRdGjVPBRu1X25UTqsHbzgPBk+4Ov4CfgAi06onoacGgyTw4WzLikAdVTtRHJULmI158clg==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.59.0.tgz", + "integrity": "sha512-RNvLd670L8oXiOKO7QBoenJN8uIKJ54g5YTLlcDve6H1M0g7+IhmY2FNnDlJXnAU3yTNXUQo+ZflbvrYs7L4GQ==", "dev": true }, "@types/color-name": { @@ -2310,64 +2312,37 @@ "dev": true }, "cdk-assets": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/cdk-assets/-/cdk-assets-1.54.0.tgz", - "integrity": "sha512-NI3Aajt/SBO21Pe/H+61403cwDAUq3XKlrJdp8zvf8wz9KdGzZMkoRmpjq7hnKBy5F8FiywMI7e2xpE8Yb8LLQ==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/cdk-assets/-/cdk-assets-1.59.0.tgz", + "integrity": "sha512-kckw91EOhT5depR4SsarrASjqS+uF1KUFJAH0TqqQG8qJbPaHYYQt2on/UWvVXPQEl8TOb7CK9Uq+2vuzL4Y1w==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", - "@aws-cdk/cx-api": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", + "@aws-cdk/cx-api": "1.59.0", "archiver": "^4.0.2", "aws-sdk": "^2.715.0", "glob": "^7.1.6", "yargs": "^15.3.1" }, "dependencies": { - "@aws-cdk/cdk-assets-schema": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cdk-assets-schema/-/cdk-assets-schema-1.46.0.tgz", - "integrity": "sha512-5YM/WHdfiiXkyN+oqPWIcrU7nQUzEVRmViiN+SGy/NZ6Tj9r30N9YygYMZO8z9sM7r20dOTl+pY9SYrclIeNUQ==", - "requires": { - "semver": "^7.2.2" - } - }, "@aws-cdk/cloud-assembly-schema": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.54.0.tgz", - "integrity": "sha512-9E4td0R9N/r1fjQaVdeDxVGFqoJNlXMGt0EM2wwiC5JjJj7MkdPVOO0qcvwPdZuYHZMVr/UFAHFjTQBrj6LCEA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.59.0.tgz", + "integrity": "sha512-RG3jWYmDeqB66U4U+vOoQGjib0wjBwMew3aMElWItcNV8uOfZTPIUUQYItr6/Z78lmyi/qzVjtOWWWzVczEXfA==", "dev": true, "requires": { "jsonschema": "^1.2.5", "semver": "^7.2.2" - }, - "dependencies": { - "jsonschema": { - "version": "1.2.6", - "bundled": true, - "dev": true - }, - "semver": { - "version": "7.3.2", - "bundled": true, - "dev": true - } } }, "@aws-cdk/cx-api": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.54.0.tgz", - "integrity": "sha512-LVskfK1wcL7IhiyY74cQM1JZn4y08IGKvPEldnQVx+OlvB4BDsXRIT4pyRgnGYNWDI5yaQqi+M2D5zqqaLcN+g==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.59.0.tgz", + "integrity": "sha512-3FHhwiZGR4dus7SrJ04IQ8nb5zVidX2j5Ahs75oCz9vyNze4/qLbVJBe/0KHBgHwfKrQ3b05J8ytxgZXeezFKw==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.54.0", + "@aws-cdk/cloud-assembly-schema": "1.59.0", "semver": "^7.2.2" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "bundled": true, - "dev": true - } } }, "@types/color-name": { @@ -2394,7 +2369,7 @@ }, "archiver": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-4.0.2.tgz", + "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c", "integrity": "sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==", "dev": true, "requires": { @@ -2405,12 +2380,64 @@ "readable-stream": "^3.6.0", "tar-stream": "^2.1.2", "zip-stream": "^3.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" } }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, "aws-sdk": { - "version": "2.737.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.737.0.tgz", - "integrity": "sha512-GQ4pplsIyiuFUwlFINhrw5lE9PrY5NIr/EDU5Me9mNGTW5pJXLVpK1ASwlReVhKAZisMUHFHLNvLcGRssR+drg==", + "version": "2.715.0", + "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.715.0.tgz#b890892098e0a4d9e7189ed341267d4a9a6e856b", + "integrity": "sha512-O6ytb66IXFCowp0Ng2bSPM6v/cZVOhjJWFTR1CG4ieG4IroAaVgB3YQKkfPKA0Cy9B/Ovlsm7B737iuroKsd0w==", "dev": true, "requires": { "buffer": "4.9.2", @@ -2422,6 +2449,19 @@ "url": "0.10.3", "uuid": "3.3.2", "xml2js": "0.4.19" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + } } }, "balanced-match": { @@ -2430,6 +2470,51 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "bl": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", @@ -2441,16 +2526,21 @@ } }, "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "version": "5.6.0", + "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "dev": true, "requires": { "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "ieee754": "^1.1.4" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", @@ -2483,12 +2573,77 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "compress-commons": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz#833944d84596e537224dd91cf92f5246823d4f1d", + "integrity": "sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.7" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", @@ -2501,6 +2656,21 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19", @@ -2511,6 +2681,12 @@ "path-exists": "^4.0.0" } }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", @@ -2537,6 +2713,18 @@ "path-is-absolute": "^1.0.0" } }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", @@ -2559,6 +2747,33 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true + }, + "jsonschema": { + "version": "1.2.6", + "resolved": "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b", + "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==", + "dev": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0", @@ -2568,6 +2783,36 @@ "p-locate": "^4.1.0" } }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", @@ -2577,6 +2822,12 @@ "brace-expansion": "^1.1.7" } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "once": { "version": "1.4.0", "resolved": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", @@ -2622,15 +2873,37 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "2.3.7", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "require-directory": { @@ -2645,6 +2918,24 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", @@ -2662,6 +2953,15 @@ "strip-ansi": "^6.0.0" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", @@ -2671,9 +2971,66 @@ "ansi-regex": "^5.0.0" } }, + "tar-stream": { + "version": "2.1.2", + "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325", + "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", + "dev": true, + "requires": { + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, "uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, @@ -2700,6 +3057,30 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, "y18n": { "version": "4.0.0", "resolved": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b", @@ -2734,6 +3115,45 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "zip-stream": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708", + "integrity": "sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } } } }, @@ -3708,7 +4128,8 @@ "semver": { "version": "7.3.2", "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, "set-blocking": { "version": "2.0.0", @@ -7937,14 +8358,14 @@ } }, "md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dev": true, "requires": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" } }, "merge-stream": { diff --git a/infrastructure/package.json b/infrastructure/package.json index be0ac5a..5142ecd 100644 --- a/infrastructure/package.json +++ b/infrastructure/package.json @@ -15,12 +15,12 @@ "cdk": "cdk" }, "devDependencies": { - "@aws-cdk/assert": "1.54.0", + "@aws-cdk/assert": "1.59.0", "@types/jest": "^26.0.0", "@types/node": "14.0.13", "@typescript-eslint/eslint-plugin": "^3.3.0", "@typescript-eslint/parser": "^3.3.0", - "aws-cdk": "1.54.0", + "aws-cdk": "1.59.0", "eslint": "^7.3.0", "eslint-plugin-notice": "^0.9.10", "jest": "^26.0.1", @@ -29,16 +29,16 @@ "typescript": "~3.9.5" }, "dependencies": { - "@aws-cdk/aws-apigateway": "^1.54.0", - "@aws-cdk/aws-dynamodb": "^1.54.0", - "@aws-cdk/aws-cognito": "^1.54.0", - "@aws-cdk/aws-ec2": "^1.54.0", - "@aws-cdk/aws-eks": "^1.54.0", - "@aws-cdk/aws-iam": "^1.54.0", - "@aws-cdk/aws-lambda": "^1.54.0", - "@aws-cdk/aws-lambda-event-sources": "^1.54.0", - "@aws-cdk/aws-sam": "^1.54.0", - "@aws-cdk/aws-sqs": "^1.54.0", - "@aws-cdk/core": "^1.54.0" + "@aws-cdk/aws-apigateway": "^1.59.0", + "@aws-cdk/aws-dynamodb": "^1.59.0", + "@aws-cdk/aws-cognito": "^1.59.0", + "@aws-cdk/aws-ec2": "^1.59.0", + "@aws-cdk/aws-eks": "^1.59.0", + "@aws-cdk/aws-iam": "^1.59.0", + "@aws-cdk/aws-lambda": "^1.59.0", + "@aws-cdk/aws-lambda-event-sources": "^1.59.0", + "@aws-cdk/aws-sam": "^1.59.0", + "@aws-cdk/aws-sqs": "^1.59.0", + "@aws-cdk/core": "^1.59.0" } } diff --git a/infrastructure/test/worker/worker.test.ts b/infrastructure/test/worker/worker.test.ts index b3fd88c..de9981f 100644 --- a/infrastructure/test/worker/worker.test.ts +++ b/infrastructure/test/worker/worker.test.ts @@ -22,6 +22,7 @@ import { LayerVersion } from "@aws-cdk/aws-lambda"; import { LAMBDA_LAYER_ARN } from "../../lib/constants"; import { Worker } from "../../lib/workers/worker"; import { Table, AttributeType } from "@aws-cdk/aws-dynamodb"; +import { PolicyStatement } from "@aws-cdk/aws-iam"; function createWorker(stack: cdk.Stack, extraSGs?: string, handler = "testHandler", timeout = cdk.Duration.minutes(10), batchSize = 3): Worker { if (extraSGs !== undefined) { @@ -41,7 +42,13 @@ function createWorker(stack: cdk.Stack, extraSGs?: string, handler = "testHandle graphTable: table, handler: handler, timeout: timeout, - batchSize: batchSize + batchSize: batchSize, + policyStatements: [ + new PolicyStatement({ + actions: [ "eks:DescribeCluster" ], + resources: [ donorCluster.clusterArn ] + }) + ] }); } diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 48e341a..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -}