From 73f87713d19de5980e436f81c037fed6cbe21875 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Sun, 5 Nov 2023 14:30:28 -0800 Subject: [PATCH 1/5] chore: migrate AWS SDK for JavaScript v2 APIs to v3 in static-website (#632) * chore: run aws-sdk-js-codemod@0.26.1 on packages/static-website/**/*.ts * chore(deps): replace JS SDK v2 to v3 * chore: format webacl_event_handler/index.ts * chore: remove redundant eslint-disable-line * test: update static-website/test/__snapshots__ * fix: ensure sdk dep versions align --------- Co-authored-by: Adrian Dimech Co-authored-by: Adrian Dimech <51220968+agdimech@users.noreply.github.com> --- packages/pdk/.projen/deps.json | 8 +- packages/pdk/package.json | 4 +- packages/static-website/.projen/deps.json | 8 +- packages/static-website/package.json | 2 +- .../src/webacl_event_handler/index.ts | 215 ++-- .../__snapshots__/static-website.test.ts.snap | 12 +- packages/type-safe-api/package.json | 2 +- pnpm-lock.yaml | 1052 ++++++++--------- projenrc/projects/static-website-project.ts | 8 +- 9 files changed, 642 insertions(+), 669 deletions(-) diff --git a/packages/pdk/.projen/deps.json b/packages/pdk/.projen/deps.json index 97282c227..62d8060c9 100644 --- a/packages/pdk/.projen/deps.json +++ b/packages/pdk/.projen/deps.json @@ -21,6 +21,10 @@ "name": "@aws-sdk/client-s3", "type": "build" }, + { + "name": "@aws-sdk/client-wafv2", + "type": "build" + }, { "name": "@faker-js/faker", "version": "8.1.0", @@ -138,10 +142,6 @@ "name": "aws-cdk-lib", "type": "build" }, - { - "name": "aws-sdk", - "type": "build" - }, { "name": "cdk-nag", "type": "build" diff --git a/packages/pdk/package.json b/packages/pdk/package.json index 2ae5aa6eb..fa5256b1f 100644 --- a/packages/pdk/package.json +++ b/packages/pdk/package.json @@ -43,7 +43,8 @@ "@aws-cdk/assert": "^2.68.0", "@aws-cdk/aws-cognito-identitypool-alpha": "^2.93.0-alpha.0", "@aws-cdk/cfnspec": "^2.72.1", - "@aws-sdk/client-s3": "^3.400.0", + "@aws-sdk/client-s3": "^3.441.0", + "@aws-sdk/client-wafv2": "^3.441.0", "@faker-js/faker": "8.1.0", "@nx/devkit": "^16", "@types/fs-extra": "^11.0.1", @@ -72,7 +73,6 @@ "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", "aws-cdk-lib": "^2.93.0", - "aws-sdk": "^2.1448.0", "cdk-nag": "^2.27.115", "constructs": "^10.2.70", "downlevel-dts": "^0.11.0", diff --git a/packages/static-website/.projen/deps.json b/packages/static-website/.projen/deps.json index d483a986a..7a86e4202 100644 --- a/packages/static-website/.projen/deps.json +++ b/packages/static-website/.projen/deps.json @@ -1,5 +1,9 @@ { "dependencies": [ + { + "name": "@aws-sdk/client-wafv2", + "type": "build" + }, { "name": "@types/jest", "type": "build" @@ -23,10 +27,6 @@ "name": "aws-cdk-lib", "type": "build" }, - { - "name": "aws-sdk", - "type": "build" - }, { "name": "cdk-nag", "type": "build" diff --git a/packages/static-website/package.json b/packages/static-website/package.json index fcbbf88f8..5f113626c 100644 --- a/packages/static-website/package.json +++ b/packages/static-website/package.json @@ -29,12 +29,12 @@ "organization": false }, "devDependencies": { + "@aws-sdk/client-wafv2": "^3.441.0", "@types/jest": "^29.5.4", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", "aws-cdk-lib": "^2.93.0", - "aws-sdk": "^2.1448.0", "cdk-nag": "^2.27.115", "constructs": "^10.2.70", "eslint": "^8", diff --git a/packages/static-website/src/webacl_event_handler/index.ts b/packages/static-website/src/webacl_event_handler/index.ts index 73c7dd160..e8f8cf8ee 100644 --- a/packages/static-website/src/webacl_event_handler/index.ts +++ b/packages/static-website/src/webacl_event_handler/index.ts @@ -1,20 +1,7 @@ -/********************************************************************************************************************* - Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +/*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 */ - Licensed under the Apache License, Version 2.0 (the "License"). - You may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ******************************************************************************************************************** */ - -import { WAFV2 } from 'aws-sdk'; // eslint-disable-line +import { Rule, WAFV2 } from "@aws-sdk/client-wafv2"; // eslint-disable-line const DELIMITER = ":"; const SCOPE = "CLOUDFRONT"; @@ -78,8 +65,8 @@ const getWafRules = ( ipSetName: string, managedRules?: any, cidrAllowList?: any -): WAFV2.Rules => { - const rules: WAFV2.Rules = []; +): Array => { + const rules: Array = []; if (cidrAllowList) { rules.push({ @@ -132,33 +119,29 @@ const createWaf = async ( cidrAllowList?: any ) => { const ipSetName = getIpSetName(id); - const createIpSetResponse = await client - .createIPSet({ - Name: ipSetName, - Scope: SCOPE, - Addresses: cidrAllowList?.cidrRanges ?? [], - IPAddressVersion: cidrAllowList?.cidrType ?? "IPV4", - }) - .promise(); - - const createWebAclResponse = await client - .createWebACL({ - Name: id, - DefaultAction: { Allow: {} }, - Scope: SCOPE, - VisibilityConfig: { - CloudWatchMetricsEnabled: true, - MetricName: id, - SampledRequestsEnabled: true, - }, - Rules: getWafRules( - createIpSetResponse.Summary!.ARN!, - ipSetName, - managedRules, - cidrAllowList - ), - }) - .promise(); + const createIpSetResponse = await client.createIPSet({ + Name: ipSetName, + Scope: SCOPE, + Addresses: cidrAllowList?.cidrRanges ?? [], + IPAddressVersion: cidrAllowList?.cidrType ?? "IPV4", + }); + + const createWebAclResponse = await client.createWebACL({ + Name: id, + DefaultAction: { Allow: {} }, + Scope: SCOPE, + VisibilityConfig: { + CloudWatchMetricsEnabled: true, + MetricName: id, + SampledRequestsEnabled: true, + }, + Rules: getWafRules( + createIpSetResponse.Summary!.ARN!, + ipSetName, + managedRules, + cidrAllowList + ), + }); return { PhysicalResourceId: `${createWebAclResponse.Summary?.Id}${DELIMITER}${createIpSetResponse.Summary?.Id}`, @@ -179,52 +162,44 @@ const updateWaf = async ( managedRules?: any, cidrAllowList?: any ) => { - const getIpSetResponse = await client - .getIPSet({ - Id: ipSetId, - Name: ipSetName, - Scope: SCOPE, - }) - .promise(); - - await client - .updateIPSet({ - Id: ipSetId, - Name: ipSetName, - Addresses: cidrAllowList?.cidrRanges ?? [], - Scope: SCOPE, - LockToken: getIpSetResponse.LockToken!, - }) - .promise(); - - const getWebAclResponse = await client - .getWebACL({ - Id: webAclId, - Name: id, - Scope: SCOPE, - }) - .promise(); - - await client - .updateWebACL({ - Name: id, - DefaultAction: { Allow: {} }, - Scope: SCOPE, - VisibilityConfig: { - CloudWatchMetricsEnabled: true, - MetricName: id, - SampledRequestsEnabled: true, - }, - Rules: getWafRules( - getIpSetResponse.IPSet?.ARN!, - ipSetName, - managedRules, - cidrAllowList - ), - Id: getWebAclResponse.WebACL?.Id!, - LockToken: getWebAclResponse.LockToken!, - }) - .promise(); + const getIpSetResponse = await client.getIPSet({ + Id: ipSetId, + Name: ipSetName, + Scope: SCOPE, + }); + + await client.updateIPSet({ + Id: ipSetId, + Name: ipSetName, + Addresses: cidrAllowList?.cidrRanges ?? [], + Scope: SCOPE, + LockToken: getIpSetResponse.LockToken!, + }); + + const getWebAclResponse = await client.getWebACL({ + Id: webAclId, + Name: id, + Scope: SCOPE, + }); + + await client.updateWebACL({ + Name: id, + DefaultAction: { Allow: {} }, + Scope: SCOPE, + VisibilityConfig: { + CloudWatchMetricsEnabled: true, + MetricName: id, + SampledRequestsEnabled: true, + }, + Rules: getWafRules( + getIpSetResponse.IPSet?.ARN!, + ipSetName, + managedRules, + cidrAllowList + ), + Id: getWebAclResponse.WebACL?.Id!, + LockToken: getWebAclResponse.LockToken!, + }); return { Data: { @@ -242,39 +217,31 @@ const deleteWaf = async ( id: string, ipSetName: string ) => { - const getWebAclResponse = await client - .getWebACL({ - Id: webAclId, - Name: id, - Scope: SCOPE, - }) - .promise(); - - await client - .deleteWebACL({ - Id: webAclId, - Name: id, - Scope: SCOPE, - LockToken: getWebAclResponse.LockToken!, - }) - .promise(); - - const getIpSetResponse = await client - .getIPSet({ - Id: ipSetId, - Name: ipSetName, - Scope: SCOPE, - }) - .promise(); - - await client - .deleteIPSet({ - Id: ipSetId, - Name: ipSetName, - Scope: SCOPE, - LockToken: getIpSetResponse.LockToken!, - }) - .promise(); + const getWebAclResponse = await client.getWebACL({ + Id: webAclId, + Name: id, + Scope: SCOPE, + }); + + await client.deleteWebACL({ + Id: webAclId, + Name: id, + Scope: SCOPE, + LockToken: getWebAclResponse.LockToken!, + }); + + const getIpSetResponse = await client.getIPSet({ + Id: ipSetId, + Name: ipSetName, + Scope: SCOPE, + }); + + await client.deleteIPSet({ + Id: ipSetId, + Name: ipSetName, + Scope: SCOPE, + LockToken: getIpSetResponse.LockToken!, + }); return { Data: { diff --git a/packages/static-website/test/__snapshots__/static-website.test.ts.snap b/packages/static-website/test/__snapshots__/static-website.test.ts.snap index 7da2497a8..3f880eb8e 100644 --- a/packages/static-website/test/__snapshots__/static-website.test.ts.snap +++ b/packages/static-website/test/__snapshots__/static-website.test.ts.snap @@ -1469,7 +1469,7 @@ exports[`Static Website Unit Tests Defaults - Nested 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "10cb4ff048626ebdf5a4a122a7c553b498e484da6697ac64aa7ff71dd0875efd.zip", + "S3Key": "8a9d905440610287db088291426c0110216eb36a941cd72084d881ec2cd0a0e0.zip", }, "FunctionName": "Default-Nested-Stack-AclEvent-bb313c", "Handler": "index.onEvent", @@ -4030,7 +4030,7 @@ exports[`Static Website Unit Tests Defaults - using AwsPrototyping NagPack 1`] = "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "10cb4ff048626ebdf5a4a122a7c553b498e484da6697ac64aa7ff71dd0875efd.zip", + "S3Key": "8a9d905440610287db088291426c0110216eb36a941cd72084d881ec2cd0a0e0.zip", }, "FunctionName": "Default-AclEvent-fed248", "Handler": "index.onEvent", @@ -6606,7 +6606,7 @@ exports[`Static Website Unit Tests Defaults 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "10cb4ff048626ebdf5a4a122a7c553b498e484da6697ac64aa7ff71dd0875efd.zip", + "S3Key": "8a9d905440610287db088291426c0110216eb36a941cd72084d881ec2cd0a0e0.zip", }, "FunctionName": "Default-AclEvent-fed248", "Handler": "index.onEvent", @@ -9191,7 +9191,7 @@ exports[`Static Website Unit Tests Defaults and Geoblocking - using AwsPrototypi "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "10cb4ff048626ebdf5a4a122a7c553b498e484da6697ac64aa7ff71dd0875efd.zip", + "S3Key": "8a9d905440610287db088291426c0110216eb36a941cd72084d881ec2cd0a0e0.zip", }, "FunctionName": "Default-AclEvent-fed248", "Handler": "index.onEvent", @@ -11861,7 +11861,7 @@ exports[`Static Website Unit Tests Defaults with suppression rule - using AwsPro "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "10cb4ff048626ebdf5a4a122a7c553b498e484da6697ac64aa7ff71dd0875efd.zip", + "S3Key": "8a9d905440610287db088291426c0110216eb36a941cd72084d881ec2cd0a0e0.zip", }, "FunctionName": "Default-AclEvent-fed248", "Handler": "index.onEvent", @@ -16016,7 +16016,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "10cb4ff048626ebdf5a4a122a7c553b498e484da6697ac64aa7ff71dd0875efd.zip", + "S3Key": "8a9d905440610287db088291426c0110216eb36a941cd72084d881ec2cd0a0e0.zip", }, "FunctionName": "Default-AclEvent-caebea", "Handler": "index.onEvent", diff --git a/packages/type-safe-api/package.json b/packages/type-safe-api/package.json index 2df980290..29c31a6fb 100644 --- a/packages/type-safe-api/package.json +++ b/packages/type-safe-api/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", - "@aws-sdk/client-s3": "^3.400.0", + "@aws-sdk/client-s3": "^3.441.0", "@aws/monorepo": "^0.x", "@faker-js/faker": "8.1.0", "@types/fs-extra": "^11.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39e01802c..2a954a78c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1080,8 +1080,11 @@ importers: specifier: ^2.72.1 version: 2.72.1 '@aws-sdk/client-s3': - specifier: ^3.400.0 - version: 3.400.0 + specifier: ^3.441.0 + version: 3.441.0 + '@aws-sdk/client-wafv2': + specifier: ^3.441.0 + version: 3.441.0 '@faker-js/faker': specifier: 8.1.0 version: 8.1.0 @@ -1166,9 +1169,6 @@ importers: aws-cdk-lib: specifier: ^2.93.0 version: 2.93.0(constructs@10.2.70) - aws-sdk: - specifier: ^2.1448.0 - version: 2.1448.0 cdk-nag: specifier: ^2.27.115 version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) @@ -1447,6 +1447,9 @@ importers: specifier: ^0.x version: link:../pdk-nag devDependencies: + '@aws-sdk/client-wafv2': + specifier: ^3.441.0 + version: 3.441.0 '@types/jest': specifier: ^29.5.4 version: 29.5.4 @@ -1462,9 +1465,6 @@ importers: aws-cdk-lib: specifier: ^2.93.0 version: 2.93.0(constructs@10.2.70) - aws-sdk: - specifier: ^2.1448.0 - version: 2.1448.0 cdk-nag: specifier: ^2.27.115 version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) @@ -1554,8 +1554,8 @@ importers: specifier: 10.1.0 version: 10.1.0(openapi-types@12.1.3) '@aws-sdk/client-s3': - specifier: ^3.400.0 - version: 3.400.0 + specifier: ^3.441.0 + version: 3.441.0 '@faker-js/faker': specifier: 8.1.0 version: 8.1.0 @@ -1764,7 +1764,7 @@ packages: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 tslib: 1.14.1 dev: true @@ -1772,7 +1772,7 @@ packages: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 tslib: 1.14.1 dev: true @@ -1788,7 +1788,7 @@ packages: '@aws-crypto/ie11-detection': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -1801,7 +1801,7 @@ packages: '@aws-crypto/sha256-js': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -1811,7 +1811,7 @@ packages: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 tslib: 1.14.1 dev: true @@ -1824,153 +1824,161 @@ packages: /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: true - /@aws-sdk/client-s3@3.400.0: - resolution: {integrity: sha512-lnv0pb79Czl8fCMs/z7yM56LvoKTri1I4jX/V33trHMFKPQDoy8i24wxG8+TZl3MUmnUyoQS7tlukh7IFkii1Q==} + /@aws-sdk/client-s3@3.441.0: + resolution: {integrity: sha512-tJUhHk4Nvakw/q3IVI2oDFCu48DzuPCMu2G3n42JPyvmY0RvmtRjduduoG1lYIGgRKJu81/MFr9i8CGYNK+/5A==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha1-browser': 3.0.0 '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.398.0 - '@aws-sdk/credential-provider-node': 3.398.0 - '@aws-sdk/middleware-bucket-endpoint': 3.398.0 - '@aws-sdk/middleware-expect-continue': 3.398.0 - '@aws-sdk/middleware-flexible-checksums': 3.400.0 - '@aws-sdk/middleware-host-header': 3.398.0 - '@aws-sdk/middleware-location-constraint': 3.398.0 - '@aws-sdk/middleware-logger': 3.398.0 - '@aws-sdk/middleware-recursion-detection': 3.398.0 - '@aws-sdk/middleware-sdk-s3': 3.398.0 - '@aws-sdk/middleware-signing': 3.398.0 - '@aws-sdk/middleware-ssec': 3.398.0 - '@aws-sdk/middleware-user-agent': 3.398.0 - '@aws-sdk/signature-v4-multi-region': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@aws-sdk/util-endpoints': 3.398.0 - '@aws-sdk/util-user-agent-browser': 3.398.0 - '@aws-sdk/util-user-agent-node': 3.398.0 + '@aws-sdk/client-sts': 3.441.0 + '@aws-sdk/core': 3.441.0 + '@aws-sdk/credential-provider-node': 3.441.0 + '@aws-sdk/middleware-bucket-endpoint': 3.433.0 + '@aws-sdk/middleware-expect-continue': 3.433.0 + '@aws-sdk/middleware-flexible-checksums': 3.433.0 + '@aws-sdk/middleware-host-header': 3.433.0 + '@aws-sdk/middleware-location-constraint': 3.433.0 + '@aws-sdk/middleware-logger': 3.433.0 + '@aws-sdk/middleware-recursion-detection': 3.433.0 + '@aws-sdk/middleware-sdk-s3': 3.440.0 + '@aws-sdk/middleware-signing': 3.433.0 + '@aws-sdk/middleware-ssec': 3.433.0 + '@aws-sdk/middleware-user-agent': 3.438.0 + '@aws-sdk/region-config-resolver': 3.433.0 + '@aws-sdk/signature-v4-multi-region': 3.437.0 + '@aws-sdk/types': 3.433.0 + '@aws-sdk/util-endpoints': 3.438.0 + '@aws-sdk/util-user-agent-browser': 3.433.0 + '@aws-sdk/util-user-agent-node': 3.437.0 '@aws-sdk/xml-builder': 3.310.0 - '@smithy/config-resolver': 2.0.5 - '@smithy/eventstream-serde-browser': 2.0.5 - '@smithy/eventstream-serde-config-resolver': 2.0.5 - '@smithy/eventstream-serde-node': 2.0.5 - '@smithy/fetch-http-handler': 2.0.5 - '@smithy/hash-blob-browser': 2.0.5 - '@smithy/hash-node': 2.0.5 - '@smithy/hash-stream-node': 2.0.5 - '@smithy/invalid-dependency': 2.0.5 - '@smithy/md5-js': 2.0.5 - '@smithy/middleware-content-length': 2.0.5 - '@smithy/middleware-endpoint': 2.0.5 - '@smithy/middleware-retry': 2.0.5 - '@smithy/middleware-serde': 2.0.5 - '@smithy/middleware-stack': 2.0.0 - '@smithy/node-config-provider': 2.0.5 - '@smithy/node-http-handler': 2.0.5 - '@smithy/protocol-http': 2.0.5 - '@smithy/smithy-client': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/url-parser': 2.0.5 + '@smithy/config-resolver': 2.0.16 + '@smithy/eventstream-serde-browser': 2.0.12 + '@smithy/eventstream-serde-config-resolver': 2.0.12 + '@smithy/eventstream-serde-node': 2.0.12 + '@smithy/fetch-http-handler': 2.2.4 + '@smithy/hash-blob-browser': 2.0.12 + '@smithy/hash-node': 2.0.12 + '@smithy/hash-stream-node': 2.0.12 + '@smithy/invalid-dependency': 2.0.12 + '@smithy/md5-js': 2.0.12 + '@smithy/middleware-content-length': 2.0.14 + '@smithy/middleware-endpoint': 2.1.3 + '@smithy/middleware-retry': 2.0.18 + '@smithy/middleware-serde': 2.0.12 + '@smithy/middleware-stack': 2.0.6 + '@smithy/node-config-provider': 2.1.3 + '@smithy/node-http-handler': 2.1.8 + '@smithy/protocol-http': 3.0.8 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.5 - '@smithy/util-defaults-mode-node': 2.0.5 - '@smithy/util-retry': 2.0.0 - '@smithy/util-stream': 2.0.5 + '@smithy/util-defaults-mode-browser': 2.0.16 + '@smithy/util-defaults-mode-node': 2.0.21 + '@smithy/util-endpoints': 1.0.2 + '@smithy/util-retry': 2.0.5 + '@smithy/util-stream': 2.0.17 '@smithy/util-utf8': 2.0.0 - '@smithy/util-waiter': 2.0.5 + '@smithy/util-waiter': 2.0.12 fast-xml-parser: 4.2.5 tslib: 2.5.0 transitivePeerDependencies: - - '@aws-sdk/signature-v4-crt' - aws-crt dev: true - /@aws-sdk/client-sso@3.398.0: - resolution: {integrity: sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==} + /@aws-sdk/client-sso@3.441.0: + resolution: {integrity: sha512-gndGymu4cEIN7WWhQ67RO0JMda09EGBlay2L8IKCHBK/65Y34FHUX1tCNbO2qezEzsi6BPW5o2n53Rd9QqpHUw==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.398.0 - '@aws-sdk/middleware-logger': 3.398.0 - '@aws-sdk/middleware-recursion-detection': 3.398.0 - '@aws-sdk/middleware-user-agent': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@aws-sdk/util-endpoints': 3.398.0 - '@aws-sdk/util-user-agent-browser': 3.398.0 - '@aws-sdk/util-user-agent-node': 3.398.0 - '@smithy/config-resolver': 2.0.5 - '@smithy/fetch-http-handler': 2.0.5 - '@smithy/hash-node': 2.0.5 - '@smithy/invalid-dependency': 2.0.5 - '@smithy/middleware-content-length': 2.0.5 - '@smithy/middleware-endpoint': 2.0.5 - '@smithy/middleware-retry': 2.0.5 - '@smithy/middleware-serde': 2.0.5 - '@smithy/middleware-stack': 2.0.0 - '@smithy/node-config-provider': 2.0.5 - '@smithy/node-http-handler': 2.0.5 - '@smithy/protocol-http': 2.0.5 - '@smithy/smithy-client': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/url-parser': 2.0.5 + '@aws-sdk/core': 3.441.0 + '@aws-sdk/middleware-host-header': 3.433.0 + '@aws-sdk/middleware-logger': 3.433.0 + '@aws-sdk/middleware-recursion-detection': 3.433.0 + '@aws-sdk/middleware-user-agent': 3.438.0 + '@aws-sdk/region-config-resolver': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@aws-sdk/util-endpoints': 3.438.0 + '@aws-sdk/util-user-agent-browser': 3.433.0 + '@aws-sdk/util-user-agent-node': 3.437.0 + '@smithy/config-resolver': 2.0.16 + '@smithy/fetch-http-handler': 2.2.4 + '@smithy/hash-node': 2.0.12 + '@smithy/invalid-dependency': 2.0.12 + '@smithy/middleware-content-length': 2.0.14 + '@smithy/middleware-endpoint': 2.1.3 + '@smithy/middleware-retry': 2.0.18 + '@smithy/middleware-serde': 2.0.12 + '@smithy/middleware-stack': 2.0.6 + '@smithy/node-config-provider': 2.1.3 + '@smithy/node-http-handler': 2.1.8 + '@smithy/protocol-http': 3.0.8 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.5 - '@smithy/util-defaults-mode-node': 2.0.5 - '@smithy/util-retry': 2.0.0 + '@smithy/util-defaults-mode-browser': 2.0.16 + '@smithy/util-defaults-mode-node': 2.0.21 + '@smithy/util-endpoints': 1.0.2 + '@smithy/util-retry': 2.0.5 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 transitivePeerDependencies: - aws-crt dev: true - /@aws-sdk/client-sts@3.398.0: - resolution: {integrity: sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==} + /@aws-sdk/client-sts@3.441.0: + resolution: {integrity: sha512-GL0Cw2v7XL1cn0T+Sk5VHLlgBJoUdMsysXsHa1mFdk0l6XHMAAnwXVXiNnjmoDSPrG0psz7dL2AKzPVRXbIUjA==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/credential-provider-node': 3.398.0 - '@aws-sdk/middleware-host-header': 3.398.0 - '@aws-sdk/middleware-logger': 3.398.0 - '@aws-sdk/middleware-recursion-detection': 3.398.0 - '@aws-sdk/middleware-sdk-sts': 3.398.0 - '@aws-sdk/middleware-signing': 3.398.0 - '@aws-sdk/middleware-user-agent': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@aws-sdk/util-endpoints': 3.398.0 - '@aws-sdk/util-user-agent-browser': 3.398.0 - '@aws-sdk/util-user-agent-node': 3.398.0 - '@smithy/config-resolver': 2.0.5 - '@smithy/fetch-http-handler': 2.0.5 - '@smithy/hash-node': 2.0.5 - '@smithy/invalid-dependency': 2.0.5 - '@smithy/middleware-content-length': 2.0.5 - '@smithy/middleware-endpoint': 2.0.5 - '@smithy/middleware-retry': 2.0.5 - '@smithy/middleware-serde': 2.0.5 - '@smithy/middleware-stack': 2.0.0 - '@smithy/node-config-provider': 2.0.5 - '@smithy/node-http-handler': 2.0.5 - '@smithy/protocol-http': 2.0.5 - '@smithy/smithy-client': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/url-parser': 2.0.5 + '@aws-sdk/core': 3.441.0 + '@aws-sdk/credential-provider-node': 3.441.0 + '@aws-sdk/middleware-host-header': 3.433.0 + '@aws-sdk/middleware-logger': 3.433.0 + '@aws-sdk/middleware-recursion-detection': 3.433.0 + '@aws-sdk/middleware-sdk-sts': 3.433.0 + '@aws-sdk/middleware-signing': 3.433.0 + '@aws-sdk/middleware-user-agent': 3.438.0 + '@aws-sdk/region-config-resolver': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@aws-sdk/util-endpoints': 3.438.0 + '@aws-sdk/util-user-agent-browser': 3.433.0 + '@aws-sdk/util-user-agent-node': 3.437.0 + '@smithy/config-resolver': 2.0.16 + '@smithy/fetch-http-handler': 2.2.4 + '@smithy/hash-node': 2.0.12 + '@smithy/invalid-dependency': 2.0.12 + '@smithy/middleware-content-length': 2.0.14 + '@smithy/middleware-endpoint': 2.1.3 + '@smithy/middleware-retry': 2.0.18 + '@smithy/middleware-serde': 2.0.12 + '@smithy/middleware-stack': 2.0.6 + '@smithy/node-config-provider': 2.1.3 + '@smithy/node-http-handler': 2.1.8 + '@smithy/protocol-http': 3.0.8 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.5 - '@smithy/util-defaults-mode-node': 2.0.5 - '@smithy/util-retry': 2.0.0 + '@smithy/util-defaults-mode-browser': 2.0.16 + '@smithy/util-defaults-mode-node': 2.0.21 + '@smithy/util-endpoints': 1.0.2 + '@smithy/util-retry': 2.0.5 '@smithy/util-utf8': 2.0.0 fast-xml-parser: 4.2.5 tslib: 2.5.0 @@ -1978,281 +1986,345 @@ packages: - aws-crt dev: true - /@aws-sdk/credential-provider-env@3.398.0: - resolution: {integrity: sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==} + /@aws-sdk/client-wafv2@3.441.0: + resolution: {integrity: sha512-+f54XpzeaOYYIWHdtha4d85z9YtHnIQp8xBaZlBl2191nogCjZErMGg6yEZyYAMFkztym+eUDYm96YfkYlLL0A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.441.0 + '@aws-sdk/core': 3.441.0 + '@aws-sdk/credential-provider-node': 3.441.0 + '@aws-sdk/middleware-host-header': 3.433.0 + '@aws-sdk/middleware-logger': 3.433.0 + '@aws-sdk/middleware-recursion-detection': 3.433.0 + '@aws-sdk/middleware-signing': 3.433.0 + '@aws-sdk/middleware-user-agent': 3.438.0 + '@aws-sdk/region-config-resolver': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@aws-sdk/util-endpoints': 3.438.0 + '@aws-sdk/util-user-agent-browser': 3.433.0 + '@aws-sdk/util-user-agent-node': 3.437.0 + '@smithy/config-resolver': 2.0.16 + '@smithy/fetch-http-handler': 2.2.4 + '@smithy/hash-node': 2.0.12 + '@smithy/invalid-dependency': 2.0.12 + '@smithy/middleware-content-length': 2.0.14 + '@smithy/middleware-endpoint': 2.1.3 + '@smithy/middleware-retry': 2.0.18 + '@smithy/middleware-serde': 2.0.12 + '@smithy/middleware-stack': 2.0.6 + '@smithy/node-config-provider': 2.1.3 + '@smithy/node-http-handler': 2.1.8 + '@smithy/protocol-http': 3.0.8 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.16 + '@smithy/util-defaults-mode-node': 2.0.21 + '@smithy/util-endpoints': 1.0.2 + '@smithy/util-retry': 2.0.5 + '@smithy/util-utf8': 2.0.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + + /@aws-sdk/core@3.441.0: + resolution: {integrity: sha512-gV0eQwR0VnSPUYAbgDkbBtfXbSpZgl/K6UB13DP1IFFjQYbF/BxYwvcQe4jHoPOBifSgjEbl8MfOOeIyI7k9vg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/smithy-client': 2.1.12 + dev: true + + /@aws-sdk/credential-provider-env@3.433.0: + resolution: {integrity: sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.433.0 + '@smithy/property-provider': 2.0.13 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/credential-provider-ini@3.398.0: - resolution: {integrity: sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==} + /@aws-sdk/credential-provider-ini@3.441.0: + resolution: {integrity: sha512-SQipQYxYqDUuSOfIhDmaTdwPTcndGQotGZXWJl56mMWqAhU8MkwjK+oMf3VgRt/umJC0QwUCF5HUHIj7gSB1JA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.398.0 - '@aws-sdk/credential-provider-process': 3.398.0 - '@aws-sdk/credential-provider-sso': 3.398.0 - '@aws-sdk/credential-provider-web-identity': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@smithy/credential-provider-imds': 2.0.5 - '@smithy/property-provider': 2.0.5 - '@smithy/shared-ini-file-loader': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/credential-provider-env': 3.433.0 + '@aws-sdk/credential-provider-process': 3.433.0 + '@aws-sdk/credential-provider-sso': 3.441.0 + '@aws-sdk/credential-provider-web-identity': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@smithy/credential-provider-imds': 2.0.18 + '@smithy/property-provider': 2.0.13 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 transitivePeerDependencies: - aws-crt dev: true - /@aws-sdk/credential-provider-node@3.398.0: - resolution: {integrity: sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==} + /@aws-sdk/credential-provider-node@3.441.0: + resolution: {integrity: sha512-WB9p37yHq6fGJt6Vll29ijHbkh9VDbPM/n5ns73bTAgFD7R0ht5kPmdmHGQA6m3RKjcHLPbymQ3lXykkMwWf/Q==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.398.0 - '@aws-sdk/credential-provider-ini': 3.398.0 - '@aws-sdk/credential-provider-process': 3.398.0 - '@aws-sdk/credential-provider-sso': 3.398.0 - '@aws-sdk/credential-provider-web-identity': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@smithy/credential-provider-imds': 2.0.5 - '@smithy/property-provider': 2.0.5 - '@smithy/shared-ini-file-loader': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/credential-provider-env': 3.433.0 + '@aws-sdk/credential-provider-ini': 3.441.0 + '@aws-sdk/credential-provider-process': 3.433.0 + '@aws-sdk/credential-provider-sso': 3.441.0 + '@aws-sdk/credential-provider-web-identity': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@smithy/credential-provider-imds': 2.0.18 + '@smithy/property-provider': 2.0.13 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 transitivePeerDependencies: - aws-crt dev: true - /@aws-sdk/credential-provider-process@3.398.0: - resolution: {integrity: sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==} + /@aws-sdk/credential-provider-process@3.433.0: + resolution: {integrity: sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 - '@smithy/shared-ini-file-loader': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/property-provider': 2.0.13 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/credential-provider-sso@3.398.0: - resolution: {integrity: sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==} + /@aws-sdk/credential-provider-sso@3.441.0: + resolution: {integrity: sha512-pTg16G+62mWCE8yGKuQnEBqPdpG5g71remf2jUqXaI1c7GCzbnkQDV9eD4DaAGOvzIs0wo9zAQnS2kVDPFlCYA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso': 3.398.0 - '@aws-sdk/token-providers': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 - '@smithy/shared-ini-file-loader': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/client-sso': 3.441.0 + '@aws-sdk/token-providers': 3.438.0 + '@aws-sdk/types': 3.433.0 + '@smithy/property-provider': 2.0.13 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 transitivePeerDependencies: - aws-crt dev: true - /@aws-sdk/credential-provider-web-identity@3.398.0: - resolution: {integrity: sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==} + /@aws-sdk/credential-provider-web-identity@3.433.0: + resolution: {integrity: sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/property-provider': 2.0.13 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-bucket-endpoint@3.398.0: - resolution: {integrity: sha512-+iDHiRofK/vIY94RWAXkSnR4rBPzc2dPHmLp+FDKywq1y708H9W7TOT37dpn+KSFeO4k2FfddFjzWBHsaeakCA==} + /@aws-sdk/middleware-bucket-endpoint@3.433.0: + resolution: {integrity: sha512-Lk1xIu2tWTRa1zDw5hCF1RrpWQYSodUhrS/q3oKz8IAoFqEy+lNaD5jx+fycuZb5EkE4IzWysT+8wVkd0mAnOg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/node-config-provider': 2.1.3 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 '@smithy/util-config-provider': 2.0.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-expect-continue@3.398.0: - resolution: {integrity: sha512-d6he+Qqwh1yqml9duXSv5iKJ2lS0PVrF2UEsVew2GFxfUif0E/davTZJjvWtnelbuIGcTP+wDKVVjLwBN2sN/g==} + /@aws-sdk/middleware-expect-continue@3.433.0: + resolution: {integrity: sha512-Uq2rPIsjz0CR2sulM/HyYr5WiqiefrSRLdwUZuA7opxFSfE808w5DBWSprHxbH3rbDSQR4nFiOiVYIH8Eth7nA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-flexible-checksums@3.400.0: - resolution: {integrity: sha512-lpsumd5/G+eAMTr61h/cJQZ8+i+xzC6OG3bvUcbRHqcjN49XgeNLcPfYcr6Rzf0QHxmuCN4te/4XGU3Fif2YVA==} + /@aws-sdk/middleware-flexible-checksums@3.433.0: + resolution: {integrity: sha512-Ptssx373+I7EzFUWjp/i/YiNFt6I6sDuRHz6DOUR9nmmRTlHHqmdcBXlJL2d9wwFxoBRCN8/PXGsTc/DJ4c95Q==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/crc32': 3.0.0 '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 '@smithy/is-array-buffer': 2.0.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-host-header@3.398.0: - resolution: {integrity: sha512-m+5laWdBaxIZK2ko0OwcCHJZJ5V1MgEIt8QVQ3k4/kOkN9ICjevOYmba751pHoTnbOYB7zQd6D2OT3EYEEsUcA==} + /@aws-sdk/middleware-host-header@3.433.0: + resolution: {integrity: sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-location-constraint@3.398.0: - resolution: {integrity: sha512-it+olJf1Lf2bmH8OL/N1jMOFB0zEVYs4rIzgFrluTRCuPatRuDi4LsXS8zqYxkBa05JE8JmqwW5gCzAmWyLLqw==} + /@aws-sdk/middleware-location-constraint@3.433.0: + resolution: {integrity: sha512-2YD860TGntwZifIUbxm+lFnNJJhByR/RB/+fV1I8oGKg+XX2rZU+94pRfHXRywoZKlCA0L+LGDA1I56jxrB9sw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-logger@3.398.0: - resolution: {integrity: sha512-CiJjW+FL12elS6Pn7/UVjVK8HWHhXMfvHZvOwx/Qkpy340sIhkuzOO6fZEruECDTZhl2Wqn81XdJ1ZQ4pRKpCg==} + /@aws-sdk/middleware-logger@3.433.0: + resolution: {integrity: sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-recursion-detection@3.398.0: - resolution: {integrity: sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==} + /@aws-sdk/middleware-recursion-detection@3.433.0: + resolution: {integrity: sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-sdk-s3@3.398.0: - resolution: {integrity: sha512-yweSMc/TyiFtqc52hFMKQJvTm3i1KCoW5mB3o/Sla6zsHBh+nS6TTaBmo+2kcDIR7AKODwW+FLCTHWiazb7J3Q==} + /@aws-sdk/middleware-sdk-s3@3.440.0: + resolution: {integrity: sha512-DVTSr+82Z8jR9xTwDN3YHzxX7qvi0n96V92OfxvSRDq2BldCEx/KEL1orUZjw97SAXhINOlUWjRR7j4HpwWQtQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/protocol-http': 3.0.8 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-sdk-sts@3.398.0: - resolution: {integrity: sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==} + /@aws-sdk/middleware-sdk-sts@3.433.0: + resolution: {integrity: sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/middleware-signing': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@smithy/types': 2.2.2 + '@aws-sdk/middleware-signing': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-signing@3.398.0: - resolution: {integrity: sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==} + /@aws-sdk/middleware-signing@3.433.0: + resolution: {integrity: sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 - '@smithy/protocol-http': 2.0.5 + '@aws-sdk/types': 3.433.0 + '@smithy/property-provider': 2.0.13 + '@smithy/protocol-http': 3.0.8 '@smithy/signature-v4': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/util-middleware': 2.0.0 + '@smithy/types': 2.4.0 + '@smithy/util-middleware': 2.0.5 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-ssec@3.398.0: - resolution: {integrity: sha512-QtKr/hPcRugKSIZAH4+7hbUfdW7Lg+OQvD25nJn7ic1JHRZ+eDctEFxdsmnt68lE6aZxOcHCWHAW6/umcA93Dw==} + /@aws-sdk/middleware-ssec@3.433.0: + resolution: {integrity: sha512-2AMaPx0kYfCiekxoL7aqFqSSoA9du+yI4zefpQNLr+1cZOerYiDxdsZ4mbqStR1CVFaX6U6hrYokXzjInsvETw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/middleware-user-agent@3.398.0: - resolution: {integrity: sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==} + /@aws-sdk/middleware-user-agent@3.438.0: + resolution: {integrity: sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 - '@aws-sdk/util-endpoints': 3.398.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@aws-sdk/util-endpoints': 3.438.0 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/signature-v4-multi-region@3.398.0: - resolution: {integrity: sha512-8fTqTxRDWE03T7ClaWlCfbwuSae//01XMNVy2a9g5QgaelQh7ZZyU3ZIJiV8gIj8v6ZM0NGn9Bz1liI/vmNmcw==} + /@aws-sdk/region-config-resolver@3.433.0: + resolution: {integrity: sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==} engines: {node: '>=14.0.0'} - peerDependencies: - '@aws-sdk/signature-v4-crt': ^3.118.0 - peerDependenciesMeta: - '@aws-sdk/signature-v4-crt': - optional: true dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/protocol-http': 2.0.5 + '@smithy/node-config-provider': 2.1.3 + '@smithy/types': 2.4.0 + '@smithy/util-config-provider': 2.0.0 + '@smithy/util-middleware': 2.0.5 + tslib: 2.5.0 + dev: true + + /@aws-sdk/signature-v4-multi-region@3.437.0: + resolution: {integrity: sha512-MmrqudssOs87JgVg7HGVdvJws/t4kcOrJJd+975ki+DPeSoyK2U4zBDfDkJ+n0tFuZBs3sLwLh0QXE7BV28rRA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.433.0 + '@smithy/protocol-http': 3.0.8 '@smithy/signature-v4': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@aws-sdk/token-providers@3.398.0: - resolution: {integrity: sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==} + /@aws-sdk/token-providers@3.438.0: + resolution: {integrity: sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.398.0 - '@aws-sdk/middleware-logger': 3.398.0 - '@aws-sdk/middleware-recursion-detection': 3.398.0 - '@aws-sdk/middleware-user-agent': 3.398.0 - '@aws-sdk/types': 3.398.0 - '@aws-sdk/util-endpoints': 3.398.0 - '@aws-sdk/util-user-agent-browser': 3.398.0 - '@aws-sdk/util-user-agent-node': 3.398.0 - '@smithy/config-resolver': 2.0.5 - '@smithy/fetch-http-handler': 2.0.5 - '@smithy/hash-node': 2.0.5 - '@smithy/invalid-dependency': 2.0.5 - '@smithy/middleware-content-length': 2.0.5 - '@smithy/middleware-endpoint': 2.0.5 - '@smithy/middleware-retry': 2.0.5 - '@smithy/middleware-serde': 2.0.5 - '@smithy/middleware-stack': 2.0.0 - '@smithy/node-config-provider': 2.0.5 - '@smithy/node-http-handler': 2.0.5 - '@smithy/property-provider': 2.0.5 - '@smithy/protocol-http': 2.0.5 - '@smithy/shared-ini-file-loader': 2.0.5 - '@smithy/smithy-client': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/url-parser': 2.0.5 + '@aws-sdk/middleware-host-header': 3.433.0 + '@aws-sdk/middleware-logger': 3.433.0 + '@aws-sdk/middleware-recursion-detection': 3.433.0 + '@aws-sdk/middleware-user-agent': 3.438.0 + '@aws-sdk/region-config-resolver': 3.433.0 + '@aws-sdk/types': 3.433.0 + '@aws-sdk/util-endpoints': 3.438.0 + '@aws-sdk/util-user-agent-browser': 3.433.0 + '@aws-sdk/util-user-agent-node': 3.437.0 + '@smithy/config-resolver': 2.0.16 + '@smithy/fetch-http-handler': 2.2.4 + '@smithy/hash-node': 2.0.12 + '@smithy/invalid-dependency': 2.0.12 + '@smithy/middleware-content-length': 2.0.14 + '@smithy/middleware-endpoint': 2.1.3 + '@smithy/middleware-retry': 2.0.18 + '@smithy/middleware-serde': 2.0.12 + '@smithy/middleware-stack': 2.0.6 + '@smithy/node-config-provider': 2.1.3 + '@smithy/node-http-handler': 2.1.8 + '@smithy/property-provider': 2.0.13 + '@smithy/protocol-http': 3.0.8 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.5 - '@smithy/util-defaults-mode-node': 2.0.5 - '@smithy/util-retry': 2.0.0 + '@smithy/util-defaults-mode-browser': 2.0.16 + '@smithy/util-defaults-mode-node': 2.0.21 + '@smithy/util-endpoints': 1.0.2 + '@smithy/util-retry': 2.0.5 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 transitivePeerDependencies: - aws-crt dev: true - /@aws-sdk/types@3.398.0: - resolution: {integrity: sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==} + /@aws-sdk/types@3.433.0: + resolution: {integrity: sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -2263,11 +2335,12 @@ packages: tslib: 2.5.0 dev: true - /@aws-sdk/util-endpoints@3.398.0: - resolution: {integrity: sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==} + /@aws-sdk/util-endpoints@3.438.0: + resolution: {integrity: sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.398.0 + '@aws-sdk/types': 3.433.0 + '@smithy/util-endpoints': 1.0.2 tslib: 2.5.0 dev: true @@ -2278,17 +2351,17 @@ packages: tslib: 2.5.0 dev: true - /@aws-sdk/util-user-agent-browser@3.398.0: - resolution: {integrity: sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==} + /@aws-sdk/util-user-agent-browser@3.433.0: + resolution: {integrity: sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==} dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/types': 2.4.0 bowser: 2.11.0 tslib: 2.5.0 dev: true - /@aws-sdk/util-user-agent-node@3.398.0: - resolution: {integrity: sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==} + /@aws-sdk/util-user-agent-node@3.437.0: + resolution: {integrity: sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA==} engines: {node: '>=14.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -2296,9 +2369,9 @@ packages: aws-crt: optional: true dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/node-config-provider': 2.0.5 - '@smithy/types': 2.2.2 + '@aws-sdk/types': 3.433.0 + '@smithy/node-config-provider': 2.1.3 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -4219,11 +4292,11 @@ packages: '@sinonjs/commons': 2.0.0 dev: true - /@smithy/abort-controller@2.0.5: - resolution: {integrity: sha512-byVZ2KWLMPYAZGKjRpniAzLcygJO4ruClZKdJTuB0eCB76ONFTdptBHlviHpAZXknRz7skYWPfcgO9v30A1SyA==} + /@smithy/abort-controller@2.0.12: + resolution: {integrity: sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -4240,24 +4313,34 @@ packages: tslib: 2.5.0 dev: true - /@smithy/config-resolver@2.0.5: - resolution: {integrity: sha512-n0c2AXz+kjALY2FQr7Zy9zhYigXzboIh1AuUUVCqFBKFtdEvTwnwPXrTDoEehLiRTUHNL+4yzZ3s+D0kKYSLSg==} + /@smithy/config-resolver@2.0.16: + resolution: {integrity: sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/node-config-provider': 2.1.3 + '@smithy/types': 2.4.0 '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.0 + '@smithy/util-middleware': 2.0.5 tslib: 2.5.0 dev: true - /@smithy/credential-provider-imds@2.0.5: - resolution: {integrity: sha512-KFcf/e0meFkQNyteJ65f1G19sgUEY1e5zL7hyAEUPz2SEfBmC9B37WyRq87G3MEEsvmAWwCRu7nFFYUKtR3svQ==} + /@smithy/credential-provider-imds@2.0.18: + resolution: {integrity: sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.0.5 - '@smithy/property-provider': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/url-parser': 2.0.5 + '@smithy/node-config-provider': 2.1.3 + '@smithy/property-provider': 2.0.13 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 + tslib: 2.5.0 + dev: true + + /@smithy/eventstream-codec@2.0.12: + resolution: {integrity: sha512-ZZQLzHBJkbiAAdj2C5K+lBlYp/XJ+eH2uy+jgJgYIFW/o5AM59Hlj7zyI44/ZTDIQWmBxb3EFv/c5t44V8/g8A==} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@smithy/types': 2.4.0 + '@smithy/util-hex-encoding': 2.0.0 tslib: 2.5.0 dev: true @@ -4265,88 +4348,88 @@ packages: resolution: {integrity: sha512-iqR6OuOV3zbQK8uVs9o+9AxhVk8kW9NAxA71nugwUB+kTY9C35pUd0A5/m4PRT0Y0oIW7W4kgnSR3fdYXQjECw==} dependencies: '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 '@smithy/util-hex-encoding': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/eventstream-serde-browser@2.0.5: - resolution: {integrity: sha512-8NU51y94qFJbxL6SmvgWDfITHO/svvbAigkLYk2pckX17TGCSf4EXuGpGLliJp5Ljh5+vASC7mUH2jYX7MWBxA==} + /@smithy/eventstream-serde-browser@2.0.12: + resolution: {integrity: sha512-0pi8QlU/pwutNshoeJcbKR1p7Ie5STd8UFAMX5xhSoSJjNlxIv/OsHbF023jscMRN2Prrqd6ToGgdCnsZVQjvg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/eventstream-serde-universal': 2.0.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/eventstream-serde-config-resolver@2.0.5: - resolution: {integrity: sha512-u3gvukRaTH4X6tsryuZ4T1WGIEP34fPaTTzphFDJe8GJz/k11oBW1MPnkcaucBMxLnObK9swCF85j5cp1Kj1oA==} + /@smithy/eventstream-serde-config-resolver@2.0.12: + resolution: {integrity: sha512-I0XfwQkIX3gAnbrU5rLMkBSjTM9DHttdbLwf12CXmj7SSI5dT87PxtKLRrZGanaCMbdf2yCep+MW5/4M7IbvQA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/eventstream-serde-node@2.0.5: - resolution: {integrity: sha512-/C8jb+k/vKUBIe80D30vzjvRXlJf76kG2AJY7/NwiqWuD2usRuuDFCDaswXdVsSh9P1+FeaxZ48chsK10yDryQ==} + /@smithy/eventstream-serde-node@2.0.12: + resolution: {integrity: sha512-vf1vMHGOkG3uqN9x1zKOhnvW/XgvhJXWqjV6zZiT2FMjlEayugQ1mzpSqr7uf89+BzjTzuZKERmOsEAmewLbxw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/eventstream-serde-universal': 2.0.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/eventstream-serde-universal@2.0.5: - resolution: {integrity: sha512-+vHvbQtlSVYTQ/20tNpVaKi0EpTR7E8GoEUHJypRZIRgiT03b3h2MAWk+SNaqMrCJrYG9vKLkJFzDylRlUvDWg==} + /@smithy/eventstream-serde-universal@2.0.12: + resolution: {integrity: sha512-xZ3ZNpCxIND+q+UCy7y1n1/5VQEYicgSTNCcPqsKawX+Vd+6OcFX7gUHMyPzL8cZr+GdmJuxNleqHlH4giK2tw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/eventstream-codec': 2.0.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/fetch-http-handler@2.0.5: - resolution: {integrity: sha512-EzFoMowdBNy1VqtvkiXgPFEdosIAt4/4bgZ8uiDiUyfhmNXq/3bV+CagPFFBsgFOR/X2XK4zFZHRsoa7PNHVVg==} + /@smithy/fetch-http-handler@2.2.4: + resolution: {integrity: sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==} dependencies: - '@smithy/protocol-http': 2.0.5 - '@smithy/querystring-builder': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/protocol-http': 3.0.8 + '@smithy/querystring-builder': 2.0.12 + '@smithy/types': 2.4.0 '@smithy/util-base64': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/hash-blob-browser@2.0.5: - resolution: {integrity: sha512-ZVAUBtJXGf9bEko4/RwWcTK6d3b/ZmQMxJMrxOOcQhVDiqny9zI0mzgstO4Oxz3135R7S3V/bbGw3w3woCYpQg==} + /@smithy/hash-blob-browser@2.0.12: + resolution: {integrity: sha512-riLnV16f27yyePX8UF0deRHAeccUK8SrOxyTykSTrnVkgS3DsjNapZtTbd8OGNKEbI60Ncdb5GwN3rHZudXvog==} dependencies: '@smithy/chunked-blob-reader': 2.0.0 '@smithy/chunked-blob-reader-native': 2.0.0 - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/hash-node@2.0.5: - resolution: {integrity: sha512-mk551hIywBITT+kXruRNXk7f8Fy7DTzBjZJSr/V6nolYKmUHIG3w5QU6nO9qPYEQGKc/yEPtkpdS28ndeG93lA==} + /@smithy/hash-node@2.0.12: + resolution: {integrity: sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 '@smithy/util-buffer-from': 2.0.0 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/hash-stream-node@2.0.5: - resolution: {integrity: sha512-XiR4Aoux5kXy8OWPLQisKy3GPmm0l6deHepvPvr4MUzIwa5XWazG3JdbZXy+mk93CvEZrOwKPHU5Kul6QybJiQ==} + /@smithy/hash-stream-node@2.0.12: + resolution: {integrity: sha512-x/DrSynPKrW0k00q7aZ/vy531a3mRw79mOajHp+cIF0TrA1SqEMFoy/B8X0XtoAtlJWt/vvgeDNqt/KAeaAqMw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/invalid-dependency@2.0.5: - resolution: {integrity: sha512-0wEi+JT0hM+UUwrJVYbqjuGFhy5agY/zXyiN7BNAJ1XoCDjU5uaNSj8ekPWsXd/d4yM6NSe8UbPd8cOc1+3oBQ==} + /@smithy/invalid-dependency@2.0.12: + resolution: {integrity: sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -4357,126 +4440,132 @@ packages: tslib: 2.5.0 dev: true - /@smithy/md5-js@2.0.5: - resolution: {integrity: sha512-k5EOte/Ye2r7XBVaXv2rhiehk6l3T4uRiPF+pnxKEc+G9Fwd1xAXBDZrtOq1syFPBKBmVfNszG4nevngST7NKg==} + /@smithy/md5-js@2.0.12: + resolution: {integrity: sha512-OgDt+Xnrw+W5z3MSl5KZZzebqmXrYl9UdbCiBYnnjErmNywwSjV6QB/Oic3/7hnsPniSU81n7Rvlhz2kH4EREQ==} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/middleware-content-length@2.0.5: - resolution: {integrity: sha512-E7VwV5H02fgZIUGRli4GevBCAPvkyEI/fgl9SU47nPPi3DAAX3nEtUb8xfGbXjOcJ5BdSUoWWZn42tEd/blOqA==} + /@smithy/middleware-content-length@2.0.14: + resolution: {integrity: sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/protocol-http': 3.0.8 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/middleware-endpoint@2.0.5: - resolution: {integrity: sha512-tyzDuoNTbsMQCq5Xkc4QOt6e2GACUllQIV8SQ5fc59FtOIV9/vbf58/GxVjZm2o8+MMbdDBANjTDZe/ijZKfyA==} + /@smithy/middleware-endpoint@2.1.3: + resolution: {integrity: sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-serde': 2.0.5 - '@smithy/types': 2.2.2 - '@smithy/url-parser': 2.0.5 - '@smithy/util-middleware': 2.0.0 + '@smithy/middleware-serde': 2.0.12 + '@smithy/node-config-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/types': 2.4.0 + '@smithy/url-parser': 2.0.12 + '@smithy/util-middleware': 2.0.5 tslib: 2.5.0 dev: true - /@smithy/middleware-retry@2.0.5: - resolution: {integrity: sha512-ulIfbFyzQTVnJbLjUl1CTSi0etg6tej/ekwaLp0Gn8ybUkDkKYa+uB6CF/m2J5B6meRwyJlsryR+DjaOVyiicg==} + /@smithy/middleware-retry@2.0.18: + resolution: {integrity: sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/protocol-http': 2.0.5 - '@smithy/service-error-classification': 2.0.0 - '@smithy/types': 2.2.2 - '@smithy/util-middleware': 2.0.0 - '@smithy/util-retry': 2.0.0 + '@smithy/node-config-provider': 2.1.3 + '@smithy/protocol-http': 3.0.8 + '@smithy/service-error-classification': 2.0.5 + '@smithy/types': 2.4.0 + '@smithy/util-middleware': 2.0.5 + '@smithy/util-retry': 2.0.5 tslib: 2.5.0 uuid: 8.3.2 dev: true - /@smithy/middleware-serde@2.0.5: - resolution: {integrity: sha512-in0AA5sous74dOfTGU9rMJBXJ0bDVNxwdXtEt5lh3FVd2sEyjhI+rqpLLRF1E4ixbw3RSEf80hfRpcPdjg4vvQ==} + /@smithy/middleware-serde@2.0.12: + resolution: {integrity: sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/middleware-stack@2.0.0: - resolution: {integrity: sha512-31XC1xNF65nlbc16yuh3wwTudmqs6qy4EseQUGF8A/p2m/5wdd/cnXJqpniy/XvXVwkHPz/GwV36HqzHtIKATQ==} + /@smithy/middleware-stack@2.0.6: + resolution: {integrity: sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==} engines: {node: '>=14.0.0'} dependencies: + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/node-config-provider@2.0.5: - resolution: {integrity: sha512-LRtjV9WkhONe2lVy+ipB/l1GX60ybzBmFyeRUoLUXWKdnZ3o81jsnbKzMK8hKq8eFSWPk+Lmyx6ZzCQabGeLxg==} + /@smithy/node-config-provider@2.1.3: + resolution: {integrity: sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/property-provider': 2.0.5 - '@smithy/shared-ini-file-loader': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/property-provider': 2.0.13 + '@smithy/shared-ini-file-loader': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/node-http-handler@2.0.5: - resolution: {integrity: sha512-lZm5DZf4b3V0saUw9WTC4/du887P6cy2fUyQgQQKRRV6OseButyD5yTzeMmXE53CaXJBMBsUvvIQ0hRVxIq56w==} + /@smithy/node-http-handler@2.1.8: + resolution: {integrity: sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.0.5 - '@smithy/protocol-http': 2.0.5 - '@smithy/querystring-builder': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/abort-controller': 2.0.12 + '@smithy/protocol-http': 3.0.8 + '@smithy/querystring-builder': 2.0.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/property-provider@2.0.5: - resolution: {integrity: sha512-cAFSUhX6aiHcmpWfrCLKvwBtgN1F6A0N8qY/8yeSi0LRLmhGqsY1/YTxFE185MCVzYbqBGXVr9TBv4RUcIV4rA==} + /@smithy/property-provider@2.0.13: + resolution: {integrity: sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/protocol-http@2.0.5: - resolution: {integrity: sha512-d2hhHj34mA2V86doiDfrsy2fNTnUOowGaf9hKb0hIPHqvcnShU4/OSc4Uf1FwHkAdYF3cFXTrj5VGUYbEuvMdw==} + /@smithy/protocol-http@3.0.8: + resolution: {integrity: sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/querystring-builder@2.0.5: - resolution: {integrity: sha512-4DCX9krxLzATj+HdFPC3i8pb7XTAWzzKqSw8aTZMjXjtQY+vhe4azMAqIvbb6g7JKwIkmkRAjK6EXO3YWSnJVQ==} + /@smithy/querystring-builder@2.0.12: + resolution: {integrity: sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 '@smithy/util-uri-escape': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/querystring-parser@2.0.5: - resolution: {integrity: sha512-C2stCULH0r54KBksv3AWcN8CLS3u9+WsEW8nBrvctrJ5rQTNa1waHkffpVaiKvcW2nP0aIMBPCobD/kYf/q9mA==} + /@smithy/querystring-parser@2.0.12: + resolution: {integrity: sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/service-error-classification@2.0.0: - resolution: {integrity: sha512-2z5Nafy1O0cTf69wKyNjGW/sNVMiqDnb4jgwfMG8ye8KnFJ5qmJpDccwIbJNhXIfbsxTg9SEec2oe1cexhMJvw==} + /@smithy/service-error-classification@2.0.5: + resolution: {integrity: sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==} engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.4.0 dev: true - /@smithy/shared-ini-file-loader@2.0.5: - resolution: {integrity: sha512-Mvtk6FwMtfbKRC4YuSsIqRYp9WTxsSUJVVo2djgyhcacKGMqicHDWSAmgy3sDrKv+G/G6xTZCPwm6pJARtdxVg==} + /@smithy/shared-ini-file-loader@2.2.2: + resolution: {integrity: sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -4486,36 +4575,36 @@ packages: dependencies: '@smithy/eventstream-codec': 2.0.5 '@smithy/is-array-buffer': 2.0.0 - '@smithy/types': 2.2.2 + '@smithy/types': 2.4.0 '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-middleware': 2.0.0 + '@smithy/util-middleware': 2.0.5 '@smithy/util-uri-escape': 2.0.0 '@smithy/util-utf8': 2.0.0 tslib: 2.5.0 dev: true - /@smithy/smithy-client@2.0.5: - resolution: {integrity: sha512-kCTFr8wfOAWKDzGvfBElc6shHigWtHNhMQ1IbosjC4jOlayFyZMSs2PysKB+Ox/dhQ41KqOzgVjgiQ+PyWqHMQ==} + /@smithy/smithy-client@2.1.12: + resolution: {integrity: sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-stack': 2.0.0 - '@smithy/types': 2.2.2 - '@smithy/util-stream': 2.0.5 + '@smithy/middleware-stack': 2.0.6 + '@smithy/types': 2.4.0 + '@smithy/util-stream': 2.0.17 tslib: 2.5.0 dev: true - /@smithy/types@2.2.2: - resolution: {integrity: sha512-4PS0y1VxDnELGHGgBWlDksB2LJK8TG8lcvlWxIsgR+8vROI7Ms8h1P4FQUx+ftAX2QZv5g1CJCdhdRmQKyonyw==} + /@smithy/types@2.4.0: + resolution: {integrity: sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 dev: true - /@smithy/url-parser@2.0.5: - resolution: {integrity: sha512-OdMBvZhpckQSkugCXNJQCvqJ71wE7Ftxce92UOQLQ9pwF6hoS5PLL7wEfpnuEXtStzBqJYkzu1C1ZfjuFGOXAA==} + /@smithy/url-parser@2.0.12: + resolution: {integrity: sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==} dependencies: - '@smithy/querystring-parser': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/querystring-parser': 2.0.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -4555,25 +4644,36 @@ packages: tslib: 2.5.0 dev: true - /@smithy/util-defaults-mode-browser@2.0.5: - resolution: {integrity: sha512-yciP6TPttLsj731aHTvekgyuCGXQrEAJibEwEWAh3kzaDsfGAVCuZSBlyvC2Dl3TZmHKCOQwHV8mIE7KQCTPuQ==} + /@smithy/util-defaults-mode-browser@2.0.16: + resolution: {integrity: sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/property-provider': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/property-provider': 2.0.13 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 bowser: 2.11.0 tslib: 2.5.0 dev: true - /@smithy/util-defaults-mode-node@2.0.5: - resolution: {integrity: sha512-M07t99rWasXt+IaDZDyP3BkcoEm/mgIE1RIMASrE49LKSNxaVN7PVcgGc77+4uu2kzBAyqJKy79pgtezuknyjQ==} + /@smithy/util-defaults-mode-node@2.0.21: + resolution: {integrity: sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/config-resolver': 2.0.5 - '@smithy/credential-provider-imds': 2.0.5 - '@smithy/node-config-provider': 2.0.5 - '@smithy/property-provider': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/config-resolver': 2.0.16 + '@smithy/credential-provider-imds': 2.0.18 + '@smithy/node-config-provider': 2.1.3 + '@smithy/property-provider': 2.0.13 + '@smithy/smithy-client': 2.1.12 + '@smithy/types': 2.4.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-endpoints@1.0.2: + resolution: {integrity: sha512-QEdq+sP68IJHAMVB2ugKVVZEWeKQtZLuf+akHzc8eTVElsZ2ZdVLWC6Cp+uKjJ/t4yOj1qu6ZzyxJQEQ8jdEjg==} + engines: {node: '>= 14.0.0'} + dependencies: + '@smithy/node-config-provider': 2.1.3 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -4584,28 +4684,30 @@ packages: tslib: 2.5.0 dev: true - /@smithy/util-middleware@2.0.0: - resolution: {integrity: sha512-eCWX4ECuDHn1wuyyDdGdUWnT4OGyIzV0LN1xRttBFMPI9Ff/4heSHVxneyiMtOB//zpXWCha1/SWHJOZstG7kA==} + /@smithy/util-middleware@2.0.5: + resolution: {integrity: sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==} engines: {node: '>=14.0.0'} dependencies: + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/util-retry@2.0.0: - resolution: {integrity: sha512-/dvJ8afrElasuiiIttRJeoS2sy8YXpksQwiM/TcepqdRVp7u4ejd9C4IQURHNjlfPUT7Y6lCDSa2zQJbdHhVTg==} + /@smithy/util-retry@2.0.5: + resolution: {integrity: sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/service-error-classification': 2.0.0 + '@smithy/service-error-classification': 2.0.5 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true - /@smithy/util-stream@2.0.5: - resolution: {integrity: sha512-ylx27GwI05xLpYQ4hDIfS15vm+wYjNN0Sc2P0FxuzgRe8v0BOLHppGIQ+Bezcynk8C9nUzsUue3TmtRhjut43g==} + /@smithy/util-stream@2.0.17: + resolution: {integrity: sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/fetch-http-handler': 2.0.5 - '@smithy/node-http-handler': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/fetch-http-handler': 2.2.4 + '@smithy/node-http-handler': 2.1.8 + '@smithy/types': 2.4.0 '@smithy/util-base64': 2.0.0 '@smithy/util-buffer-from': 2.0.0 '@smithy/util-hex-encoding': 2.0.0 @@ -4628,12 +4730,12 @@ packages: tslib: 2.5.0 dev: true - /@smithy/util-waiter@2.0.5: - resolution: {integrity: sha512-1lkkUmI/bhaDX+LIT3RiUNAn+NzPmsWjE7beMq0oQ3H1/CffaILIN67riDA0aE1YBj6xll7uWMIy4tJqc+peXw==} + /@smithy/util-waiter@2.0.12: + resolution: {integrity: sha512-3sENmyVa1NnOPoiT2NCApPmu7ukP7S/v7kL9IxNmnygkDldn7/yK0TP42oPJLwB2k3mospNsSePIlqdXEUyPHA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/abort-controller': 2.0.12 + '@smithy/types': 2.4.0 tslib: 2.5.0 dev: true @@ -5510,22 +5612,6 @@ packages: - table - yaml - /aws-sdk@2.1448.0: - resolution: {integrity: sha512-15r8YKdAAXLgtPfQTAzD/qNxxgndF1SMEw6F+mXvLxZrLkG4BHnzOW2g2sQc3C2qG5yqCb3K6R+OrjbvGOAmdQ==} - engines: {node: '>= 10.0.0'} - dependencies: - buffer: 4.9.2 - events: 1.1.1 - ieee754: 1.1.13 - jmespath: 0.16.0 - querystring: 0.2.0 - sax: 1.2.1 - url: 0.10.3 - util: 0.12.5 - uuid: 8.0.0 - xml2js: 0.5.0 - dev: true - /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true @@ -5772,14 +5858,6 @@ packages: resolution: {integrity: sha512-Zy8ZXMyxIT6RMTeY7OP/bDndfj6bwCan7SS98CEndS6deHwWPpseeHlwarNcBim+etXnF9HBc1non5JgDaJU1g==} dev: true - /buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - isarray: 1.0.0 - dev: true - /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -6863,7 +6941,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231101 + typescript: 5.4.0-dev.20231105 dev: true /duplexer2@0.0.2: @@ -7348,11 +7426,6 @@ packages: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true - /events@1.1.1: - resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} - engines: {node: '>=0.4.x'} - dev: true - /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -8459,10 +8532,6 @@ packages: dev: true optional: true - /ieee754@1.1.13: - resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} - dev: true - /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -8621,14 +8690,6 @@ packages: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: true - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -8724,13 +8785,6 @@ packages: engines: {node: '>=6'} dev: true - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -9511,11 +9565,6 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /jmespath@0.16.0: - resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} - engines: {node: '>= 0.6.0'} - dev: true - /js-sdsl@4.4.0: resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} dev: true @@ -11938,10 +11987,6 @@ packages: end-of-stream: 1.4.4 once: 1.4.0 - /punycode@1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - dev: true - /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -11967,12 +12012,6 @@ packages: engines: {node: '>=0.6'} dev: true - /querystring@0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} - engines: {node: '>=0.4.x'} - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -12468,10 +12507,6 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sax@1.2.1: - resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} - dev: true - /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: true @@ -13605,8 +13640,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript@5.3.0-dev.20231101: - resolution: {integrity: sha512-yt5zz7L+TBfzeJhMA/tAEO1YU8J2DWsFN3LbeMslNPXL3S0lR3yvePdl6fXCk7QFjnfaRtXH0noNdWg2imHWXg==} + /typescript@5.4.0-dev.20231105: + resolution: {integrity: sha512-TN7QRSjarOvoxvHuZdVmofCnXJYklxsiZ1tyJKiKkghPWXwrkQ68R3NN3vhtS8B+jIeZoETKssmfbmhCl8rwxQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -13775,13 +13810,6 @@ packages: resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} dev: true - /url@0.10.3: - resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} - dependencies: - punycode: 1.3.2 - querystring: 0.2.0 - dev: true - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -13789,16 +13817,6 @@ packages: resolution: {integrity: sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==} dev: true - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.10 - which-typed-array: 1.1.9 - dev: true - /uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. @@ -13810,11 +13828,6 @@ packages: hasBin: true dev: true - /uuid@8.0.0: - resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} - hasBin: true - dev: true - /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -14085,14 +14098,6 @@ packages: xml-lexer: 0.2.2 dev: false - /xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.2.4 - xmlbuilder: 11.0.1 - dev: true - /xml@1.0.1: resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} dev: true @@ -14106,11 +14111,6 @@ packages: '@oozcitak/util': 8.3.8 js-yaml: 3.14.1 - /xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: true - /xmlbuilder@15.1.1: resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} engines: {node: '>=8.0'} diff --git a/projenrc/projects/static-website-project.ts b/projenrc/projects/static-website-project.ts index acecd4985..c772a748d 100644 --- a/projenrc/projects/static-website-project.ts +++ b/projenrc/projects/static-website-project.ts @@ -18,7 +18,13 @@ export class StaticWebsiteProject extends PDKProject { name: "static-website", keywords: ["aws", "pdk", "jsii", "projen"], repositoryUrl: "https://github.com/aws/aws-pdk", - devDeps: ["projen", "aws-sdk", "aws-cdk-lib", "constructs", "cdk-nag"], + devDeps: [ + "projen", + "@aws-sdk/client-wafv2", + "aws-cdk-lib", + "constructs", + "cdk-nag", + ], peerDeps: ["projen", "aws-cdk-lib", "constructs", "cdk-nag"], deps: [`${PDK_NAMESPACE}pdk-nag@^0.x`], stability: Stability.STABLE, From 7b0677b9c890a7ba3dac2efde071b7a26d0193f9 Mon Sep 17 00:00:00 2001 From: Adrian Dimech <51220968+agdimech@users.noreply.github.com> Date: Mon, 6 Nov 2023 11:13:09 +1100 Subject: [PATCH 2/5] fix: do not enforce CI builds when upgrading deps (#635) --- .github/workflows/upgrade-mainline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-mainline.yml b/.github/workflows/upgrade-mainline.yml index a5a0518fa..87ec8d913 100644 --- a/.github/workflows/upgrade-mainline.yml +++ b/.github/workflows/upgrade-mainline.yml @@ -12,7 +12,7 @@ jobs: outputs: patch_created: ${{ steps.create_patch.outputs.patch_created }} env: - CI: "false" # TODO: this doesn't do anything given we check for existence of CI env not value + CI: "" steps: - name: Checkout uses: actions/checkout@v2 From 3b6509f8ecaad6048b6610f48d7b71bce518cd93 Mon Sep 17 00:00:00 2001 From: Jack Stevenson Date: Mon, 6 Nov 2023 11:19:42 +1100 Subject: [PATCH 3/5] feat(type-safe-api): java: improve first invoke time and provide warmup hook to prime handlers (#633) Further optimisation of the Java handlers, taking the first invocation time down from ~6s to ~1-2s by priming each interceptor's handle method, as well as parts of the handler wrapper. Additionally provide a `warmUp` method which can be overridden by a Java handler to run code to prime the function, which is called prior to the SnapStart snapshot being taken. --- .../type-safe-api/interceptors.md | 106 +- .../type-safe-api/lambda_handlers.md | 67 +- .../templates/handlers.handlebars | 12 + .../java/templates/handlers.mustache | 325 ++- .../java/templates/interceptors.mustache | 42 +- .../runtime/generated-java-runtime-project.ts | 2 + .../type-safe-api-project.test.ts.snap | 130 + ...enerated-java-runtime-project.test.ts.snap | 10 + .../java-lambda-handlers.test.ts.snap | 24 + .../__snapshots__/java.test.ts.snap | 2094 +++++++++++++---- 10 files changed, 2179 insertions(+), 633 deletions(-) diff --git a/packages/type-safe-api/docs/developer_guides/type-safe-api/interceptors.md b/packages/type-safe-api/docs/developer_guides/type-safe-api/interceptors.md index 5eb981e49..8e57e9b66 100644 --- a/packages/type-safe-api/docs/developer_guides/type-safe-api/interceptors.md +++ b/packages/type-safe-api/docs/developer_guides/type-safe-api/interceptors.md @@ -82,7 +82,7 @@ This interceptor can be used to add headers to the responses returned by your la "x-my-response-header", "value" ))); } - + ... } ``` @@ -114,14 +114,14 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions === "TS" In typescript, interceptors are passed as separate arguments to the generated handler wrapper, in the order in which they should be executed. Call `request.chain.next(request)` from an interceptor to delegate to the rest of the chain to handle a request. Note that the last handler in the chain (ie the actual request handler which transforms the input to the output) should not call `chain.next`. - + ```ts import { sayHelloHandler, ChainedRequestInput, OperationResponse, } from "myapi-typescript-runtime"; - + // Interceptor to wrap invocations in a try/catch, returning a 500 error for any unhandled exceptions. const tryCatchInterceptor = async < RequestParameters, @@ -140,7 +140,7 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions return { statusCode: 500, body: { errorMessage: e.message } }; } }; - + // tryCatchInterceptor is passed first, so it runs first and calls the second argument function (the request handler) via chain.next export const handler = sayHelloHandler( tryCatchInterceptor, @@ -154,12 +154,12 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } ); ``` - + Another example interceptor might be to record request time metrics. The example below includes the full generic type signature for an interceptor: - + ```ts import { ChainedRequestInput, OperationResponse } from "myapi-typescript-runtime"; - + const timingInterceptor = async < RequestParameters, RequestBody, @@ -178,9 +178,9 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions return response; }; ``` - + Interceptors may mutate the `interceptorContext` to pass state to further interceptors or the final lambda handler, for example an `identityInterceptor` might want to extract the authenticated user from the request so that it is available in handlers. - + ```ts import { LambdaRequestParameters, @@ -188,7 +188,7 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions OperationResponse, ChainedRequestInput, } from "myapi-typescript-runtime"; - + const identityInterceptor = async < RequestParameters, RequestBody, @@ -217,7 +217,7 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions ```java import com.generated.api.myjavaapiruntime.runtime.api.Handlers.Interceptors; - + @Interceptors({ TimingInterceptor.class, TryCatchInterceptor.class }) public class SayHelloHandler extends SayHello { @Override @@ -228,14 +228,14 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } } ``` - + To write an interceptor, you can implement the `Interceptor` interface. For example, a timing interceptor: - + ```java import com.generated.api.myjavaapiruntime.runtime.api.Handlers.Interceptor; import com.generated.api.myjavaapiruntime.runtime.api.Handlers.ChainedRequestInput; import com.generated.api.myjavaapiruntime.runtime.api.Handlers.Response; - + public class TimingInterceptor implements Interceptor { @Override public Response handle(ChainedRequestInput input) { @@ -247,16 +247,16 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } } ``` - + Interceptors may choose to return different responses, for example to return a 500 response for any unhandled exceptions: - + ```java import com.generated.api.myjavaapiruntime.runtime.api.Handlers.Interceptor; import com.generated.api.myjavaapiruntime.runtime.api.Handlers.ChainedRequestInput; import com.generated.api.myjavaapiruntime.runtime.api.Handlers.Response; import com.generated.api.myjavaapiruntime.runtime.api.Handlers.ApiResponse; import com.generated.api.myjavaapiruntime.runtime.model.InternalFailureErrorResponseContent; - + public class TryCatchInterceptor implements Interceptor { @Override public Response handle(ChainedRequestInput input) { @@ -273,9 +273,9 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } } ``` - + Interceptors are permitted to mutate the "interceptor context", which is a `Map`. Each interceptor in the chain, and the final handler, can access this context: - + ```java public class IdentityInterceptor implements Interceptor { @Override @@ -285,9 +285,9 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } } ``` - + Interceptors can also mutate the response returned by the handler chain. An example use case might be adding cross-origin resource sharing headers: - + ```java public static class AddCorsHeadersInterceptor implements Interceptor { @Override @@ -299,9 +299,9 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } } ``` - + Interceptors referenced by the `@Interceptors` annotation must be constructable with no arguments. If more complex instantiation of your interceptor is required (for example if you are using dependency injection or wish to pass configuration to your interceptor), you may instead override the `getInterceptors` method in your handler: - + ```java public class SayHelloHandler extends SayHello { @Override @@ -310,7 +310,7 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions new MyConfiguredInterceptor<>(42), new MyOtherConfiguredInterceptor<>("configuration")); } - + @Override public SayHelloResponse handle(SayHelloRequestInput sayHelloRequestInput) { return SayHello200Response.of(HelloResponse.builder() @@ -320,15 +320,35 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions } ``` + Note also that in Java, you can opt to implement your interceptor by extending the `InterceptorWithWarmup` class, which by default will prime your interceptor by calling the `handle` method with an empty event. You can override the `warmUp` method to change the default warmup behaviour. + + ```java + public class MyWarmupInterceptor extends InterceptorWithWarmup { + + @Override + public void warmUp() { + // Invoke the "handle" method with an empty input + super.warmUp(); + + // Perform additional priming here... + } + + @Override + public Response handle(ChainedRequestInput input) { + ... + } + } + ``` + === "PYTHON" In Python, a list of interceptors can be passed as a keyword argument to the generated lambda handler decorator, for example: - + ```python from myapi_python_runtime.apis.tags.default_api_operation_config import say_hello_handler, SayHelloRequest, ApiResponse, SayHelloOperationResponses from myapi_python_runtime.model.api_error import ApiError from myapi_python_runtime.model.hello_response import HelloResponse - + @say_hello_handler(interceptors=[timing_interceptor, try_catch_interceptor]) def handler(input: SayHelloRequest, **kwargs) -> SayHelloOperationResponses: return ApiResponse( @@ -337,13 +357,13 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions headers={} ) ``` - + Writing an interceptor is just like writing a lambda handler. Call `chain.next(input)` from an interceptor to delegate to the rest of the chain to handle a request. - + ```python import time from myapi_python_runtime.apis.tags.default_api_operation_config import ChainedApiRequest, ApiResponse - + def timing_interceptor(input: ChainedApiRequest) -> ApiResponse: start = int(round(time.time() * 1000)) response = input.chain.next(input) @@ -351,14 +371,14 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions print("Took {} ms".format(end - start)) return response ``` - + Interceptors may choose to return different responses, for example to return a 500 response for any unhandled exceptions: - + ```python import time from myapi_python_runtime.model.api_error import ApiError from myapi_python_runtime.apis.tags.default_api_operation_config import ChainedApiRequest, ApiResponse - + def try_catch_interceptor(input: ChainedApiRequest) -> ApiResponse: try: return input.chain.next(input) @@ -369,17 +389,17 @@ The lambda handler wrappers allow you to pass in a _chain_ of handler functions headers={} ) ``` - + Interceptors are permitted to mutate the "interceptor context", which is a `Dict[str, Any]`. Each interceptor in the chain, and the final handler, can access this context: - + ```python def identity_interceptor(input: ChainedApiRequest) -> ApiResponse: input.interceptor_context["AuthenticatedUser"] = get_authenticated_user(input.event) return input.chain.next(input) ``` - + Interceptors can also mutate the response returned by the handler chain. An example use case might be adding cross-origin resource sharing headers: - + ```python def add_cors_headers_interceptor(input: ChainedApiRequest) -> ApiResponse: response = input.chain.next(input) @@ -408,7 +428,7 @@ The lambda handler wrappers can be used in isolation as handlers for separate la } from "myapi-typescript-runtime"; import { corsInterceptor } from "./interceptors"; import { sayGoodbye } from "./handlers/say-goodbye"; - + const sayHello = sayHelloHandler(async ({ input }) => { return { statusCode: 200, @@ -417,7 +437,7 @@ The lambda handler wrappers can be used in isolation as handlers for separate la }, }; }); - + export const handler = handlerRouter({ // Interceptors declared in this list will apply to all operations interceptors: [corsInterceptor], @@ -436,10 +456,10 @@ The lambda handler wrappers can be used in isolation as handlers for separate la import com.generated.api.myapijavaruntime.runtime.api.Handlers.HandlerRouter; import com.generated.api.myapijavaruntime.runtime.api.Handlers.Interceptors; import com.generated.api.myapijavaruntime.runtime.api.Handlers.SayHello; - + import java.util.Arrays; import java.util.List; - + // Interceptors defined here apply to all operations @Interceptors({ TimingInterceptor.class }) public class ApiHandlerRouter extends HandlerRouter { @@ -448,7 +468,7 @@ The lambda handler wrappers can be used in isolation as handlers for separate la public SayHello sayHello() { return new SayHelloHandler(); } - + @Override public SayGoodbye sayGoodbye() { return new SayGoodbyeHandler(); @@ -464,7 +484,7 @@ The lambda handler wrappers can be used in isolation as handlers for separate la from myapi_python_runtime.model.hello_response import HelloResponse from other_handlers import say_goodbye from my_interceptors import cors_interceptor - + @say_hello_handler def say_hello(input: SayHelloRequest, **kwargs) -> SayHelloOperationResponses: return ApiResponse( @@ -472,7 +492,7 @@ The lambda handler wrappers can be used in isolation as handlers for separate la body=HelloResponse(message="Hello {}!".format(input.request_parameters["name"])), headers={} ) - + handler = handler_router( # Interceptors defined here will apply to all operations interceptors=[cors_interceptor], diff --git a/packages/type-safe-api/docs/developer_guides/type-safe-api/lambda_handlers.md b/packages/type-safe-api/docs/developer_guides/type-safe-api/lambda_handlers.md index 16ea0d36c..2db44d3cd 100644 --- a/packages/type-safe-api/docs/developer_guides/type-safe-api/lambda_handlers.md +++ b/packages/type-safe-api/docs/developer_guides/type-safe-api/lambda_handlers.md @@ -8,7 +8,7 @@ For example: ```ts import { sayHelloHandler, Response } from "myapi-typescript-runtime"; - + export const handler = sayHelloHandler(async ({ input }) => { return Response.success({ message: `Hello ${input.requestParameters.name}!`, @@ -24,8 +24,8 @@ For example: import com.generated.api.myapijavaruntime.runtime.api.handlers.say_hello.SayHelloRequestInput; import com.generated.api.myapijavaruntime.runtime.api.handlers.say_hello.SayHelloResponse; import com.generated.api.myapijavaruntime.runtime.model.SayHelloResponseContent; - - + + public class SayHelloHandler extends SayHello { @Override public SayHelloResponse handle(final SayHelloRequestInput request) { @@ -42,7 +42,7 @@ For example: from myapi_python_runtime.api.operation_config import say_hello_handler, SayHelloRequest, ApiResponse, SayHelloOperationResponses from myapi_python_runtime.model.api_error import ApiError from myapi_python_runtime.model.say_hello_response_content import SayHelloResponseContent - + @say_hello_handler def handler(input: SayHelloRequest, **kwargs) -> SayHelloOperationResponses: return Response.success( @@ -116,21 +116,21 @@ This will give you generated lambda handler stubs which look like the following: Response, LoggingInterceptor, } from "myapi-typescript-runtime"; - + /** * Type-safe handler for the SayHello operation */ export const sayHello: SayHelloChainedHandlerFunction = async (request) => { LoggingInterceptor.getLogger(request).info('Start SayHello Operation'); - + // TODO: Implement SayHello Operation. `input` contains the request input. const { input } = request; - + return Response.internalFailure({ message: 'Not Implemented!', }); }; - + /** * Entry point for the AWS Lambda handler for the SayHello operation. * The sayHelloHandler method wraps the type-safe handler and manages marshalling inputs and outputs @@ -146,7 +146,7 @@ This will give you generated lambda handler stubs which look like the following: ```java package com.generated.api.myapijavahandlers.handlers; - + import com.generated.api.myapijavaruntime.runtime.api.interceptors.DefaultInterceptors; import com.generated.api.myapijavaruntime.runtime.api.interceptors.powertools.LoggingInterceptor; import com.generated.api.myapijavaruntime.runtime.api.handlers.Interceptor; @@ -156,33 +156,50 @@ This will give you generated lambda handler stubs which look like the following: import com.generated.api.myapijavaruntime.runtime.api.handlers.say_hello.SayHelloRequestInput; import com.generated.api.myapijavaruntime.runtime.api.handlers.say_hello.SayHelloResponse; import com.generated.api.myapijavaruntime.runtime.model.*; - + import java.util.List; - + /** * Entry point for the AWS Lambda handler for the SayHello operation. * The SayHello class manages marshalling inputs and outputs. */ public class SayHelloHandler extends SayHello { + /** + * Interceptors are initialised once during the lambda "init" phase + */ + private final List> interceptors = DefaultInterceptors.all(); + /** * Return the interceptors for this handler. * You can also use the @Interceptors annotation on the class to add interceptors */ @Override public List> getInterceptors() { - return DefaultInterceptors.all(); + return this.interceptors; } - + + /** + * This method is executed prior to the Java SnapStart snapshot being taken. + * Perform any warmup activities to "prime" your function here. Code in this function will be just-in-time compiled, + * before the snapshot is taken, and thus optimised ready for the first invocation. + * For example if your function interacts with DynamoDB, perform a simple read operation here. + * @see https://aws.amazon.com/blogs/compute/reducing-java-cold-starts-on-aws-lambda-functions-with-snapstart/ + */ + @Override + public void warmUp() { + + } + /** * Type-safe handler for the SayHello operation */ @Override public SayHelloResponse handle(final SayHelloRequestInput request) { LoggingInterceptor.getLogger(request).info("Start SayHello Operationnn"); - + // TODO: Implement SayHello Operation. `input` contains the request input. SayHelloInput input = request.getInput(); - + return SayHello500Response.of(InternalFailureErrorResponseContent.builder() .message("Not Implemented!") .build()); @@ -204,21 +221,21 @@ This will give you generated lambda handler stubs which look like the following: from myapi_python_runtime.api.operation_config import ( say_hello_handler, SayHelloRequest, SayHelloOperationResponses ) - - + + def say_hello(input: SayHelloRequest, **kwargs) -> SayHelloOperationResponses: """ Type-safe handler for the SayHello operation """ LoggingInterceptor.get_logger(input).info("Start SayHello Operation") - + # TODO: Implement SayHello Operation. `input` contains the request input - + return Response.internal_failure(InternalFailureErrorResponseContent( message="Not Implemented!" )) - - + + # Entry point for the AWS Lambda handler for the SayHello operation. # The say_hello_handler method wraps the type-safe handler and manages marshalling inputs and outputs handler = say_hello_handler(interceptors=INTERCEPTORS)(say_hello) @@ -235,7 +252,7 @@ You can implement your lambda handlers in any of the supported languages, or mix As well as generating lambda handler stubs, when you use the `@handler` Smithy trait or `x-handler` OpenAPI vendor extension, your generated CDK infrastructure project will include lambda function CDK constructs with preconfigured paths to your handler distributables. This allows you to quickly add lambda integrations to your API: === "TS" - + ```ts hl_lines="1 11" import { Api, SayHelloFunction } from "myapi-typescript-infra"; @@ -255,6 +272,8 @@ As well as generating lambda handler stubs, when you use the `@handler` Smithy t === "JAVA" + The generated Java functions are configured to enable [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) by default. + ```java hl_lines="3 14" import com.generated.api.myapijavainfra.infra.Api; import com.generated.api.myapijavainfra.infra.ApiProps; @@ -276,11 +295,11 @@ As well as generating lambda handler stubs, when you use the `@handler` Smithy t ``` === "PYTHON" - + ```python hl_lines="2 12" from myapi_python_infra.api import Api from myapi_python_infra.functions import SayHelloFunction - + Api(self, id, default_authorizer=Authorizers.iam(), cors_options=CorsOptions( diff --git a/packages/type-safe-api/scripts/type-safe-api/generators/java-lambda-handlers/templates/handlers.handlebars b/packages/type-safe-api/scripts/type-safe-api/generators/java-lambda-handlers/templates/handlers.handlebars index 70370e911..6da3173fb 100644 --- a/packages/type-safe-api/scripts/type-safe-api/generators/java-lambda-handlers/templates/handlers.handlebars +++ b/packages/type-safe-api/scripts/type-safe-api/generators/java-lambda-handlers/templates/handlers.handlebars @@ -45,6 +45,18 @@ public class {{operationIdCamelCase}}Handler extends {{operationIdCamelCase}} { return this.interceptors; } + /** + * This method is executed prior to the Java SnapStart snapshot being taken. + * Perform any warmup activities to "prime" your function here. Code in this function will be just-in-time compiled, + * before the snapshot is taken, and thus optimised ready for the first invocation. + * For example if your function interacts with DynamoDB, perform a simple read operation here. + * @see https://aws.amazon.com/blogs/compute/reducing-java-cold-starts-on-aws-lambda-functions-with-snapstart/ + */ + @Override + public void warmUp() { + + } + /** * Type-safe handler for the {{operationIdCamelCase}} operation */ diff --git a/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/handlers.mustache b/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/handlers.mustache index 334ce391f..c48b8480e 100644 --- a/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/handlers.mustache +++ b/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/handlers.mustache @@ -64,8 +64,10 @@ public class Handlers { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private static String decodeParameter(final String parameter) { @@ -616,6 +618,179 @@ public interface ChainedRequestInput extends RequestInput { */ HandlerChain getChain(); } +###TSAPI_WRITE_FILE### +{ + "dir": "api/handlers", + "name": "InterceptorWarmupChainedRequestInput", + "ext": ".java", + "overwrite": true +} +###/TSAPI_WRITE_FILE###{{#apiInfo}} +{{#apis.0}} +package {{package}}.handlers; +{{/apis.0}} +{{/apiInfo}} + +import com.amazonaws.services.lambda.runtime.ClientContext; +import com.amazonaws.services.lambda.runtime.CognitoIdentity; +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; +import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; + +import java.util.HashMap; +import java.util.Map; + +/** + * An "empty" chained request input used to warm up interceptors which extend the InterceptorWithWarmup + */ +public class InterceptorWarmupChainedRequestInput implements ChainedRequestInput { + + @Override + public HandlerChain getChain() { + return new HandlerChain() { + @Override + public Response next(ChainedRequestInput input) { + return new Response() { + @Override + public String getBody() { + return ""; + } + + @Override + public int getStatusCode() { + return 0; + } + + @Override + public Map getHeaders() { + return new HashMap<>(); + } + }; + } + }; + } + + @Override + public Context getContext() { + return new Context() { + @Override + public String getAwsRequestId() { + return ""; + } + + @Override + public String getLogGroupName() { + return ""; + } + + @Override + public String getLogStreamName() { + return ""; + } + + @Override + public String getFunctionName() { + return ""; + } + + @Override + public String getFunctionVersion() { + return ""; + } + + @Override + public String getInvokedFunctionArn() { + return ""; + } + + @Override + public CognitoIdentity getIdentity() { + return null; + } + + @Override + public ClientContext getClientContext() { + return null; + } + + @Override + public int getRemainingTimeInMillis() { + return 0; + } + + @Override + public int getMemoryLimitInMB() { + return 0; + } + + @Override + public LambdaLogger getLogger() { + return null; + } + }; + } + + @Override + public APIGatewayProxyRequestEvent getEvent() { + return new APIGatewayProxyRequestEvent(); + } + + @Override + public T getInput() { + return null; + } + + @Override + public Map getInterceptorContext() { + Map context = new HashMap<>(); + context.put("operationId", "__tsapi_interceptor_warmup"); + return context; + } +} +###TSAPI_WRITE_FILE### +{ + "dir": "api/handlers", + "name": "InterceptorWithWarmup", + "ext": ".java", + "overwrite": true +} +###/TSAPI_WRITE_FILE###{{#apiInfo}} +{{#apis.0}} +package {{package}}.handlers; +{{/apis.0}} +{{/apiInfo}} + +import org.crac.Resource; +import org.crac.Core; +import org.crac.Context; + +/** + * An interceptor with a "warmUp" method with default snap-start warmup behaviour, which can be overridden if desired. + */ +public abstract class InterceptorWithWarmup implements Interceptor, Resource { + { + Core.getGlobalContext().register(this); + } + + @Override + public void beforeCheckpoint(Context context) { + this.warmUp(); + } + + @Override + public void afterRestore(Context context) { + + } + + /** + * Called prior to the lambda snap-start snapshot. + * Override this to change the default behaviour, which is to call the interceptor's handle method with an empty + * chained request. + */ + public void warmUp() { + this.handle(new InterceptorWarmupChainedRequestInput<>()); + } +} {{#apiInfo}} {{#apis}} {{#operations}} @@ -680,8 +855,10 @@ import java.util.HashMap; public class {{operationIdCamelCase}}{{code}}Response extends RuntimeException implements {{operationIdCamelCase}}Response { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -848,8 +1025,10 @@ import java.io.IOException; public class {{operationIdCamelCase}}Input { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private {{operationIdCamelCase}}RequestParameters requestParameters; @@ -1012,12 +1191,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the {{nickname}} operation */ -public abstract class {{operationIdCamelCase}} implements RequestHandler { +public abstract class {{operationIdCamelCase}} implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the {{nickname}} operation */ @@ -1037,6 +1222,93 @@ public abstract class {{operationIdCamelCase}} implements RequestHandler> getHandlerInterceptors() { + List> interceptors = new ArrayList<>(); + interceptors.addAll(annotationInterceptors); + interceptors.addAll(this.getInterceptors()); + return interceptors; + } + + private HandlerChain<{{operationIdCamelCase}}Input> buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain<{{operationIdCamelCase}}Input>() { + @Override + public Response next(ChainedRequestInput<{{operationIdCamelCase}}Input> input) { + return handle(new {{operationIdCamelCase}}RequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); + } + }); + } + + private ChainedRequestInput<{{operationIdCamelCase}}Input> buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final {{operationIdCamelCase}}Input input, final Map interceptorContext) { + return new ChainedRequestInput<{{operationIdCamelCase}}Input>() { + @Override + public HandlerChain getChain() { + // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining + // chain. + return null; + } + + @Override + public APIGatewayProxyRequestEvent getEvent() { + return event; + } + + @Override + public Context getContext() { + return context; + } + + @Override + public {{operationIdCamelCase}}Input getInput() { + return input; + } + + @Override + public Map getInterceptorContext() { + return interceptorContext; + } + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new {{operationIdCamelCase}}Input(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + @Override public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); @@ -1060,15 +1332,9 @@ public abstract class {{operationIdCamelCase}} implements RequestHandler> interceptors = new ArrayList<>(); interceptors.addAll(additionalInterceptors); - interceptors.addAll(annotationInterceptors); - interceptors.addAll(this.getInterceptors()); + interceptors.addAll(this.getHandlerInterceptors()); - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain<{{operationIdCamelCase}}Input>() { - @Override - public Response next(ChainedRequestInput<{{operationIdCamelCase}}Input> input) { - return handle(new {{operationIdCamelCase}}RequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); - } - }); + final HandlerChain chain = this.buildChain(interceptors); {{operationIdCamelCase}}Input input; @@ -1084,34 +1350,7 @@ public abstract class {{operationIdCamelCase}} implements RequestHandler() { - @Override - public HandlerChain getChain() { - // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining - // chain. - return null; - } - - @Override - public APIGatewayProxyRequestEvent getEvent() { - return event; - } - - @Override - public Context getContext() { - return context; - } - - @Override - public {{operationIdCamelCase}}Input getInput() { - return input; - } - - @Override - public Map getInterceptorContext() { - return interceptorContext; - } - }); + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); diff --git a/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/interceptors.mustache b/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/interceptors.mustache index ed20ca6db..cc07be105 100644 --- a/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/interceptors.mustache +++ b/packages/type-safe-api/scripts/type-safe-api/generators/java/templates/interceptors.mustache @@ -12,12 +12,13 @@ import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.ApiRes import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.ChainedRequestInput; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Response; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Interceptor; +import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.InterceptorWithWarmup; import org.apache.logging.log4j.Logger; /** * Interceptor for handling uncaught exceptions and responding with a default error response */ -public class TryCatchInterceptor implements Interceptor { +public class TryCatchInterceptor extends InterceptorWithWarmup { private final int statusCode; private final String errorResponseBody; @@ -66,6 +67,7 @@ public class TryCatchInterceptor implements Interceptor { import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.ChainedRequestInput; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Response; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Interceptor; +import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.InterceptorWithWarmup; import java.util.Map; import java.util.HashMap; @@ -73,7 +75,7 @@ import java.util.HashMap; * An interceptor for adding cross-origin resource sharing (CORS) headers to the response. * Allows all origins and headers. */ -public class ResponseHeadersInterceptor implements Interceptor { +public class ResponseHeadersInterceptor extends InterceptorWithWarmup { private final Map additionalHeaders; public ResponseHeadersInterceptor() { @@ -110,6 +112,7 @@ import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Chaine import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.RequestInput; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Response; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Interceptor; +import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.InterceptorWithWarmup; import com.amazonaws.services.lambda.runtime.Context; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -122,9 +125,15 @@ import software.amazon.lambda.powertools.logging.LoggingUtils; * and adds the lambda context. * See https://docs.powertools.aws.dev/lambda/java/latest/core/logging/ */ -public class LoggingInterceptor implements Interceptor { +public class LoggingInterceptor extends InterceptorWithWarmup { private Logger logger = LogManager.getLogger(LoggingInterceptor.class); + @Override + public void warmUp() { + super.warmUp(); + logger.info("LoggingInterceptor: init"); + } + /** * Return the instance of the logger from the interceptor context */ @@ -187,7 +196,9 @@ public class LoggingInterceptor implements Interceptor { import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.ChainedRequestInput; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Response; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Interceptor; +import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.InterceptorWithWarmup; import com.amazonaws.xray.AWSXRay; +import com.amazonaws.xray.AWSXRayRecorderBuilder; import com.amazonaws.xray.entities.Subsegment; import com.fasterxml.jackson.core.JsonProcessingException; import org.apache.logging.log4j.Logger; @@ -200,13 +211,11 @@ import software.amazon.lambda.powertools.tracing.TracingUtils; * details. * See: https://docs.powertools.aws.dev/lambda/java/latest/core/tracing/ */ -public class TracingInterceptor implements Interceptor { +public class TracingInterceptor extends InterceptorWithWarmup { - { - // Create a segment during the lambda init phase to ensure xray emitter - // is warmed up prior to invocation phase - AWSXRay.beginSubsegment("Tracing Interceptor - Init"); - AWSXRay.endSubsegment(); + static { + AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard(); + AWSXRay.setGlobalRecorder(builder.build()); } private final boolean captureResponse; @@ -219,6 +228,18 @@ public class TracingInterceptor implements Interceptor { this(false); } + @Override + public void warmUp() { + try { + // Set a dummy trace header to ensure the regular subsegment code path is followed and warmed. + // The segment is not actually recorded by xray. + System.setProperty("com.amazonaws.xray.traceHeader", "Root=1-xxx;Parent=yyy;Sampled=1"); + super.warmUp(); + } finally { + System.clearProperty("com.amazonaws.xray.traceHeader"); + } + } + private void logError(final String message, final ChainedRequestInput input, final Throwable e) { Object logger = input.getInterceptorContext().get("logger"); if (logger instanceof Logger) { @@ -280,6 +301,7 @@ import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Chaine import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.RequestInput; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Response; import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.Interceptor; +import {{#apiInfo}}{{#apis.0}}{{package}}{{/apis.0}}{{/apiInfo}}.handlers.InterceptorWithWarmup; import software.amazon.cloudwatchlogs.emf.logger.MetricsLogger; import software.amazon.cloudwatchlogs.emf.model.DimensionSet; import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor; @@ -290,7 +312,7 @@ import software.amazon.lambda.powertools.metrics.MetricsUtils; * and ensures metrics are flushed prior to finishing the lambda execution * See: https://docs.powertools.aws.dev/lambda/typescript/latest/core/metrics */ -public class MetricsInterceptor implements Interceptor { +public class MetricsInterceptor extends InterceptorWithWarmup { private MetricsLogger metrics = MetricsUtils.metricsLogger(); /** diff --git a/packages/type-safe-api/src/project/codegen/runtime/generated-java-runtime-project.ts b/packages/type-safe-api/src/project/codegen/runtime/generated-java-runtime-project.ts index b44d3d3f0..54a236945 100644 --- a/packages/type-safe-api/src/project/codegen/runtime/generated-java-runtime-project.ts +++ b/packages/type-safe-api/src/project/codegen/runtime/generated-java-runtime-project.ts @@ -46,6 +46,8 @@ const DEPENDENCIES: string[] = [ "software.amazon.lambda/powertools-logging@^1.16.1", "software.amazon.lambda/powertools-tracing@^1.16.1", "software.amazon.lambda/powertools-metrics@^1.16.1", + // SnapStart + "io.github.crac/org-crac@^0.1.3", ]; const TEST_DEPENDENCIES: string[] = [ diff --git a/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap b/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap index b0a6e00b2..946afa0af 100644 --- a/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap +++ b/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap @@ -1317,6 +1317,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -1622,6 +1627,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -5344,6 +5354,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -5644,6 +5659,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -8528,6 +8548,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -8833,6 +8858,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -12454,6 +12484,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -12754,6 +12789,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -15943,6 +15983,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -16248,6 +16293,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -20167,6 +20217,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -20467,6 +20522,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -23228,6 +23288,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -23533,6 +23598,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -30650,6 +30720,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -30955,6 +31030,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -34770,6 +34850,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -35070,6 +35155,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -50034,6 +50124,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -50339,6 +50434,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -54053,6 +54153,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -54353,6 +54458,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -57635,6 +57745,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -57940,6 +58055,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire @@ -61952,6 +62072,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -62252,6 +62377,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire diff --git a/packages/type-safe-api/test/project/codegen/types/__snapshots__/generated-java-runtime-project.test.ts.snap b/packages/type-safe-api/test/project/codegen/types/__snapshots__/generated-java-runtime-project.test.ts.snap index a6c55b919..4898bb89a 100644 --- a/packages/type-safe-api/test/project/codegen/types/__snapshots__/generated-java-runtime-project.test.ts.snap +++ b/packages/type-safe-api/test/project/codegen/types/__snapshots__/generated-java-runtime-project.test.ts.snap @@ -214,6 +214,11 @@ src/main/AndroidManifest.xml "type": "runtime", "version": "4.10.0", }, + { + "name": "io.github.crac/org-crac", + "type": "runtime", + "version": "^0.1.3", + }, { "name": "io.gsonfire/gson-fire", "type": "runtime", @@ -579,6 +584,11 @@ src/main/AndroidManifest.xml okhttp 4.10.0 + + io.github.crac + org-crac + [0.1.3,0.2.0) + io.gsonfire gson-fire diff --git a/packages/type-safe-api/test/scripts/generators/__snapshots__/java-lambda-handlers.test.ts.snap b/packages/type-safe-api/test/scripts/generators/__snapshots__/java-lambda-handlers.test.ts.snap index 3666e375a..baadb7565 100644 --- a/packages/type-safe-api/test/scripts/generators/__snapshots__/java-lambda-handlers.test.ts.snap +++ b/packages/type-safe-api/test/scripts/generators/__snapshots__/java-lambda-handlers.test.ts.snap @@ -34,6 +34,18 @@ public class JavaOneHandler extends JavaOne { return this.interceptors; } + /** + * This method is executed prior to the Java SnapStart snapshot being taken. + * Perform any warmup activities to "prime" your function here. Code in this function will be just-in-time compiled, + * before the snapshot is taken, and thus optimised ready for the first invocation. + * For example if your function interacts with DynamoDB, perform a simple read operation here. + * @see https://aws.amazon.com/blogs/compute/reducing-java-cold-starts-on-aws-lambda-functions-with-snapstart/ + */ + @Override + public void warmUp() { + + } + /** * Type-safe handler for the JavaOne operation */ @@ -87,6 +99,18 @@ public class JavaTwoHandler extends JavaTwo { return this.interceptors; } + /** + * This method is executed prior to the Java SnapStart snapshot being taken. + * Perform any warmup activities to "prime" your function here. Code in this function will be just-in-time compiled, + * before the snapshot is taken, and thus optimised ready for the first invocation. + * For example if your function interacts with DynamoDB, perform a simple read operation here. + * @see https://aws.amazon.com/blogs/compute/reducing-java-cold-starts-on-aws-lambda-functions-with-snapstart/ + */ + @Override + public void warmUp() { + + } + /** * Type-safe handler for the JavaTwo operation */ diff --git a/packages/type-safe-api/test/scripts/generators/__snapshots__/java.test.ts.snap b/packages/type-safe-api/test/scripts/generators/__snapshots__/java.test.ts.snap index 9b7abbe7e..00d06fea3 100644 --- a/packages/type-safe-api/test/scripts/generators/__snapshots__/java.test.ts.snap +++ b/packages/type-safe-api/test/scripts/generators/__snapshots__/java.test.ts.snap @@ -136,6 +136,8 @@ src/main/java/test/test/runtime/api/handlers/Interceptors.java src/main/java/test/test/runtime/api/handlers/HandlerChain.java src/main/java/test/test/runtime/api/handlers/RequestInput.java src/main/java/test/test/runtime/api/handlers/ChainedRequestInput.java +src/main/java/test/test/runtime/api/handlers/InterceptorWarmupChainedRequestInput.java +src/main/java/test/test/runtime/api/handlers/InterceptorWithWarmup.java src/main/java/test/test/runtime/api/handlers/neither/NeitherResponse.java src/main/java/test/test/runtime/api/handlers/both/BothResponse.java src/main/java/test/test/runtime/api/handlers/tag1/Tag1Response.java @@ -4343,8 +4345,10 @@ public class Handlers { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private static String decodeParameter(final String parameter) { @@ -4721,6 +4725,161 @@ public interface Interceptor { */ Response handle(ChainedRequestInput input); } +", + "src/main/java/test/test/runtime/api/handlers/InterceptorWarmupChainedRequestInput.java": " +package test.test.runtime.api.handlers; + +import com.amazonaws.services.lambda.runtime.ClientContext; +import com.amazonaws.services.lambda.runtime.CognitoIdentity; +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; +import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; + +import java.util.HashMap; +import java.util.Map; + +/** + * An "empty" chained request input used to warm up interceptors which extend the InterceptorWithWarmup + */ +public class InterceptorWarmupChainedRequestInput implements ChainedRequestInput { + + @Override + public HandlerChain getChain() { + return new HandlerChain() { + @Override + public Response next(ChainedRequestInput input) { + return new Response() { + @Override + public String getBody() { + return ""; + } + + @Override + public int getStatusCode() { + return 0; + } + + @Override + public Map getHeaders() { + return new HashMap<>(); + } + }; + } + }; + } + + @Override + public Context getContext() { + return new Context() { + @Override + public String getAwsRequestId() { + return ""; + } + + @Override + public String getLogGroupName() { + return ""; + } + + @Override + public String getLogStreamName() { + return ""; + } + + @Override + public String getFunctionName() { + return ""; + } + + @Override + public String getFunctionVersion() { + return ""; + } + + @Override + public String getInvokedFunctionArn() { + return ""; + } + + @Override + public CognitoIdentity getIdentity() { + return null; + } + + @Override + public ClientContext getClientContext() { + return null; + } + + @Override + public int getRemainingTimeInMillis() { + return 0; + } + + @Override + public int getMemoryLimitInMB() { + return 0; + } + + @Override + public LambdaLogger getLogger() { + return null; + } + }; + } + + @Override + public APIGatewayProxyRequestEvent getEvent() { + return new APIGatewayProxyRequestEvent(); + } + + @Override + public T getInput() { + return null; + } + + @Override + public Map getInterceptorContext() { + Map context = new HashMap<>(); + context.put("operationId", "__tsapi_interceptor_warmup"); + return context; + } +} +", + "src/main/java/test/test/runtime/api/handlers/InterceptorWithWarmup.java": " +package test.test.runtime.api.handlers; + +import org.crac.Resource; +import org.crac.Core; +import org.crac.Context; + +/** + * An interceptor with a "warmUp" method with default snap-start warmup behaviour, which can be overridden if desired. + */ +public abstract class InterceptorWithWarmup implements Interceptor, Resource { + { + Core.getGlobalContext().register(this); + } + + @Override + public void beforeCheckpoint(Context context) { + this.warmUp(); + } + + @Override + public void afterRestore(Context context) { + + } + + /** + * Called prior to the lambda snap-start snapshot. + * Override this to change the default behaviour, which is to call the interceptor's handle method with an empty + * chained request. + */ + public void warmUp() { + this.handle(new InterceptorWarmupChainedRequestInput<>()); + } +} ", "src/main/java/test/test/runtime/api/handlers/Interceptors.java": " package test.test.runtime.api.handlers; @@ -4813,12 +4972,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the both operation */ -public abstract class Both implements RequestHandler { +public abstract class Both implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the both operation */ @@ -4838,47 +5003,24 @@ public abstract class Both implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "both"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new BothRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - BothInput input; - - try { - input = new BothInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final BothInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -4905,7 +5047,84 @@ public abstract class Both implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new BothInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "both"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + BothInput input; + + try { + input = new BothInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -4932,8 +5151,10 @@ import java.util.HashMap; public class Both200Response extends RuntimeException implements BothResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -4996,8 +5217,10 @@ import java.io.IOException; public class BothInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private BothRequestParameters requestParameters; @@ -5135,12 +5358,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the neither operation */ -public abstract class Neither implements RequestHandler { +public abstract class Neither implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the neither operation */ @@ -5160,47 +5389,24 @@ public abstract class Neither implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "neither"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new NeitherRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - NeitherInput input; - - try { - input = new NeitherInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final NeitherInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -5227,65 +5433,144 @@ public abstract class Neither implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); - - Map responseHeaders = new HashMap<>(); - responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); - responseHeaders.putAll(response.getHeaders()); - - return new APIGatewayProxyResponseEvent() - .withStatusCode(response.getStatusCode()) - .withHeaders(responseHeaders) - .withBody(response.getBody()); + }; } -} -", - "src/main/java/test/test/runtime/api/handlers/neither/Neither200Response.java": " -package test.test.runtime.api.handlers.neither; -import test.test.runtime.model.*; -import test.test.runtime.JSON; -import java.util.Map; -import java.util.HashMap; + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); -/** - * Response with status code 200 for the neither operation - */ -public class Neither200Response extends RuntimeException implements NeitherResponse { - static { - // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. + // Initialise instance of Gson and prime serialisation and deserialisation new JSON(); - } + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); - private String body; - - private Map headers; + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new NeitherInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { - private Neither200Response(final Map headers) { - - this.body = ""; - this.headers = headers; - } + } - @Override - public int getStatusCode() { - return 200; + this.warmUp(); } @Override - public String getBody() { - return this.body; - } - + public void afterRestore(org.crac.Context context) { - @Override - public Map getHeaders() { - return this.headers; } /** - * Create a Neither200Response without a body + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "neither"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + NeitherInput input; + + try { + input = new NeitherInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); + + Map responseHeaders = new HashMap<>(); + responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); + responseHeaders.putAll(response.getHeaders()); + + return new APIGatewayProxyResponseEvent() + .withStatusCode(response.getStatusCode()) + .withHeaders(responseHeaders) + .withBody(response.getBody()); + } +} +", + "src/main/java/test/test/runtime/api/handlers/neither/Neither200Response.java": " +package test.test.runtime.api.handlers.neither; + +import test.test.runtime.model.*; +import test.test.runtime.JSON; +import java.util.Map; +import java.util.HashMap; + +/** + * Response with status code 200 for the neither operation + */ +public class Neither200Response extends RuntimeException implements NeitherResponse { + static { + // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } + } + + private String body; + + private Map headers; + + private Neither200Response(final Map headers) { + + this.body = ""; + this.headers = headers; + } + + @Override + public int getStatusCode() { + return 200; + } + + @Override + public String getBody() { + return this.body; + } + + + @Override + public Map getHeaders() { + return this.headers; + } + + /** + * Create a Neither200Response without a body */ public static Neither200Response of() { return new Neither200Response(new HashMap<>()); @@ -5318,8 +5603,10 @@ import java.io.IOException; public class NeitherInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private NeitherRequestParameters requestParameters; @@ -5457,12 +5744,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the tag1 operation */ -public abstract class Tag1 implements RequestHandler { +public abstract class Tag1 implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the tag1 operation */ @@ -5482,47 +5775,24 @@ public abstract class Tag1 implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "tag1"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new Tag1RequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - Tag1Input input; - - try { - input = new Tag1Input(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final Tag1Input input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -5549,7 +5819,84 @@ public abstract class Tag1 implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new Tag1Input(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "tag1"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + Tag1Input input; + + try { + input = new Tag1Input(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -5576,8 +5923,10 @@ import java.util.HashMap; public class Tag1200Response extends RuntimeException implements Tag1Response { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -5640,8 +5989,10 @@ import java.io.IOException; public class Tag1Input { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private Tag1RequestParameters requestParameters; @@ -5779,12 +6130,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the tag2 operation */ -public abstract class Tag2 implements RequestHandler { +public abstract class Tag2 implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the tag2 operation */ @@ -5804,47 +6161,24 @@ public abstract class Tag2 implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "tag2"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new Tag2RequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - Tag2Input input; - - try { - input = new Tag2Input(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final Tag2Input input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -5871,38 +6205,117 @@ public abstract class Tag2 implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } - Map responseHeaders = new HashMap<>(); - responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); - responseHeaders.putAll(response.getHeaders()); + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); - return new APIGatewayProxyResponseEvent() - .withStatusCode(response.getStatusCode()) - .withHeaders(responseHeaders) - .withBody(response.getBody()); + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new Tag2Input(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); } -} -", - "src/main/java/test/test/runtime/api/handlers/tag2/Tag2200Response.java": " -package test.test.runtime.api.handlers.tag2; -import test.test.runtime.model.*; -import test.test.runtime.JSON; -import java.util.Map; -import java.util.HashMap; + @Override + public void afterRestore(org.crac.Context context) { -/** - * Response with status code 200 for the tag2 operation - */ -public class Tag2200Response extends RuntimeException implements Tag2Response { - static { - // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); } - private String body; + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "tag2"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + Tag2Input input; + + try { + input = new Tag2Input(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); + + Map responseHeaders = new HashMap<>(); + responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); + responseHeaders.putAll(response.getHeaders()); + + return new APIGatewayProxyResponseEvent() + .withStatusCode(response.getStatusCode()) + .withHeaders(responseHeaders) + .withBody(response.getBody()); + } +} +", + "src/main/java/test/test/runtime/api/handlers/tag2/Tag2200Response.java": " +package test.test.runtime.api.handlers.tag2; + +import test.test.runtime.model.*; +import test.test.runtime.JSON; +import java.util.Map; +import java.util.HashMap; + +/** + * Response with status code 200 for the tag2 operation + */ +public class Tag2200Response extends RuntimeException implements Tag2Response { + static { + // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } + } + + private String body; private Map headers; @@ -5962,8 +6375,10 @@ import java.io.IOException; public class Tag2Input { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private Tag2RequestParameters requestParameters; @@ -6107,6 +6522,7 @@ public class DefaultInterceptors { import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import java.util.Map; import java.util.HashMap; @@ -6114,7 +6530,7 @@ import java.util.HashMap; * An interceptor for adding cross-origin resource sharing (CORS) headers to the response. * Allows all origins and headers. */ -public class ResponseHeadersInterceptor implements Interceptor { +public class ResponseHeadersInterceptor extends InterceptorWithWarmup { private final Map additionalHeaders; public ResponseHeadersInterceptor() { @@ -6145,12 +6561,13 @@ import test.test.runtime.api.handlers.ApiResponse; import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import org.apache.logging.log4j.Logger; /** * Interceptor for handling uncaught exceptions and responding with a default error response */ -public class TryCatchInterceptor implements Interceptor { +public class TryCatchInterceptor extends InterceptorWithWarmup { private final int statusCode; private final String errorResponseBody; @@ -6194,6 +6611,7 @@ import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.RequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import com.amazonaws.services.lambda.runtime.Context; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -6206,9 +6624,15 @@ import software.amazon.lambda.powertools.logging.LoggingUtils; * and adds the lambda context. * See https://docs.powertools.aws.dev/lambda/java/latest/core/logging/ */ -public class LoggingInterceptor implements Interceptor { +public class LoggingInterceptor extends InterceptorWithWarmup { private Logger logger = LogManager.getLogger(LoggingInterceptor.class); + @Override + public void warmUp() { + super.warmUp(); + logger.info("LoggingInterceptor: init"); + } + /** * Return the instance of the logger from the interceptor context */ @@ -6266,6 +6690,7 @@ import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.RequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import software.amazon.cloudwatchlogs.emf.logger.MetricsLogger; import software.amazon.cloudwatchlogs.emf.model.DimensionSet; import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor; @@ -6276,7 +6701,7 @@ import software.amazon.lambda.powertools.metrics.MetricsUtils; * and ensures metrics are flushed prior to finishing the lambda execution * See: https://docs.powertools.aws.dev/lambda/typescript/latest/core/metrics */ -public class MetricsInterceptor implements Interceptor { +public class MetricsInterceptor extends InterceptorWithWarmup { private MetricsLogger metrics = MetricsUtils.metricsLogger(); /** @@ -6319,7 +6744,9 @@ public class MetricsInterceptor implements Interceptor { import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import com.amazonaws.xray.AWSXRay; +import com.amazonaws.xray.AWSXRayRecorderBuilder; import com.amazonaws.xray.entities.Subsegment; import com.fasterxml.jackson.core.JsonProcessingException; import org.apache.logging.log4j.Logger; @@ -6332,13 +6759,11 @@ import software.amazon.lambda.powertools.tracing.TracingUtils; * details. * See: https://docs.powertools.aws.dev/lambda/java/latest/core/tracing/ */ -public class TracingInterceptor implements Interceptor { +public class TracingInterceptor extends InterceptorWithWarmup { - { - // Create a segment during the lambda init phase to ensure xray emitter - // is warmed up prior to invocation phase - AWSXRay.beginSubsegment("Tracing Interceptor - Init"); - AWSXRay.endSubsegment(); + static { + AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard(); + AWSXRay.setGlobalRecorder(builder.build()); } private final boolean captureResponse; @@ -6351,6 +6776,18 @@ public class TracingInterceptor implements Interceptor { this(false); } + @Override + public void warmUp() { + try { + // Set a dummy trace header to ensure the regular subsegment code path is followed and warmed. + // The segment is not actually recorded by xray. + System.setProperty("com.amazonaws.xray.traceHeader", "Root=1-xxx;Parent=yyy;Sampled=1"); + super.warmUp(); + } finally { + System.clearProperty("com.amazonaws.xray.traceHeader"); + } + } + private void logError(final String message, final ChainedRequestInput input, final Throwable e) { Object logger = input.getInterceptorContext().get("logger"); if (logger instanceof Logger) { @@ -7040,6 +7477,8 @@ src/main/java/test/test/runtime/api/handlers/Interceptors.java src/main/java/test/test/runtime/api/handlers/HandlerChain.java src/main/java/test/test/runtime/api/handlers/RequestInput.java src/main/java/test/test/runtime/api/handlers/ChainedRequestInput.java +src/main/java/test/test/runtime/api/handlers/InterceptorWarmupChainedRequestInput.java +src/main/java/test/test/runtime/api/handlers/InterceptorWithWarmup.java src/main/java/test/test/runtime/api/handlers/any_request_response/AnyRequestResponseResponse.java src/main/java/test/test/runtime/api/handlers/empty/EmptyResponse.java src/main/java/test/test/runtime/api/handlers/map_response/MapResponseResponse.java @@ -12225,8 +12664,10 @@ public class Handlers { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private static String decodeParameter(final String parameter) { @@ -12603,6 +13044,161 @@ public interface Interceptor { */ Response handle(ChainedRequestInput input); } +", + "src/main/java/test/test/runtime/api/handlers/InterceptorWarmupChainedRequestInput.java": " +package test.test.runtime.api.handlers; + +import com.amazonaws.services.lambda.runtime.ClientContext; +import com.amazonaws.services.lambda.runtime.CognitoIdentity; +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaLogger; +import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; + +import java.util.HashMap; +import java.util.Map; + +/** + * An "empty" chained request input used to warm up interceptors which extend the InterceptorWithWarmup + */ +public class InterceptorWarmupChainedRequestInput implements ChainedRequestInput { + + @Override + public HandlerChain getChain() { + return new HandlerChain() { + @Override + public Response next(ChainedRequestInput input) { + return new Response() { + @Override + public String getBody() { + return ""; + } + + @Override + public int getStatusCode() { + return 0; + } + + @Override + public Map getHeaders() { + return new HashMap<>(); + } + }; + } + }; + } + + @Override + public Context getContext() { + return new Context() { + @Override + public String getAwsRequestId() { + return ""; + } + + @Override + public String getLogGroupName() { + return ""; + } + + @Override + public String getLogStreamName() { + return ""; + } + + @Override + public String getFunctionName() { + return ""; + } + + @Override + public String getFunctionVersion() { + return ""; + } + + @Override + public String getInvokedFunctionArn() { + return ""; + } + + @Override + public CognitoIdentity getIdentity() { + return null; + } + + @Override + public ClientContext getClientContext() { + return null; + } + + @Override + public int getRemainingTimeInMillis() { + return 0; + } + + @Override + public int getMemoryLimitInMB() { + return 0; + } + + @Override + public LambdaLogger getLogger() { + return null; + } + }; + } + + @Override + public APIGatewayProxyRequestEvent getEvent() { + return new APIGatewayProxyRequestEvent(); + } + + @Override + public T getInput() { + return null; + } + + @Override + public Map getInterceptorContext() { + Map context = new HashMap<>(); + context.put("operationId", "__tsapi_interceptor_warmup"); + return context; + } +} +", + "src/main/java/test/test/runtime/api/handlers/InterceptorWithWarmup.java": " +package test.test.runtime.api.handlers; + +import org.crac.Resource; +import org.crac.Core; +import org.crac.Context; + +/** + * An interceptor with a "warmUp" method with default snap-start warmup behaviour, which can be overridden if desired. + */ +public abstract class InterceptorWithWarmup implements Interceptor, Resource { + { + Core.getGlobalContext().register(this); + } + + @Override + public void beforeCheckpoint(Context context) { + this.warmUp(); + } + + @Override + public void afterRestore(Context context) { + + } + + /** + * Called prior to the lambda snap-start snapshot. + * Override this to change the default behaviour, which is to call the interceptor's handle method with an empty + * chained request. + */ + public void warmUp() { + this.handle(new InterceptorWarmupChainedRequestInput<>()); + } +} ", "src/main/java/test/test/runtime/api/handlers/Interceptors.java": " package test.test.runtime.api.handlers; @@ -12695,12 +13291,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the anyRequestResponse operation */ -public abstract class AnyRequestResponse implements RequestHandler { +public abstract class AnyRequestResponse implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the anyRequestResponse operation */ @@ -12720,47 +13322,24 @@ public abstract class AnyRequestResponse implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "anyRequestResponse"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new AnyRequestResponseRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - AnyRequestResponseInput input; - - try { - input = new AnyRequestResponseInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final AnyRequestResponseInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -12787,7 +13366,84 @@ public abstract class AnyRequestResponse implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new AnyRequestResponseInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "anyRequestResponse"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + AnyRequestResponseInput input; + + try { + input = new AnyRequestResponseInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -12814,8 +13470,10 @@ import java.util.HashMap; public class AnyRequestResponse200Response extends RuntimeException implements AnyRequestResponseResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -12881,8 +13539,10 @@ import java.io.IOException; public class AnyRequestResponseInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private AnyRequestResponseRequestParameters requestParameters; @@ -13025,12 +13685,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the empty operation */ -public abstract class Empty implements RequestHandler { +public abstract class Empty implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the empty operation */ @@ -13050,47 +13716,24 @@ public abstract class Empty implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "empty"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new EmptyRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - EmptyInput input; - - try { - input = new EmptyInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final EmptyInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -13117,7 +13760,84 @@ public abstract class Empty implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new EmptyInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "empty"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + EmptyInput input; + + try { + input = new EmptyInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -13144,8 +13864,10 @@ import java.util.HashMap; public class Empty204Response extends RuntimeException implements EmptyResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -13208,8 +13930,10 @@ import java.io.IOException; public class EmptyInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private EmptyRequestParameters requestParameters; @@ -13347,12 +14071,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the mapResponse operation */ -public abstract class MapResponse implements RequestHandler { +public abstract class MapResponse implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the mapResponse operation */ @@ -13372,47 +14102,24 @@ public abstract class MapResponse implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "mapResponse"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new MapResponseRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - MapResponseInput input; - - try { - input = new MapResponseInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final MapResponseInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -13439,7 +14146,84 @@ public abstract class MapResponse implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new MapResponseInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "mapResponse"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + MapResponseInput input; + + try { + input = new MapResponseInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -13466,8 +14250,10 @@ import java.util.HashMap; public class MapResponse200Response extends RuntimeException implements MapResponseResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -13533,8 +14319,10 @@ import java.io.IOException; public class MapResponseInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private MapResponseRequestParameters requestParameters; @@ -13672,12 +14460,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the mediaTypes operation */ -public abstract class MediaTypes implements RequestHandler { +public abstract class MediaTypes implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the mediaTypes operation */ @@ -13697,47 +14491,24 @@ public abstract class MediaTypes implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "mediaTypes"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new MediaTypesRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - MediaTypesInput input; - - try { - input = new MediaTypesInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final MediaTypesInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -13764,7 +14535,84 @@ public abstract class MediaTypes implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new MediaTypesInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "mediaTypes"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + MediaTypesInput input; + + try { + input = new MediaTypesInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -13791,8 +14639,10 @@ import java.util.HashMap; public class MediaTypes200Response extends RuntimeException implements MediaTypesResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -13858,8 +14708,10 @@ import java.io.IOException; public class MediaTypesInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private MediaTypesRequestParameters requestParameters; @@ -14002,29 +14854,122 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the multipleContentTypes operation */ -public abstract class MultipleContentTypes implements RequestHandler { +public abstract class MultipleContentTypes implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the multipleContentTypes operation */ public abstract MultipleContentTypesResponse handle(final MultipleContentTypesRequestInput request); - /** - * Interceptors that the handler class has been decorated with - */ - private List> annotationInterceptors = Handlers.getAnnotationInterceptors(MultipleContentTypes.class); + /** + * Interceptors that the handler class has been decorated with + */ + private List> annotationInterceptors = Handlers.getAnnotationInterceptors(MultipleContentTypes.class); + + /** + * For more complex interceptors that require instantiation with parameters, you may override this method to + * return a list of instantiated interceptors. For simple interceptors with no need for constructor arguments, + * prefer the @Interceptors annotation. + */ + public List> getInterceptors() { + return Collections.emptyList(); + } + + private List> getHandlerInterceptors() { + List> interceptors = new ArrayList<>(); + interceptors.addAll(annotationInterceptors); + interceptors.addAll(this.getInterceptors()); + return interceptors; + } + + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { + @Override + public Response next(ChainedRequestInput input) { + return handle(new MultipleContentTypesRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); + } + }); + } + + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final MultipleContentTypesInput input, final Map interceptorContext) { + return new ChainedRequestInput() { + @Override + public HandlerChain getChain() { + // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining + // chain. + return null; + } + + @Override + public APIGatewayProxyRequestEvent getEvent() { + return event; + } + + @Override + public Context getContext() { + return context; + } + + @Override + public MultipleContentTypesInput getInput() { + return input; + } + + @Override + public Map getInterceptorContext() { + return interceptorContext; + } + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new MultipleContentTypesInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } /** - * For more complex interceptors that require instantiation with parameters, you may override this method to - * return a list of instantiated interceptors. For simple interceptors with no need for constructor arguments, - * prefer the @Interceptors annotation. + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. */ - public List> getInterceptors() { - return Collections.emptyList(); + public void warmUp() { + } @Override @@ -14043,15 +14988,9 @@ public abstract class MultipleContentTypes implements RequestHandler> interceptors = new ArrayList<>(); interceptors.addAll(additionalInterceptors); - interceptors.addAll(annotationInterceptors); - interceptors.addAll(this.getInterceptors()); + interceptors.addAll(this.getHandlerInterceptors()); - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { - @Override - public Response next(ChainedRequestInput input) { - return handle(new MultipleContentTypesRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); - } - }); + final HandlerChain chain = this.buildChain(interceptors); MultipleContentTypesInput input; @@ -14067,34 +15006,7 @@ public abstract class MultipleContentTypes implements RequestHandler() { - @Override - public HandlerChain getChain() { - // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining - // chain. - return null; - } - - @Override - public APIGatewayProxyRequestEvent getEvent() { - return event; - } - - @Override - public Context getContext() { - return context; - } - - @Override - public MultipleContentTypesInput getInput() { - return input; - } - - @Override - public Map getInterceptorContext() { - return interceptorContext; - } - }); + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -14121,8 +15033,10 @@ import java.util.HashMap; public class MultipleContentTypes200Response extends RuntimeException implements MultipleContentTypesResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -14188,8 +15102,10 @@ import java.io.IOException; public class MultipleContentTypesInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private MultipleContentTypesRequestParameters requestParameters; @@ -14336,12 +15252,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the operationOne operation */ -public abstract class OperationOne implements RequestHandler { +public abstract class OperationOne implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the operationOne operation */ @@ -14361,50 +15283,24 @@ public abstract class OperationOne implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - if (statusCode == 400 && "ApiError".endsWith("ResponseContent")) { - headers.put("x-amzn-errortype", "ApiError".substring(0, "ApiError".length() - "ResponseContent".length())); - } - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "operationOne"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new OperationOneRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - OperationOneInput input; - - try { - input = new OperationOneInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final OperationOneInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -14431,7 +15327,87 @@ public abstract class OperationOne implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new OperationOneInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + if (statusCode == 400 && "ApiError".endsWith("ResponseContent")) { + headers.put("x-amzn-errortype", "ApiError".substring(0, "ApiError".length() - "ResponseContent".length())); + } + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "operationOne"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + OperationOneInput input; + + try { + input = new OperationOneInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -14458,8 +15434,10 @@ import java.util.HashMap; public class OperationOne200Response extends RuntimeException implements OperationOneResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -14520,8 +15498,10 @@ import java.util.HashMap; public class OperationOne400Response extends RuntimeException implements OperationOneResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -14587,8 +15567,10 @@ import java.io.IOException; public class OperationOneInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private OperationOneRequestParameters requestParameters; @@ -14770,12 +15752,18 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent import java.io.IOException; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.crac.Core; +import org.crac.Resource; /** * Lambda handler wrapper for the withoutOperationIdDelete operation */ -public abstract class WithoutOperationIdDelete implements RequestHandler { +public abstract class WithoutOperationIdDelete implements RequestHandler, Resource { + { + Core.getGlobalContext().register(this); + } + /** * Handle the request for the withoutOperationIdDelete operation */ @@ -14795,47 +15783,24 @@ public abstract class WithoutOperationIdDelete implements RequestHandler()); - } - - private Map getErrorResponseHeaders(final int statusCode) { - Map headers = new HashMap<>(); - return headers; - } - - public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { - final Map interceptorContext = new HashMap<>(); - interceptorContext.put("operationId", "withoutOperationIdDelete"); - + private List> getHandlerInterceptors() { List> interceptors = new ArrayList<>(); - interceptors.addAll(additionalInterceptors); interceptors.addAll(annotationInterceptors); interceptors.addAll(this.getInterceptors()); + return interceptors; + } - final HandlerChain chain = Handlers.buildHandlerChain(interceptors, new HandlerChain() { + private HandlerChain buildChain(List> interceptors) { + return Handlers.buildHandlerChain(interceptors, new HandlerChain() { @Override public Response next(ChainedRequestInput input) { return handle(new WithoutOperationIdDeleteRequestInput(input.getEvent(), input.getContext(), input.getInterceptorContext(), input.getInput())); } }); + } - WithoutOperationIdDeleteInput input; - - try { - input = new WithoutOperationIdDeleteInput(event); - } catch (RuntimeException e) { - Map headers = new HashMap<>(); - headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); - headers.putAll(this.getErrorResponseHeaders(400)); - return new APIGatewayProxyResponseEvent() - .withStatusCode(400) - .withHeaders(headers) - .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); - } - - final Response response = chain.next(new ChainedRequestInput() { + private ChainedRequestInput buildChainedRequestInput(final APIGatewayProxyRequestEvent event, final Context context, final WithoutOperationIdDeleteInput input, final Map interceptorContext) { + return new ChainedRequestInput() { @Override public HandlerChain getChain() { // The chain's next method ignores the chain given as input, and is pre-built to follow the remaining @@ -14862,7 +15827,84 @@ public abstract class WithoutOperationIdDelete implements RequestHandler getInterceptorContext() { return interceptorContext; } - }); + }; + } + + @Override + public void beforeCheckpoint(org.crac.Context context) { + // Prime building the handler chain which can take a few 100ms to JIT. + this.buildChain(this.getHandlerInterceptors()); + this.buildChainedRequestInput(null, null, null, null); + + // Initialise instance of Gson and prime serialisation and deserialisation + new JSON(); + JSON.getGson().fromJson(JSON.getGson().toJson(new ApiResponse("", 0, new HashMap<>())), ApiResponse.class); + + try { + // Prime input validation - this will likely fail for the fake event but ensures the code path is optimised + // ready for a real invocation + new WithoutOperationIdDeleteInput(new APIGatewayProxyRequestEvent() + .withBody("{}") + .withPathParameters(new HashMap<>()) + .withQueryStringParameters(new HashMap<>()) + .withMultiValueQueryStringParameters(new HashMap<>()) + .withHeaders(new HashMap<>()) + .withMultiValueHeaders(new HashMap<>()) + ); + } catch (Exception e) { + + } + + this.warmUp(); + } + + @Override + public void afterRestore(org.crac.Context context) { + + } + + /** + * Override this method to perform any warmup activities which will be executed prior to the snap-start snapshot. + */ + public void warmUp() { + + } + + @Override + public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent event, final Context context) { + return this.handleRequestWithAdditionalInterceptors(event, context, new ArrayList<>()); + } + + private Map getErrorResponseHeaders(final int statusCode) { + Map headers = new HashMap<>(); + return headers; + } + + public APIGatewayProxyResponseEvent handleRequestWithAdditionalInterceptors(final APIGatewayProxyRequestEvent event, final Context context, final List> additionalInterceptors) { + final Map interceptorContext = new HashMap<>(); + interceptorContext.put("operationId", "withoutOperationIdDelete"); + + List> interceptors = new ArrayList<>(); + interceptors.addAll(additionalInterceptors); + interceptors.addAll(this.getHandlerInterceptors()); + + final HandlerChain chain = this.buildChain(interceptors); + + WithoutOperationIdDeleteInput input; + + try { + input = new WithoutOperationIdDeleteInput(event); + } catch (RuntimeException e) { + Map headers = new HashMap<>(); + headers.putAll(Handlers.extractResponseHeadersFromInterceptors(interceptors)); + headers.putAll(this.getErrorResponseHeaders(400)); + return new APIGatewayProxyResponseEvent() + .withStatusCode(400) + .withHeaders(headers) + .withBody("{\\"message\\": \\"" + e.getMessage() + "\\"}"); + } + + final Response response = chain.next(this.buildChainedRequestInput(event, context, input, interceptorContext)); Map responseHeaders = new HashMap<>(); responseHeaders.putAll(this.getErrorResponseHeaders(response.getStatusCode())); @@ -14889,8 +15931,10 @@ import java.util.HashMap; public class WithoutOperationIdDelete200Response extends RuntimeException implements WithoutOperationIdDeleteResponse { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private String body; @@ -14956,8 +16000,10 @@ import java.io.IOException; public class WithoutOperationIdDeleteInput { static { // JSON has a static instance of Gson which is instantiated lazily the first time it is initialised. - // Create an instance here to ensure that the static Gson instance is always available. - new JSON(); + // Create an instance here if required to ensure that the static Gson instance is always available. + if (JSON.getGson() == null) { + new JSON(); + } } private WithoutOperationIdDeleteRequestParameters requestParameters; @@ -15101,6 +16147,7 @@ public class DefaultInterceptors { import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import java.util.Map; import java.util.HashMap; @@ -15108,7 +16155,7 @@ import java.util.HashMap; * An interceptor for adding cross-origin resource sharing (CORS) headers to the response. * Allows all origins and headers. */ -public class ResponseHeadersInterceptor implements Interceptor { +public class ResponseHeadersInterceptor extends InterceptorWithWarmup { private final Map additionalHeaders; public ResponseHeadersInterceptor() { @@ -15139,12 +16186,13 @@ import test.test.runtime.api.handlers.ApiResponse; import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import org.apache.logging.log4j.Logger; /** * Interceptor for handling uncaught exceptions and responding with a default error response */ -public class TryCatchInterceptor implements Interceptor { +public class TryCatchInterceptor extends InterceptorWithWarmup { private final int statusCode; private final String errorResponseBody; @@ -15188,6 +16236,7 @@ import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.RequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import com.amazonaws.services.lambda.runtime.Context; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -15200,9 +16249,15 @@ import software.amazon.lambda.powertools.logging.LoggingUtils; * and adds the lambda context. * See https://docs.powertools.aws.dev/lambda/java/latest/core/logging/ */ -public class LoggingInterceptor implements Interceptor { +public class LoggingInterceptor extends InterceptorWithWarmup { private Logger logger = LogManager.getLogger(LoggingInterceptor.class); + @Override + public void warmUp() { + super.warmUp(); + logger.info("LoggingInterceptor: init"); + } + /** * Return the instance of the logger from the interceptor context */ @@ -15260,6 +16315,7 @@ import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.RequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import software.amazon.cloudwatchlogs.emf.logger.MetricsLogger; import software.amazon.cloudwatchlogs.emf.model.DimensionSet; import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor; @@ -15270,7 +16326,7 @@ import software.amazon.lambda.powertools.metrics.MetricsUtils; * and ensures metrics are flushed prior to finishing the lambda execution * See: https://docs.powertools.aws.dev/lambda/typescript/latest/core/metrics */ -public class MetricsInterceptor implements Interceptor { +public class MetricsInterceptor extends InterceptorWithWarmup { private MetricsLogger metrics = MetricsUtils.metricsLogger(); /** @@ -15313,7 +16369,9 @@ public class MetricsInterceptor implements Interceptor { import test.test.runtime.api.handlers.ChainedRequestInput; import test.test.runtime.api.handlers.Response; import test.test.runtime.api.handlers.Interceptor; +import test.test.runtime.api.handlers.InterceptorWithWarmup; import com.amazonaws.xray.AWSXRay; +import com.amazonaws.xray.AWSXRayRecorderBuilder; import com.amazonaws.xray.entities.Subsegment; import com.fasterxml.jackson.core.JsonProcessingException; import org.apache.logging.log4j.Logger; @@ -15326,13 +16384,11 @@ import software.amazon.lambda.powertools.tracing.TracingUtils; * details. * See: https://docs.powertools.aws.dev/lambda/java/latest/core/tracing/ */ -public class TracingInterceptor implements Interceptor { +public class TracingInterceptor extends InterceptorWithWarmup { - { - // Create a segment during the lambda init phase to ensure xray emitter - // is warmed up prior to invocation phase - AWSXRay.beginSubsegment("Tracing Interceptor - Init"); - AWSXRay.endSubsegment(); + static { + AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard(); + AWSXRay.setGlobalRecorder(builder.build()); } private final boolean captureResponse; @@ -15345,6 +16401,18 @@ public class TracingInterceptor implements Interceptor { this(false); } + @Override + public void warmUp() { + try { + // Set a dummy trace header to ensure the regular subsegment code path is followed and warmed. + // The segment is not actually recorded by xray. + System.setProperty("com.amazonaws.xray.traceHeader", "Root=1-xxx;Parent=yyy;Sampled=1"); + super.warmUp(); + } finally { + System.clearProperty("com.amazonaws.xray.traceHeader"); + } + } + private void logError(final String message, final ChainedRequestInput input, final Throwable e) { Object logger = input.getInterceptorContext().get("logger"); if (logger instanceof Logger) { From c91c8bd55aaaea4a09b3ad2c233ec4ab839c41b4 Mon Sep 17 00:00:00 2001 From: Adrian Dimech <51220968+agdimech@users.noreply.github.com> Date: Mon, 6 Nov 2023 13:41:19 +1100 Subject: [PATCH 4/5] fix(monorepo): ensure bun local deps resolve to workspace (#636) --- .../src/projects/typescript/monorepo-ts.ts | 40 +++++++++++++++++++ packages/pdk/_scripts/exec-command.js | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/packages/monorepo/src/projects/typescript/monorepo-ts.ts b/packages/monorepo/src/projects/typescript/monorepo-ts.ts index 747307a04..a62e52cf4 100644 --- a/packages/monorepo/src/projects/typescript/monorepo-ts.ts +++ b/packages/monorepo/src/projects/typescript/monorepo-ts.ts @@ -514,6 +514,7 @@ export class MonorepoTsProject this.validateSubProjects(); this.updateWorkspace(); this.installNonNodeDependencies(); + this.resolveLocalBunDependencies(); // Disable node warnings if configured if (this._options.disableNodeWarnings) { @@ -689,6 +690,45 @@ export class MonorepoTsProject subProject.tasks.addEnvironment("NODE_NO_WARNINGS", "1") ); } + + /** + * Resolve all local workspace dependencies to keep bun happy. + */ + private resolveLocalBunDependencies(): void { + if (this.package.packageManager !== NodePackageManager.BUN) { + return; + } + + const nodeSubProjectNames = new Set( + this.subprojects + .filter((s) => NodePackageUtils.isNodeProject(s)) + .map((s) => (s as NodeProject).package.packageName) + ); + + this.subprojects.forEach((subProject) => { + if (NodePackageUtils.isNodeProject(subProject)) { + subProject.deps.all + .filter((dep) => nodeSubProjectNames.has(dep.name)) + .forEach((d) => { + switch (d.type) { + case DependencyType.RUNTIME: + subProject.addDeps(`${d.name}@workspace:*`); + break; + case DependencyType.BUILD: + subProject.addDevDeps(`${d.name}@workspace:*`); + break; + case DependencyType.PEER: + subProject.addPeerDeps(`${d.name}@workspace:*`); + break; + default: + console.warn( + `Cannot update local dependency due to unsupported type: ${d.type}` + ); + } + }); + } + }); + } } /** diff --git a/packages/pdk/_scripts/exec-command.js b/packages/pdk/_scripts/exec-command.js index 62634b0f0..1e8780dbb 100755 --- a/packages/pdk/_scripts/exec-command.js +++ b/packages/pdk/_scripts/exec-command.js @@ -6,6 +6,7 @@ const { sync } = require("find-up"); process.argv.splice(0, 2); const isSynth = process.argv.filter(p => !p.startsWith("--")).length === 0; +const isInstall = process.argv[0] === "install"; if (process.argv[0] == "new") { execa.commandSync(`npx --yes projen@latest new --from @aws/pdk ${process.argv.slice(1).join(" ")}`, { stdio: "inherit" }); @@ -27,7 +28,7 @@ const engines = JSON.parse( ).engines; if (engines) { - let pkgMgrCmd = engines.pnpm ? "pnpm" : engines.yarn ? "yarn" : engines.bun ? "bun" : "npm run"; + let pkgMgrCmd = engines.pnpm ? "pnpm" : engines.yarn ? "yarn" : engines.bun ? `bun${isInstall ? '' : ' run'}` : "npm run"; // Deploy is a pnpm command, but it's more likely users want to run the deploy task if (engines.pnpm && process.argv[0] === "deploy") { From bf2484c46dae6418c8267a2b700ea410c747f0b4 Mon Sep 17 00:00:00 2001 From: Adrian Dimech <51220968+agdimech@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:29:54 +1100 Subject: [PATCH 5/5] fix: upgrade deps and resolve upgrade-deps issues (#637) --- .github/workflows/upgrade-mainline.yml | 2 +- .projen/deps.json | 65 - .projen/tasks.json | 3 + docs/.projen/deps.json | 65 - docs/package.json | 22 +- package.json | 35 +- packages/aws-arch/.projen/deps.json | 65 - packages/aws-arch/.projen/tasks.json | 5 +- packages/aws-arch/package.json | 46 +- .../.projen/deps.json | 65 - .../.projen/tasks.json | 5 +- .../cdk-graph-plugin-diagram/package.json | 64 +- .../graphviz/__snapshots__/dot.test.ts.snap | 6 +- packages/cdk-graph/.projen/deps.json | 65 - packages/cdk-graph/.projen/tasks.json | 5 +- packages/cdk-graph/package.json | 62 +- .../.projen/deps.json | 65 - .../.projen/tasks.json | 5 +- .../cloudscape-react-ts-website/package.json | 40 +- packages/identity/.projen/deps.json | 65 - packages/identity/.projen/tasks.json | 5 +- packages/identity/package.json | 50 +- packages/infrastructure/.projen/deps.json | 65 - packages/infrastructure/.projen/tasks.json | 5 +- packages/infrastructure/package.json | 40 +- packages/monorepo/.projen/deps.json | 65 - packages/monorepo/.projen/tasks.json | 5 +- packages/monorepo/package.json | 44 +- .../src/projects/typescript/monorepo-ts.ts | 1 + .../test/__snapshots__/monorepo.test.ts.snap | 42 + packages/pdk-nag/.projen/deps.json | 65 - packages/pdk-nag/.projen/tasks.json | 5 +- packages/pdk-nag/package.json | 50 +- packages/pdk/.projen/deps.json | 65 - packages/pdk/.projen/tasks.json | 5 +- packages/pdk/package.json | 94 +- packages/pipeline/.projen/deps.json | 65 - packages/pipeline/.projen/tasks.json | 5 +- packages/pipeline/package.json | 46 +- .../__snapshots__/pdk-pipeline.test.ts.snap | 40 +- packages/static-website/.projen/deps.json | 65 - packages/static-website/.projen/tasks.json | 5 +- packages/static-website/package.json | 46 +- .../__snapshots__/static-website.test.ts.snap | 50 +- packages/type-safe-api/.projen/deps.json | 65 - packages/type-safe-api/.projen/tasks.json | 5 +- packages/type-safe-api/package.json | 50 +- .../type-safe-rest-api.test.ts.snap | 36 +- .../type-safe-api-project.test.ts.snap | 30 + pnpm-lock.yaml | 2651 +++++++++-------- projenrc/projects/pdk-monorepo-project.ts | 57 +- 51 files changed, 1919 insertions(+), 2658 deletions(-) diff --git a/.github/workflows/upgrade-mainline.yml b/.github/workflows/upgrade-mainline.yml index 87ec8d913..57a36b202 100644 --- a/.github/workflows/upgrade-mainline.yml +++ b/.github/workflows/upgrade-mainline.yml @@ -23,7 +23,7 @@ jobs: - name: Upgrade dependencies run: pnpm projen upgrade-deps - name: Build - run: pnpm build + run: pnpm build || true - id: create_patch name: Find mutations run: |- diff --git a/.projen/deps.json b/.projen/deps.json index 4cfb91853..7287d9eee 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -138,76 +138,11 @@ "version": "7.18.2", "type": "override" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, { "name": "@zkochan/js-yaml", "version": "npm:js-yaml@4.1.0", "type": "override" }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "wrap-ansi", "version": "^7.0.0", diff --git a/.projen/tasks.json b/.projen/tasks.json index d6af918b1..64641e54d 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -201,6 +201,9 @@ { "exec": "pnpm exec syncpack fix-mismatches" }, + { + "exec": "rm pnpm-lock.yaml" + }, { "exec": "pnpm i" }, diff --git a/docs/.projen/deps.json b/docs/.projen/deps.json index 9c97f0d81..39b33d4bf 100644 --- a/docs/.projen/deps.json +++ b/docs/.projen/deps.json @@ -49,71 +49,6 @@ "name": "typescript", "type": "build" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "fs-extra", "type": "runtime" diff --git a/docs/package.json b/docs/package.json index bcc4a3816..db5b1d531 100644 --- a/docs/package.json +++ b/docs/package.json @@ -18,32 +18,16 @@ "constructs": "^10.0.0", "eslint": "^8", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "projen": "^0.76", "typescript": "^5.2.2" }, "dependencies": { "fs-extra": "^11.1.1" }, - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "main": "lib/index.js", "license": "Apache-2.0", "version": "0.0.0", diff --git a/package.json b/package.json index f15426c30..bb046888e 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,9 @@ "@aws/monorepo": "0.0.0", "@aws/pdk": "^0", "@aws/pipeline": "0.0.0", - "@commitlint/cli": "^17.7.1", - "@commitlint/config-conventional": "^17.7.0", - "@jsii/spec": "^1.88.0", + "@commitlint/cli": "^17.8.1", + "@commitlint/config-conventional": "^17.8.1", + "@jsii/spec": "^1.91.0", "@nrwl/devkit": "^16", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", @@ -39,16 +39,16 @@ "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", "got": "^11.8.5", "husky": "^8.0.3", "lerna": "^6.6.2", - "npm-check-updates": "^16.13.2", + "npm-check-updates": "^16.14.6", "nx": "16.0.0", - "nx-cloud": "^16.3.0", + "nx-cloud": "^16.5.2", "prettier": "^2.8.8", "projen": "^0.76", "syncpack": "^9.8.6", @@ -60,30 +60,17 @@ }, "dependencies": { "@aws-cdk/aws-cognito-identitypool-alpha": "latest", - "@mrgrain/jsii-struct-builder": "^0.5.7", + "@mrgrain/jsii-struct-builder": "^0.5.20", "@pnpm/types": "^9.0.0", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "fast-xml-parser": "^4.2.7", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "fast-xml-parser": "^4.3.2", "projen": "^0.76" }, "pnpm": { "overrides": { "@types/babel__traverse": "7.18.2", - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", "@zkochan/js-yaml": "npm:js-yaml@4.1.0", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1", "wrap-ansi": "^7.0.0" } }, diff --git a/packages/aws-arch/.projen/deps.json b/packages/aws-arch/.projen/deps.json index 09ec393b8..dc7e645bb 100644 --- a/packages/aws-arch/.projen/deps.json +++ b/packages/aws-arch/.projen/deps.json @@ -157,71 +157,6 @@ "name": "xml-flow", "type": "build" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "constructs", "type": "peer" diff --git a/packages/aws-arch/.projen/tasks.json b/packages/aws-arch/.projen/tasks.json index 70dbdc27d..a3d2ae7c7 100644 --- a/packages/aws-arch/.projen/tasks.json +++ b/packages/aws-arch/.projen/tasks.json @@ -201,10 +201,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/aws-arch/package.json b/packages/aws-arch/package.json index ad8d6a4b7..2ed39b0de 100644 --- a/packages/aws-arch/package.json +++ b/packages/aws-arch/package.json @@ -39,37 +39,37 @@ "devDependencies": { "@aws-cdk/cfnspec": "^2.72.1", "@types/fs-extra": "9.0.13", - "@types/jest": "^29.5.4", - "@types/lodash": "^4.14.197", + "@types/jest": "^29.5.7", + "@types/lodash": "^4.14.200", "@types/node": "^16", "@types/node-fetch": "2", "@types/sharp": "^0.31.1", - "@types/unzipper": "^0.10.7", - "@types/xml-flow": "^1.0.2", + "@types/unzipper": "^0.10.8", + "@types/xml-flow": "^1.0.3", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "constructs": "10.2.70", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", "execa": "5.1.1", "fs-extra": "^11.1.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "lodash": "^4.17.21", "node-fetch": "^2.6.7", "prettier": "^2.8.8", "projen": "^0.76", - "sharp": "^0.32.5", + "sharp": "^0.32.6", "tree-cli": "^0.6.7", "ts-jest": "^29.1.1", "typescript": "^5.2.2", @@ -77,26 +77,10 @@ "xml-flow": "^1.0.4" }, "peerDependencies": { - "constructs": "^10.2.70", + "constructs": "^10.3.0", "projen": "^0.76" }, - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "assets", "aws", diff --git a/packages/cdk-graph-plugin-diagram/.projen/deps.json b/packages/cdk-graph-plugin-diagram/.projen/deps.json index d7d81d25e..a33b94dc1 100644 --- a/packages/cdk-graph-plugin-diagram/.projen/deps.json +++ b/packages/cdk-graph-plugin-diagram/.projen/deps.json @@ -240,71 +240,6 @@ "name": "word-wrap", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "@aws/aws-arch", "version": "^0.x", diff --git a/packages/cdk-graph-plugin-diagram/.projen/tasks.json b/packages/cdk-graph-plugin-diagram/.projen/tasks.json index ba97f9e8c..c280f1193 100644 --- a/packages/cdk-graph-plugin-diagram/.projen/tasks.json +++ b/packages/cdk-graph-plugin-diagram/.projen/tasks.json @@ -136,10 +136,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/cdk-graph-plugin-diagram/package.json b/packages/cdk-graph-plugin-diagram/package.json index 027fe9d6b..ee6bd78ac 100644 --- a/packages/cdk-graph-plugin-diagram/package.json +++ b/packages/cdk-graph-plugin-diagram/package.json @@ -33,39 +33,39 @@ "devDependencies": { "@aws/aws-arch": "0.0.0", "@aws/cdk-graph": "0.0.0", - "@types/fs-extra": "^11.0.1", - "@types/he": "^1.2.0", - "@types/jest": "^29.5.4", - "@types/jest-image-snapshot": "^6.2.0", - "@types/lodash.clonedeep": "^4.5.7", - "@types/lodash.startcase": "^4.4.7", - "@types/lodash.uniqby": "^4.7.7", - "@types/lodash.words": "^4.2.7", + "@types/fs-extra": "^11.0.3", + "@types/he": "^1.2.2", + "@types/jest": "^29.5.7", + "@types/jest-image-snapshot": "^6.2.2", + "@types/lodash.clonedeep": "^4.5.8", + "@types/lodash.startcase": "^4.4.8", + "@types/lodash.uniqby": "^4.7.8", + "@types/lodash.words": "^4.2.8", "@types/node": "^16", "@types/sharp": "^0.31.1", - "@types/to-px": "^1.1.2", - "@types/traverse": "^0.6.32", + "@types/to-px": "^1.1.3", + "@types/traverse": "^0.6.34", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "constructs": "^10.3.0", "downlevel-dts": "^0.11.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", "fs-extra": "^11.1.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-image-snapshot": "^6.2.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "lodash": "^4.17.21", "prebuild": "^11.0.4", "prebuild-install": "^7.1.1", @@ -78,12 +78,12 @@ "peerDependencies": { "@aws/aws-arch": "^0.x", "@aws/cdk-graph": "^0.x", - "aws-cdk-lib": "^2.93.0", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { - "@hpcc-js/wasm": "^2.13.1", + "@hpcc-js/wasm": "^2.14.1", "execa": "5.1.1", "fs-extra": "^11.1.1", "he": "^1.2.0", @@ -91,7 +91,7 @@ "lodash.startcase": "^4.4.0", "lodash.uniqby": "^4.7.0", "lodash.words": "^4.2.0", - "sharp": "^0.32.5", + "sharp": "^0.32.6", "svgson": "^5.3.1", "to-px": "^1.1.0", "traverse": "^0.6.7", @@ -116,23 +116,7 @@ "ts-node", "word-wrap" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "cdk", diff --git a/packages/cdk-graph-plugin-diagram/test/graphviz/__snapshots__/dot.test.ts.snap b/packages/cdk-graph-plugin-diagram/test/graphviz/__snapshots__/dot.test.ts.snap index 2e7bc7284..23dc03cb9 100644 --- a/packages/cdk-graph-plugin-diagram/test/graphviz/__snapshots__/dot.test.ts.snap +++ b/packages/cdk-graph-plugin-diagram/test/graphviz/__snapshots__/dot.test.ts.snap @@ -3314,7 +3314,7 @@ exports[`dot staged-app all-stages should render svg artifact 1`] = ` .font_regular { font-family: "Roboto Condensed", sans-serif; font-style: normal; font-weight: 400; } .font_regular_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 400; } .font_bold { font-family: "Roboto Condensed", sans-serif; font-style: normal; font-weight: 700; } -.font_bold_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 700; }ROOTAll Stagescluster_stage_DevDevcluster_stack_DevFixtureStackFixtureStackcluster_DevFixtureStackNetworkingLayer3746BD15NetworkingLayercluster_DevFixtureStackDataLayerF01C9638DataLayercluster_DevFixtureStackApiLayer0955BCDBApiLayercluster_DevFixtureStackWebsite2C5603EDWebsitecluster_DevFixtureStackEdgeCasesD5303E50EdgeCasescluster_stack_DevDependentStackDependentStackcluster_nstack_DevDependentStackResourceStackB2E0A649ResourceStackcluster_stage_StagingStagingcluster_stack_StagingFixtureStackFixtureStackcluster_StagingFixtureStackNetworkingLayerDE3FD7CBNetworkingLayercluster_StagingFixtureStackDataLayerDA8EC912DataLayercluster_StagingFixtureStackApiLayerB16A4C64ApiLayercluster_StagingFixtureStackWebsite735DEC58Websitecluster_StagingFixtureStackEdgeCasesC3D7C0B8EdgeCasescluster_stack_StagingDependentStackDependentStackcluster_nstack_StagingDependentStackResourceStack80870182ResourceStackcluster_stage_ProdProdcluster_stack_ProdFixtureStackFixtureStackcluster_ProdFixtureStackNetworkingLayerB7E3ED99NetworkingLayercluster_ProdFixtureStackDataLayerF4026588DataLayercluster_ProdFixtureStackApiLayer6B6FBC7EApiLayercluster_ProdFixtureStackWebsite71FAC1DEWebsitecluster_ProdFixtureStackEdgeCases1F90BDF7EdgeCasescluster_stack_ProdDependentStackDependentStackcluster_nstack_ProdDependentStackResourceStack28CAA7DEResourceStacknode_DevFixtureStackNetworkingLayerVPCEB4440B9VPCnode_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733WebSecurityGroup<![CDATA[node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233WebserverRolenode_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85GetUserDataParamnode_DevFixtureStackNetworkingLayerWebServerBCAFFFFCWebServer<![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85]]>node_DevFixtureStackNetworkingLayerBastion3AC18162Bastion<![CDATA[node_DevFixtureStackNetworkingLayerBastion3AC18162->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerBucketB8EB728CBucketnode_DevFixtureStackDataLayerDatabaseD1FECE3FDatabase<![CDATA[node_DevFixtureStackDataLayerDatabaseD1FECE3F->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerReadRole7D344422ReadRole<![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackApiLayerApiGateway81DB41E8ApiGatewaynode_DevFixtureStackApiLayerHelloHandlerC2CC35FCHelloHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerHelloHandlerC2CC35FC]]>node_DevFixtureStackApiLayerWorldHandler7AE9E630WorldHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerWorldHandler7AE9E630]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackWebsiteSourceBucket016B4566SourceBucketnode_DevFixtureStackWebsiteConfigProvider2C45619EConfigProvider<![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackApiLayerApiGateway81DB41E8]]><![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackWebsiteWebDistroBF68B8CAWebDistro<![CDATA[node_DevFixtureStackWebsiteWebDistroBF68B8CA->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackEdgeCasesLambdaWithAliasCCDC3E20LambdaWithAliasnode_DevFixtureStackEdgeCasesImportedBucketA791E4D6ImportedBucketnode_DevFixtureStackEdgeCasesImportedLambda7DD56F1BImportedLambdanode_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030ImportedResourceRolenode_ProdFixtureStackEdgeCasesImportedBucket00394349ImportedBucket<![CDATA[node_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]>node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8CImportedLambda<![CDATA[node_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_DevDependentStackResourceStackLambdaFunctionAFB760D2LambdaFunctionnode_DevDependentStackResourceStackRole6CF25393Role<![CDATA[node_DevDependentStackResourceStackLambdaFunctionAFB760D2->node_DevDependentStackResourceStackRole6CF25393]]>node_StagingFixtureStackNetworkingLayerVPC69B2E2D1VPCnode_StagingFixtureStackNetworkingLayerWebSecurityGroup4AC9BE12WebSecurityGroup<![CDATA[node_StagingFixtureStackNetworkingLayerWebSecurityGroup4AC9BE12->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]>node_StagingFixtureStackNetworkingLayerwebserverrole8AF682A2WebserverRolenode_StagingFixtureStackNetworkingLayerGetUserDataParam5F534FBAGetUserDataParamnode_StagingFixtureStackNetworkingLayerWebServerFAD54197WebServer<![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]><![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerWebSecurityGroup4AC9BE12]]><![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerwebserverrole8AF682A2]]><![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerGetUserDataParam5F534FBA]]>node_StagingFixtureStackNetworkingLayerBastion58CEE68CBastion<![CDATA[node_StagingFixtureStackNetworkingLayerBastion58CEE68C->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]>node_StagingFixtureStackDataLayerBucketA7681A36Bucketnode_StagingFixtureStackDataLayerDatabaseA69761B7Database<![CDATA[node_StagingFixtureStackDataLayerDatabaseA69761B7->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]>node_StagingFixtureStackDataLayerReadRole2C9B7C2DReadRole<![CDATA[node_StagingFixtureStackDataLayerReadRole2C9B7C2D->node_StagingFixtureStackDataLayerBucketA7681A36]]><![CDATA[node_StagingFixtureStackDataLayerReadRole2C9B7C2D->node_StagingFixtureStackDataLayerDatabaseA69761B7]]>node_StagingFixtureStackApiLayerApiGatewayF73D4071ApiGatewaynode_StagingFixtureStackApiLayerHelloHandler21AB278CHelloHandler<![CDATA[node_StagingFixtureStackApiLayerApiGatewayF73D4071->node_StagingFixtureStackApiLayerHelloHandler21AB278C]]>node_StagingFixtureStackApiLayerWorldHandlerFA748DF6WorldHandler<![CDATA[node_StagingFixtureStackApiLayerApiGatewayF73D4071->node_StagingFixtureStackApiLayerWorldHandlerFA748DF6]]><![CDATA[node_StagingFixtureStackApiLayerHelloHandler21AB278C->node_StagingFixtureStackDataLayerBucketA7681A36]]><![CDATA[node_StagingFixtureStackApiLayerHelloHandler21AB278C->node_StagingFixtureStackDataLayerDatabaseA69761B7]]>node_StagingFixtureStackWebsiteSourceBucket7995D621SourceBucketnode_StagingFixtureStackWebsiteConfigProvider6501D16BConfigProvider<![CDATA[node_StagingFixtureStackWebsiteConfigProvider6501D16B->node_StagingFixtureStackApiLayerApiGatewayF73D4071]]><![CDATA[node_StagingFixtureStackWebsiteConfigProvider6501D16B->node_StagingFixtureStackWebsiteSourceBucket7995D621]]>node_StagingFixtureStackWebsiteWebDistro401A9A8FWebDistro<![CDATA[node_StagingFixtureStackWebsiteWebDistro401A9A8F->node_StagingFixtureStackWebsiteSourceBucket7995D621]]>node_StagingFixtureStackEdgeCasesLambdaWithAlias67246018LambdaWithAliasnode_StagingFixtureStackEdgeCasesImportedBucket0760FFF6ImportedBucketnode_StagingFixtureStackEdgeCasesImportedLambdaA835DDD0ImportedLambdanode_StagingFixtureStackEdgeCasesImportedResourceRole17AC8063ImportedResourceRole<![CDATA[node_StagingFixtureStackEdgeCasesImportedResourceRole17AC8063->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]><![CDATA[node_StagingFixtureStackEdgeCasesImportedResourceRole17AC8063->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_StagingDependentStackResourceStackLambdaFunction43C59230LambdaFunctionnode_StagingDependentStackResourceStackRoleD0FD634BRole<![CDATA[node_StagingDependentStackResourceStackLambdaFunction43C59230->node_StagingDependentStackResourceStackRoleD0FD634B]]>node_ProdFixtureStackNetworkingLayerVPC389D72E2VPCnode_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488EWebSecurityGroup<![CDATA[node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99WebserverRolenode_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3GetUserDataParamnode_ProdFixtureStackNetworkingLayerWebServer25D75DC4WebServer<![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3]]>node_ProdFixtureStackNetworkingLayerBastion5F69250BBastion<![CDATA[node_ProdFixtureStackNetworkingLayerBastion5F69250B->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerBucketD02C835BBucketnode_ProdFixtureStackDataLayerDatabase69D2A18DDatabase<![CDATA[node_ProdFixtureStackDataLayerDatabase69D2A18D->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerReadRoleD4070F87ReadRole<![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackApiLayerApiGatewayFD5A946BApiGatewaynode_ProdFixtureStackApiLayerHelloHandler72BEB90EHelloHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerHelloHandler72BEB90E]]>node_ProdFixtureStackApiLayerWorldHandler82F3FC55WorldHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerWorldHandler82F3FC55]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackWebsiteSourceBucketBF5786EESourceBucketnode_ProdFixtureStackWebsiteConfigProvider228954C9ConfigProvider<![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackApiLayerApiGatewayFD5A946B]]><![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackWebsiteWebDistroE3AC5570WebDistro<![CDATA[node_ProdFixtureStackWebsiteWebDistroE3AC5570->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackEdgeCasesLambdaWithAliasA9B3E2E7LambdaWithAliasnode_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014ImportedResourceRole<![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]><![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_ProdDependentStackResourceStackLambdaFunction68E462DFLambdaFunctionnode_ProdDependentStackResourceStackRole2DED6E96Role<![CDATA[node_ProdDependentStackResourceStackLambdaFunction68E462DF->node_ProdDependentStackResourceStackRole2DED6E96]]>" +.font_bold_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 700; }ROOTAll Stagescluster_stage_DevDevcluster_stack_DevFixtureStackFixtureStackcluster_DevFixtureStackNetworkingLayer3746BD15NetworkingLayercluster_DevFixtureStackDataLayerF01C9638DataLayercluster_DevFixtureStackApiLayer0955BCDBApiLayercluster_DevFixtureStackWebsite2C5603EDWebsitecluster_DevFixtureStackEdgeCasesD5303E50EdgeCasescluster_stack_DevDependentStackDependentStackcluster_nstack_DevDependentStackResourceStackB2E0A649ResourceStackcluster_stage_StagingStagingcluster_stack_StagingFixtureStackFixtureStackcluster_StagingFixtureStackNetworkingLayerDE3FD7CBNetworkingLayercluster_StagingFixtureStackDataLayerDA8EC912DataLayercluster_StagingFixtureStackApiLayerB16A4C64ApiLayercluster_StagingFixtureStackWebsite735DEC58Websitecluster_StagingFixtureStackEdgeCasesC3D7C0B8EdgeCasescluster_stack_StagingDependentStackDependentStackcluster_nstack_StagingDependentStackResourceStack80870182ResourceStackcluster_stage_ProdProdcluster_stack_ProdFixtureStackFixtureStackcluster_ProdFixtureStackNetworkingLayerB7E3ED99NetworkingLayercluster_ProdFixtureStackDataLayerF4026588DataLayercluster_ProdFixtureStackApiLayer6B6FBC7EApiLayercluster_ProdFixtureStackWebsite71FAC1DEWebsitecluster_ProdFixtureStackEdgeCases1F90BDF7EdgeCasescluster_stack_ProdDependentStackDependentStackcluster_nstack_ProdDependentStackResourceStack28CAA7DEResourceStacknode_DevFixtureStackNetworkingLayerVPCEB4440B9VPCnode_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733WebSecurityGroup<![CDATA[node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233WebserverRolenode_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85GetUserDataParamnode_DevFixtureStackNetworkingLayerWebServerBCAFFFFCWebServer<![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85]]>node_DevFixtureStackNetworkingLayerBastion3AC18162Bastion<![CDATA[node_DevFixtureStackNetworkingLayerBastion3AC18162->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerBucketB8EB728CBucketnode_DevFixtureStackDataLayerDatabaseD1FECE3FDatabase<![CDATA[node_DevFixtureStackDataLayerDatabaseD1FECE3F->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerReadRole7D344422ReadRole<![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackApiLayerApiGateway81DB41E8ApiGatewaynode_DevFixtureStackApiLayerHelloHandlerC2CC35FCHelloHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerHelloHandlerC2CC35FC]]>node_DevFixtureStackApiLayerWorldHandler7AE9E630WorldHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerWorldHandler7AE9E630]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackWebsiteSourceBucket016B4566SourceBucketnode_DevFixtureStackWebsiteConfigProvider2C45619EConfigProvider<![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackApiLayerApiGateway81DB41E8]]><![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackWebsiteWebDistroBF68B8CAWebDistro<![CDATA[node_DevFixtureStackWebsiteWebDistroBF68B8CA->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackEdgeCasesLambdaWithAliasCCDC3E20LambdaWithAliasnode_DevFixtureStackEdgeCasesImportedBucketA791E4D6ImportedBucketnode_DevFixtureStackEdgeCasesImportedLambda7DD56F1BImportedLambdanode_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030ImportedResourceRolenode_ProdFixtureStackEdgeCasesImportedBucket00394349ImportedBucket<![CDATA[node_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]>node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8CImportedLambda<![CDATA[node_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_DevDependentStackResourceStackLambdaFunctionAFB760D2LambdaFunctionnode_DevDependentStackResourceStackRole6CF25393Role<![CDATA[node_DevDependentStackResourceStackLambdaFunctionAFB760D2->node_DevDependentStackResourceStackRole6CF25393]]>node_StagingFixtureStackNetworkingLayerVPC69B2E2D1VPCnode_StagingFixtureStackNetworkingLayerWebSecurityGroup4AC9BE12WebSecurityGroup<![CDATA[node_StagingFixtureStackNetworkingLayerWebSecurityGroup4AC9BE12->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]>node_StagingFixtureStackNetworkingLayerwebserverrole8AF682A2WebserverRolenode_StagingFixtureStackNetworkingLayerGetUserDataParam5F534FBAGetUserDataParamnode_StagingFixtureStackNetworkingLayerWebServerFAD54197WebServer<![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]><![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerWebSecurityGroup4AC9BE12]]><![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerwebserverrole8AF682A2]]><![CDATA[node_StagingFixtureStackNetworkingLayerWebServerFAD54197->node_StagingFixtureStackNetworkingLayerGetUserDataParam5F534FBA]]>node_StagingFixtureStackNetworkingLayerBastion58CEE68CBastion<![CDATA[node_StagingFixtureStackNetworkingLayerBastion58CEE68C->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]>node_StagingFixtureStackDataLayerBucketA7681A36Bucketnode_StagingFixtureStackDataLayerDatabaseA69761B7Database<![CDATA[node_StagingFixtureStackDataLayerDatabaseA69761B7->node_StagingFixtureStackNetworkingLayerVPC69B2E2D1]]>node_StagingFixtureStackDataLayerReadRole2C9B7C2DReadRole<![CDATA[node_StagingFixtureStackDataLayerReadRole2C9B7C2D->node_StagingFixtureStackDataLayerBucketA7681A36]]><![CDATA[node_StagingFixtureStackDataLayerReadRole2C9B7C2D->node_StagingFixtureStackDataLayerDatabaseA69761B7]]>node_StagingFixtureStackApiLayerApiGatewayF73D4071ApiGatewaynode_StagingFixtureStackApiLayerHelloHandler21AB278CHelloHandler<![CDATA[node_StagingFixtureStackApiLayerApiGatewayF73D4071->node_StagingFixtureStackApiLayerHelloHandler21AB278C]]>node_StagingFixtureStackApiLayerWorldHandlerFA748DF6WorldHandler<![CDATA[node_StagingFixtureStackApiLayerApiGatewayF73D4071->node_StagingFixtureStackApiLayerWorldHandlerFA748DF6]]><![CDATA[node_StagingFixtureStackApiLayerHelloHandler21AB278C->node_StagingFixtureStackDataLayerBucketA7681A36]]><![CDATA[node_StagingFixtureStackApiLayerHelloHandler21AB278C->node_StagingFixtureStackDataLayerDatabaseA69761B7]]>node_StagingFixtureStackWebsiteSourceBucket7995D621SourceBucketnode_StagingFixtureStackWebsiteConfigProvider6501D16BConfigProvider<![CDATA[node_StagingFixtureStackWebsiteConfigProvider6501D16B->node_StagingFixtureStackApiLayerApiGatewayF73D4071]]><![CDATA[node_StagingFixtureStackWebsiteConfigProvider6501D16B->node_StagingFixtureStackWebsiteSourceBucket7995D621]]>node_StagingFixtureStackWebsiteWebDistro401A9A8FWebDistro<![CDATA[node_StagingFixtureStackWebsiteWebDistro401A9A8F->node_StagingFixtureStackWebsiteSourceBucket7995D621]]>node_StagingFixtureStackEdgeCasesLambdaWithAlias67246018LambdaWithAliasnode_StagingFixtureStackEdgeCasesImportedBucket0760FFF6ImportedBucketnode_StagingFixtureStackEdgeCasesImportedLambdaA835DDD0ImportedLambdanode_StagingFixtureStackEdgeCasesImportedResourceRole17AC8063ImportedResourceRole<![CDATA[node_StagingFixtureStackEdgeCasesImportedResourceRole17AC8063->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]><![CDATA[node_StagingFixtureStackEdgeCasesImportedResourceRole17AC8063->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_StagingDependentStackResourceStackLambdaFunction43C59230LambdaFunctionnode_StagingDependentStackResourceStackRoleD0FD634BRole<![CDATA[node_StagingDependentStackResourceStackLambdaFunction43C59230->node_StagingDependentStackResourceStackRoleD0FD634B]]>node_ProdFixtureStackNetworkingLayerVPC389D72E2VPCnode_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488EWebSecurityGroup<![CDATA[node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99WebserverRolenode_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3GetUserDataParamnode_ProdFixtureStackNetworkingLayerWebServer25D75DC4WebServer<![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3]]>node_ProdFixtureStackNetworkingLayerBastion5F69250BBastion<![CDATA[node_ProdFixtureStackNetworkingLayerBastion5F69250B->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerBucketD02C835BBucketnode_ProdFixtureStackDataLayerDatabase69D2A18DDatabase<![CDATA[node_ProdFixtureStackDataLayerDatabase69D2A18D->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerReadRoleD4070F87ReadRole<![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackApiLayerApiGatewayFD5A946BApiGatewaynode_ProdFixtureStackApiLayerHelloHandler72BEB90EHelloHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerHelloHandler72BEB90E]]>node_ProdFixtureStackApiLayerWorldHandler82F3FC55WorldHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerWorldHandler82F3FC55]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackWebsiteSourceBucketBF5786EESourceBucketnode_ProdFixtureStackWebsiteConfigProvider228954C9ConfigProvider<![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackApiLayerApiGatewayFD5A946B]]><![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackWebsiteWebDistroE3AC5570WebDistro<![CDATA[node_ProdFixtureStackWebsiteWebDistroE3AC5570->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackEdgeCasesLambdaWithAliasA9B3E2E7LambdaWithAliasnode_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014ImportedResourceRole<![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]><![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_ProdDependentStackResourceStackLambdaFunction68E462DFLambdaFunctionnode_ProdDependentStackResourceStackRole2DED6E96Role<![CDATA[node_ProdDependentStackResourceStackLambdaFunction68E462DF->node_ProdDependentStackResourceStackRole2DED6E96]]>" `; exports[`dot staged-app dev-stage should render dot artifact 1`] = ` @@ -4010,7 +4010,7 @@ exports[`dot staged-app dev-stage should render svg artifact 1`] = ` .font_regular { font-family: "Roboto Condensed", sans-serif; font-style: normal; font-weight: 400; } .font_regular_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 400; } .font_bold { font-family: "Roboto Condensed", sans-serif; font-style: normal; font-weight: 700; } -.font_bold_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 700; }ROOTDev Stage (regex)cluster_stage_DevDevcluster_stack_DevFixtureStackFixtureStackcluster_DevFixtureStackNetworkingLayer3746BD15NetworkingLayercluster_DevFixtureStackDataLayerF01C9638DataLayercluster_DevFixtureStackApiLayer0955BCDBApiLayercluster_DevFixtureStackWebsite2C5603EDWebsitecluster_DevFixtureStackEdgeCasesD5303E50EdgeCasescluster_stack_DevDependentStackDependentStackcluster_nstack_DevDependentStackResourceStackB2E0A649ResourceStacknode_DevFixtureStackNetworkingLayerVPCEB4440B9VPCnode_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733WebSecurityGroup<![CDATA[node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233WebserverRolenode_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85GetUserDataParamnode_DevFixtureStackNetworkingLayerWebServerBCAFFFFCWebServer<![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85]]>node_DevFixtureStackNetworkingLayerBastion3AC18162Bastion<![CDATA[node_DevFixtureStackNetworkingLayerBastion3AC18162->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerBucketB8EB728CBucketnode_DevFixtureStackDataLayerDatabaseD1FECE3FDatabase<![CDATA[node_DevFixtureStackDataLayerDatabaseD1FECE3F->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerReadRole7D344422ReadRole<![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackApiLayerApiGateway81DB41E8ApiGatewaynode_DevFixtureStackApiLayerHelloHandlerC2CC35FCHelloHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerHelloHandlerC2CC35FC]]>node_DevFixtureStackApiLayerWorldHandler7AE9E630WorldHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerWorldHandler7AE9E630]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackWebsiteSourceBucket016B4566SourceBucketnode_DevFixtureStackWebsiteConfigProvider2C45619EConfigProvider<![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackApiLayerApiGateway81DB41E8]]><![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackWebsiteWebDistroBF68B8CAWebDistro<![CDATA[node_DevFixtureStackWebsiteWebDistroBF68B8CA->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackEdgeCasesLambdaWithAliasCCDC3E20LambdaWithAliasnode_DevFixtureStackEdgeCasesImportedBucketA791E4D6ImportedBucketnode_DevFixtureStackEdgeCasesImportedLambda7DD56F1BImportedLambdanode_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030ImportedResourceRolenode_DevDependentStackResourceStackLambdaFunctionAFB760D2LambdaFunctionnode_DevDependentStackResourceStackRole6CF25393Role<![CDATA[node_DevDependentStackResourceStackLambdaFunctionAFB760D2->node_DevDependentStackResourceStackRole6CF25393]]>" +.font_bold_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 700; }ROOTDev Stage (regex)cluster_stage_DevDevcluster_stack_DevFixtureStackFixtureStackcluster_DevFixtureStackNetworkingLayer3746BD15NetworkingLayercluster_DevFixtureStackDataLayerF01C9638DataLayercluster_DevFixtureStackApiLayer0955BCDBApiLayercluster_DevFixtureStackWebsite2C5603EDWebsitecluster_DevFixtureStackEdgeCasesD5303E50EdgeCasescluster_stack_DevDependentStackDependentStackcluster_nstack_DevDependentStackResourceStackB2E0A649ResourceStacknode_DevFixtureStackNetworkingLayerVPCEB4440B9VPCnode_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733WebSecurityGroup<![CDATA[node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233WebserverRolenode_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85GetUserDataParamnode_DevFixtureStackNetworkingLayerWebServerBCAFFFFCWebServer<![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerWebSecurityGroupC88BD733]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerwebserverroleBC3B8233]]><![CDATA[node_DevFixtureStackNetworkingLayerWebServerBCAFFFFC->node_DevFixtureStackNetworkingLayerGetUserDataParamAD253A85]]>node_DevFixtureStackNetworkingLayerBastion3AC18162Bastion<![CDATA[node_DevFixtureStackNetworkingLayerBastion3AC18162->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerBucketB8EB728CBucketnode_DevFixtureStackDataLayerDatabaseD1FECE3FDatabase<![CDATA[node_DevFixtureStackDataLayerDatabaseD1FECE3F->node_DevFixtureStackNetworkingLayerVPCEB4440B9]]>node_DevFixtureStackDataLayerReadRole7D344422ReadRole<![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackDataLayerReadRole7D344422->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackApiLayerApiGateway81DB41E8ApiGatewaynode_DevFixtureStackApiLayerHelloHandlerC2CC35FCHelloHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerHelloHandlerC2CC35FC]]>node_DevFixtureStackApiLayerWorldHandler7AE9E630WorldHandler<![CDATA[node_DevFixtureStackApiLayerApiGateway81DB41E8->node_DevFixtureStackApiLayerWorldHandler7AE9E630]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerBucketB8EB728C]]><![CDATA[node_DevFixtureStackApiLayerHelloHandlerC2CC35FC->node_DevFixtureStackDataLayerDatabaseD1FECE3F]]>node_DevFixtureStackWebsiteSourceBucket016B4566SourceBucketnode_DevFixtureStackWebsiteConfigProvider2C45619EConfigProvider<![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackApiLayerApiGateway81DB41E8]]><![CDATA[node_DevFixtureStackWebsiteConfigProvider2C45619E->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackWebsiteWebDistroBF68B8CAWebDistro<![CDATA[node_DevFixtureStackWebsiteWebDistroBF68B8CA->node_DevFixtureStackWebsiteSourceBucket016B4566]]>node_DevFixtureStackEdgeCasesLambdaWithAliasCCDC3E20LambdaWithAliasnode_DevFixtureStackEdgeCasesImportedBucketA791E4D6ImportedBucketnode_DevFixtureStackEdgeCasesImportedLambda7DD56F1BImportedLambdanode_DevFixtureStackEdgeCasesImportedResourceRoleFFACA030ImportedResourceRolenode_DevDependentStackResourceStackLambdaFunctionAFB760D2LambdaFunctionnode_DevDependentStackResourceStackRole6CF25393Role<![CDATA[node_DevDependentStackResourceStackLambdaFunctionAFB760D2->node_DevDependentStackResourceStackRole6CF25393]]>" `; exports[`dot staged-app prod-stage should render dot artifact 1`] = ` @@ -4726,5 +4726,5 @@ exports[`dot staged-app prod-stage should render svg artifact 1`] = ` .font_regular { font-family: "Roboto Condensed", sans-serif; font-style: normal; font-weight: 400; } .font_regular_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 400; } .font_bold { font-family: "Roboto Condensed", sans-serif; font-style: normal; font-weight: 700; } -.font_bold_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 700; }ROOTProd Stage (last)cluster_stage_ProdProdcluster_stack_ProdFixtureStackFixtureStackcluster_ProdFixtureStackNetworkingLayerB7E3ED99NetworkingLayercluster_ProdFixtureStackDataLayerF4026588DataLayercluster_ProdFixtureStackApiLayer6B6FBC7EApiLayercluster_ProdFixtureStackWebsite71FAC1DEWebsitecluster_ProdFixtureStackEdgeCases1F90BDF7EdgeCasescluster_stack_ProdDependentStackDependentStackcluster_nstack_ProdDependentStackResourceStack28CAA7DEResourceStacknode_ProdFixtureStackNetworkingLayerVPC389D72E2VPCnode_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488EWebSecurityGroup<![CDATA[node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99WebserverRolenode_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3GetUserDataParamnode_ProdFixtureStackNetworkingLayerWebServer25D75DC4WebServer<![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3]]>node_ProdFixtureStackNetworkingLayerBastion5F69250BBastion<![CDATA[node_ProdFixtureStackNetworkingLayerBastion5F69250B->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerBucketD02C835BBucketnode_ProdFixtureStackDataLayerDatabase69D2A18DDatabase<![CDATA[node_ProdFixtureStackDataLayerDatabase69D2A18D->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerReadRoleD4070F87ReadRole<![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackApiLayerApiGatewayFD5A946BApiGatewaynode_ProdFixtureStackApiLayerHelloHandler72BEB90EHelloHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerHelloHandler72BEB90E]]>node_ProdFixtureStackApiLayerWorldHandler82F3FC55WorldHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerWorldHandler82F3FC55]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackWebsiteSourceBucketBF5786EESourceBucketnode_ProdFixtureStackWebsiteConfigProvider228954C9ConfigProvider<![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackApiLayerApiGatewayFD5A946B]]><![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackWebsiteWebDistroE3AC5570WebDistro<![CDATA[node_ProdFixtureStackWebsiteWebDistroE3AC5570->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackEdgeCasesLambdaWithAliasA9B3E2E7LambdaWithAliasnode_ProdFixtureStackEdgeCasesImportedBucket00394349ImportedBucketnode_ProdFixtureStackEdgeCasesImportedLambda03BE5B8CImportedLambdanode_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014ImportedResourceRole<![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]><![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_ProdDependentStackResourceStackLambdaFunction68E462DFLambdaFunctionnode_ProdDependentStackResourceStackRole2DED6E96Role<![CDATA[node_ProdDependentStackResourceStackLambdaFunction68E462DF->node_ProdDependentStackResourceStackRole2DED6E96]]>" +.font_bold_italic { font-family: "Roboto Condensed", sans-serif; font-style: italic; font-weight: 700; }ROOTProd Stage (last)cluster_stage_ProdProdcluster_stack_ProdFixtureStackFixtureStackcluster_ProdFixtureStackNetworkingLayerB7E3ED99NetworkingLayercluster_ProdFixtureStackDataLayerF4026588DataLayercluster_ProdFixtureStackApiLayer6B6FBC7EApiLayercluster_ProdFixtureStackWebsite71FAC1DEWebsitecluster_ProdFixtureStackEdgeCases1F90BDF7EdgeCasescluster_stack_ProdDependentStackDependentStackcluster_nstack_ProdDependentStackResourceStack28CAA7DEResourceStacknode_ProdFixtureStackNetworkingLayerVPC389D72E2VPCnode_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488EWebSecurityGroup<![CDATA[node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99WebserverRolenode_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3GetUserDataParamnode_ProdFixtureStackNetworkingLayerWebServer25D75DC4WebServer<![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerWebSecurityGroup812D488E]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerwebserverroleF6CF2B99]]><![CDATA[node_ProdFixtureStackNetworkingLayerWebServer25D75DC4->node_ProdFixtureStackNetworkingLayerGetUserDataParam348629C3]]>node_ProdFixtureStackNetworkingLayerBastion5F69250BBastion<![CDATA[node_ProdFixtureStackNetworkingLayerBastion5F69250B->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerBucketD02C835BBucketnode_ProdFixtureStackDataLayerDatabase69D2A18DDatabase<![CDATA[node_ProdFixtureStackDataLayerDatabase69D2A18D->node_ProdFixtureStackNetworkingLayerVPC389D72E2]]>node_ProdFixtureStackDataLayerReadRoleD4070F87ReadRole<![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackDataLayerReadRoleD4070F87->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackApiLayerApiGatewayFD5A946BApiGatewaynode_ProdFixtureStackApiLayerHelloHandler72BEB90EHelloHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerHelloHandler72BEB90E]]>node_ProdFixtureStackApiLayerWorldHandler82F3FC55WorldHandler<![CDATA[node_ProdFixtureStackApiLayerApiGatewayFD5A946B->node_ProdFixtureStackApiLayerWorldHandler82F3FC55]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerBucketD02C835B]]><![CDATA[node_ProdFixtureStackApiLayerHelloHandler72BEB90E->node_ProdFixtureStackDataLayerDatabase69D2A18D]]>node_ProdFixtureStackWebsiteSourceBucketBF5786EESourceBucketnode_ProdFixtureStackWebsiteConfigProvider228954C9ConfigProvider<![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackApiLayerApiGatewayFD5A946B]]><![CDATA[node_ProdFixtureStackWebsiteConfigProvider228954C9->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackWebsiteWebDistroE3AC5570WebDistro<![CDATA[node_ProdFixtureStackWebsiteWebDistroE3AC5570->node_ProdFixtureStackWebsiteSourceBucketBF5786EE]]>node_ProdFixtureStackEdgeCasesLambdaWithAliasA9B3E2E7LambdaWithAliasnode_ProdFixtureStackEdgeCasesImportedBucket00394349ImportedBucketnode_ProdFixtureStackEdgeCasesImportedLambda03BE5B8CImportedLambdanode_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014ImportedResourceRole<![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedBucket00394349]]><![CDATA[node_ProdFixtureStackEdgeCasesImportedResourceRoleE421C014->node_ProdFixtureStackEdgeCasesImportedLambda03BE5B8C]]>node_ProdDependentStackResourceStackLambdaFunction68E462DFLambdaFunctionnode_ProdDependentStackResourceStackRole2DED6E96Role<![CDATA[node_ProdDependentStackResourceStackLambdaFunction68E462DF->node_ProdDependentStackResourceStackRole2DED6E96]]>" `; diff --git a/packages/cdk-graph/.projen/deps.json b/packages/cdk-graph/.projen/deps.json index 42ff969c6..9ef683cba 100644 --- a/packages/cdk-graph/.projen/deps.json +++ b/packages/cdk-graph/.projen/deps.json @@ -205,71 +205,6 @@ "name": "traverse", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "aws-cdk-lib", "type": "peer" diff --git a/packages/cdk-graph/.projen/tasks.json b/packages/cdk-graph/.projen/tasks.json index 277d0236a..e07671050 100644 --- a/packages/cdk-graph/.projen/tasks.json +++ b/packages/cdk-graph/.projen/tasks.json @@ -125,10 +125,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/cdk-graph/package.json b/packages/cdk-graph/package.json index 662038cb2..5c9dc4268 100644 --- a/packages/cdk-graph/package.json +++ b/packages/cdk-graph/package.json @@ -32,44 +32,44 @@ "@aws-cdk/cfnspec": "^2.72.1", "@aws/pdk-nag": "^0.x", "@aws/pipeline": "^0.x", - "@types/fs-extra": "^11.0.1", - "@types/jest": "^29.5.4", - "@types/lodash.clonedeep": "^4.5.7", - "@types/lodash.isempty": "^4.4.7", - "@types/lodash.memoize": "^4.1.7", - "@types/lodash.merge": "^4.6.7", - "@types/lodash.omit": "^4.5.7", - "@types/lodash.uniq": "^4.5.7", - "@types/lodash.uniqby": "^4.7.7", + "@types/fs-extra": "^11.0.3", + "@types/jest": "^29.5.7", + "@types/lodash.clonedeep": "^4.5.8", + "@types/lodash.isempty": "^4.4.8", + "@types/lodash.memoize": "^4.1.8", + "@types/lodash.merge": "^4.6.8", + "@types/lodash.omit": "^4.5.8", + "@types/lodash.uniq": "^4.5.8", + "@types/lodash.uniqby": "^4.7.8", "@types/node": "^16", - "@types/traverse": "^0.6.32", + "@types/traverse": "^0.6.34", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "ts-jest": "^29.1.1", "typescript": "^5.2.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.93.0", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { @@ -100,23 +100,7 @@ "shorthash2", "traverse" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "cdk", diff --git a/packages/cloudscape-react-ts-website/.projen/deps.json b/packages/cloudscape-react-ts-website/.projen/deps.json index 40b20f6f0..8b08f3a53 100644 --- a/packages/cloudscape-react-ts-website/.projen/deps.json +++ b/packages/cloudscape-react-ts-website/.projen/deps.json @@ -106,71 +106,6 @@ "name": "mustache", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "@aws/type-safe-api", "version": "^0.x", diff --git a/packages/cloudscape-react-ts-website/.projen/tasks.json b/packages/cloudscape-react-ts-website/.projen/tasks.json index 09b57df3d..47ab4836d 100644 --- a/packages/cloudscape-react-ts-website/.projen/tasks.json +++ b/packages/cloudscape-react-ts-website/.projen/tasks.json @@ -125,10 +125,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/cloudscape-react-ts-website/package.json b/packages/cloudscape-react-ts-website/package.json index 22b67ed20..68a591e42 100644 --- a/packages/cloudscape-react-ts-website/package.json +++ b/packages/cloudscape-react-ts-website/package.json @@ -30,26 +30,26 @@ }, "devDependencies": { "@aws/monorepo": "^0.x", - "@types/jest": "^29.5.4", - "@types/mustache": "^4.2.2", + "@types/jest": "^29.5.7", + "@types/mustache": "^4.2.4", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "constructs": "10.2.70", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "ts-jest": "^29.1.1", @@ -57,7 +57,7 @@ }, "peerDependencies": { "@aws/type-safe-api": "^0.x", - "constructs": "^10.2.70", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { @@ -67,23 +67,7 @@ "bundledDependencies": [ "mustache" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/identity/.projen/deps.json b/packages/identity/.projen/deps.json index fbf84149a..426e3193b 100644 --- a/packages/identity/.projen/deps.json +++ b/packages/identity/.projen/deps.json @@ -109,71 +109,6 @@ "name": "typescript", "type": "build" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "@aws-cdk/aws-cognito-identitypool-alpha", "type": "peer" diff --git a/packages/identity/.projen/tasks.json b/packages/identity/.projen/tasks.json index 02a36e425..69319debf 100644 --- a/packages/identity/.projen/tasks.json +++ b/packages/identity/.projen/tasks.json @@ -122,10 +122,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/identity/package.json b/packages/identity/package.json index cc1760d0b..170441ea5 100644 --- a/packages/identity/package.json +++ b/packages/identity/package.json @@ -29,60 +29,44 @@ "organization": false }, "devDependencies": { - "@aws-cdk/aws-cognito-identitypool-alpha": "^2.93.0-alpha.0", - "@types/jest": "^29.5.4", + "@aws-cdk/aws-cognito-identitypool-alpha": "^2.104.0-alpha.0", + "@types/jest": "^29.5.7", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "ts-jest": "^29.1.1", "typescript": "^5.2.2" }, "peerDependencies": { - "@aws-cdk/aws-cognito-identitypool-alpha": "^2.93.0-alpha.0", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "@aws-cdk/aws-cognito-identitypool-alpha": "^2.104.0-alpha.0", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { "@aws/pdk-nag": "^0.x" }, - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/infrastructure/.projen/deps.json b/packages/infrastructure/.projen/deps.json index 5ec5939ab..48c2cb690 100644 --- a/packages/infrastructure/.projen/deps.json +++ b/packages/infrastructure/.projen/deps.json @@ -101,71 +101,6 @@ "name": "mustache", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "@aws/cloudscape-react-ts-website", "version": "^0.x", diff --git a/packages/infrastructure/.projen/tasks.json b/packages/infrastructure/.projen/tasks.json index 6e873ca35..2949cb8f2 100644 --- a/packages/infrastructure/.projen/tasks.json +++ b/packages/infrastructure/.projen/tasks.json @@ -125,10 +125,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/infrastructure/package.json b/packages/infrastructure/package.json index 9d0c6dd0c..222b91570 100644 --- a/packages/infrastructure/package.json +++ b/packages/infrastructure/package.json @@ -29,26 +29,26 @@ "organization": false }, "devDependencies": { - "@types/jest": "^29.5.4", - "@types/mustache": "^4.2.2", + "@types/jest": "^29.5.7", + "@types/mustache": "^4.2.4", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "constructs": "10.2.70", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "ts-jest": "^29.1.1", @@ -58,7 +58,7 @@ "@aws/cloudscape-react-ts-website": "^0.x", "@aws/monorepo": "^0.x", "@aws/type-safe-api": "^0.x", - "constructs": "^10.2.70", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { @@ -70,23 +70,7 @@ "bundledDependencies": [ "mustache" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/monorepo/.projen/deps.json b/packages/monorepo/.projen/deps.json index ba9ab6e42..a2f212f31 100644 --- a/packages/monorepo/.projen/deps.json +++ b/packages/monorepo/.projen/deps.json @@ -121,71 +121,6 @@ "name": "semver", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "constructs", "type": "peer" diff --git a/packages/monorepo/.projen/tasks.json b/packages/monorepo/.projen/tasks.json index 288659a89..07af707c0 100644 --- a/packages/monorepo/.projen/tasks.json +++ b/packages/monorepo/.projen/tasks.json @@ -128,10 +128,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/monorepo/package.json b/packages/monorepo/package.json index 498f663e7..581f1f8aa 100644 --- a/packages/monorepo/package.json +++ b/packages/monorepo/package.json @@ -34,27 +34,27 @@ }, "devDependencies": { "@nx/devkit": "^16", - "@types/fs-extra": "^11.0.1", - "@types/jest": "^29.5.4", + "@types/fs-extra": "^11.0.3", + "@types/jest": "^29.5.7", "@types/node": "^16", - "@types/semver": "^7.5.1", + "@types/semver": "^7.5.4", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "constructs": "10.2.70", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "nx": "^16", "prettier": "^2.8.8", "projen": "^0.76", @@ -62,11 +62,11 @@ "typescript": "^5.2.2" }, "peerDependencies": { - "constructs": "^10.2.70", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { - "@pnpm/reviewing.dependencies-hierarchy": "^2.0.10", + "@pnpm/reviewing.dependencies-hierarchy": "^2.1.3", "fs-extra": "^11.1.1", "semver": "^7.5.4" }, @@ -75,23 +75,7 @@ "fs-extra", "semver" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/monorepo/src/projects/typescript/monorepo-ts.ts b/packages/monorepo/src/projects/typescript/monorepo-ts.ts index a62e52cf4..4578634b4 100644 --- a/packages/monorepo/src/projects/typescript/monorepo-ts.ts +++ b/packages/monorepo/src/projects/typescript/monorepo-ts.ts @@ -331,6 +331,7 @@ export class MonorepoTsProject "fix-mismatches" ) ); + upgradeDepsTask.exec(`rm ${this.package.lockFile}`); upgradeDepsTask.exec( NodePackageUtils.command.install(this.package.packageManager) ); diff --git a/packages/monorepo/test/__snapshots__/monorepo.test.ts.snap b/packages/monorepo/test/__snapshots__/monorepo.test.ts.snap index be9793f8d..62eca40fd 100644 --- a/packages/monorepo/test/__snapshots__/monorepo.test.ts.snap +++ b/packages/monorepo/test/__snapshots__/monorepo.test.ts.snap @@ -591,6 +591,9 @@ resolution-mode=highest { "exec": "pnpm exec syncpack fix-mismatches", }, + { + "exec": "rm pnpm-lock.yaml", + }, { "exec": "pnpm i", }, @@ -2631,6 +2634,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -4662,6 +4668,9 @@ tsconfig.tsbuildinfo { "exec": "yarn exec syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -6688,6 +6697,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -8543,6 +8555,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -10282,6 +10297,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -11313,6 +11331,9 @@ tsconfig.tsbuildinfo { "exec": "bun x syncpack fix-mismatches", }, + { + "exec": "rm bun.lockb", + }, { "exec": "bun install", }, @@ -13345,6 +13366,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -16670,6 +16694,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -17700,6 +17727,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -18733,6 +18763,9 @@ pattern1.txt { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -19774,6 +19807,9 @@ resolution-mode=highest { "exec": "pnpm exec syncpack fix-mismatches", }, + { + "exec": "rm pnpm-lock.yaml", + }, { "exec": "pnpm i", }, @@ -21807,6 +21843,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -22851,6 +22890,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, diff --git a/packages/pdk-nag/.projen/deps.json b/packages/pdk-nag/.projen/deps.json index 13bdd094f..9d24d55cd 100644 --- a/packages/pdk-nag/.projen/deps.json +++ b/packages/pdk-nag/.projen/deps.json @@ -117,71 +117,6 @@ "name": "typescript", "type": "build" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "aws-cdk-lib", "type": "peer" diff --git a/packages/pdk-nag/.projen/tasks.json b/packages/pdk-nag/.projen/tasks.json index 4b8ac5d47..aecd2c08f 100644 --- a/packages/pdk-nag/.projen/tasks.json +++ b/packages/pdk-nag/.projen/tasks.json @@ -125,10 +125,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/pdk-nag/package.json b/packages/pdk-nag/package.json index 8d7fbe72f..b18753cf5 100644 --- a/packages/pdk-nag/package.json +++ b/packages/pdk-nag/package.json @@ -30,30 +30,30 @@ }, "devDependencies": { "@aws-cdk/assert": "^2.68.0", - "@types/fs-extra": "^11.0.1", - "@types/jest": "^29.5.4", - "@types/mustache": "^4.2.2", + "@types/fs-extra": "^11.0.3", + "@types/jest": "^29.5.7", + "@types/mustache": "^4.2.4", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", "fs-extra": "^11.1.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "mustache": "^4.2.0", "prettier": "^2.8.8", "ts-jest": "^29.1.1", @@ -61,27 +61,11 @@ "typescript": "^5.2.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70" - }, - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0" }, + "pnpm": {}, "main": "lib/index.js", "license": "Apache-2.0", "version": "0.0.0", diff --git a/packages/pdk/.projen/deps.json b/packages/pdk/.projen/deps.json index 62d8060c9..e1782d178 100644 --- a/packages/pdk/.projen/deps.json +++ b/packages/pdk/.projen/deps.json @@ -402,71 +402,6 @@ "name": "word-wrap", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "@aws-cdk/aws-cognito-identitypool-alpha", "type": "peer" diff --git a/packages/pdk/.projen/tasks.json b/packages/pdk/.projen/tasks.json index d63975f87..9da16e404 100644 --- a/packages/pdk/.projen/tasks.json +++ b/packages/pdk/.projen/tasks.json @@ -119,10 +119,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/pdk/package.json b/packages/pdk/package.json index fa5256b1f..7f703d52b 100644 --- a/packages/pdk/package.json +++ b/packages/pdk/package.json @@ -41,56 +41,56 @@ "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", "@aws-cdk/assert": "^2.68.0", - "@aws-cdk/aws-cognito-identitypool-alpha": "^2.93.0-alpha.0", + "@aws-cdk/aws-cognito-identitypool-alpha": "^2.104.0-alpha.0", "@aws-cdk/cfnspec": "^2.72.1", "@aws-sdk/client-s3": "^3.441.0", "@aws-sdk/client-wafv2": "^3.441.0", "@faker-js/faker": "8.1.0", "@nx/devkit": "^16", - "@types/fs-extra": "^11.0.1", - "@types/he": "^1.2.0", - "@types/jest": "^29.5.4", - "@types/jest-image-snapshot": "^6.2.0", - "@types/lodash": "^4.14.197", - "@types/lodash.clonedeep": "^4.5.7", - "@types/lodash.isempty": "^4.4.7", - "@types/lodash.memoize": "^4.1.7", - "@types/lodash.merge": "^4.6.7", - "@types/lodash.omit": "^4.5.7", - "@types/lodash.startcase": "^4.4.7", - "@types/lodash.uniq": "^4.5.7", - "@types/lodash.uniqby": "^4.7.7", - "@types/lodash.words": "^4.2.7", - "@types/mustache": "^4.2.2", + "@types/fs-extra": "^11.0.3", + "@types/he": "^1.2.2", + "@types/jest": "^29.5.7", + "@types/jest-image-snapshot": "^6.2.2", + "@types/lodash": "^4.14.200", + "@types/lodash.clonedeep": "^4.5.8", + "@types/lodash.isempty": "^4.4.8", + "@types/lodash.memoize": "^4.1.8", + "@types/lodash.merge": "^4.6.8", + "@types/lodash.omit": "^4.5.8", + "@types/lodash.startcase": "^4.4.8", + "@types/lodash.uniq": "^4.5.8", + "@types/lodash.uniqby": "^4.7.8", + "@types/lodash.words": "^4.2.8", + "@types/mustache": "^4.2.4", "@types/node": "^16", "@types/node-fetch": "2", - "@types/semver": "^7.5.1", + "@types/semver": "^7.5.4", "@types/sharp": "^0.31.1", - "@types/to-px": "^1.1.2", - "@types/traverse": "^0.6.32", - "@types/unzipper": "^0.10.7", - "@types/xml-flow": "^1.0.2", + "@types/to-px": "^1.1.3", + "@types/traverse": "^0.6.34", + "@types/unzipper": "^0.10.8", + "@types/xml-flow": "^1.0.3", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "downlevel-dts": "^0.11.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", - "eslint-plugin-import": "^2.28.1", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", "generate-license-file": "^2.0.0", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-image-snapshot": "^6.2.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "license-checker": "^25.0.1", "node-fetch": "^2.6.7", "nx": "^16", @@ -107,15 +107,15 @@ "xml-flow": "^1.0.4" }, "peerDependencies": { - "@aws-cdk/aws-cognito-identitypool-alpha": "^2.93.0-alpha.0", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "@aws-cdk/aws-cognito-identitypool-alpha": "^2.104.0-alpha.0", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { - "@hpcc-js/wasm": "^2.13.1", - "@pnpm/reviewing.dependencies-hierarchy": "^2.0.10", + "@hpcc-js/wasm": "^2.14.1", + "@pnpm/reviewing.dependencies-hierarchy": "^2.1.3", "chalk": "^4.x", "execa": "5.1.1", "find-up": "^4.x", @@ -137,7 +137,7 @@ "openapi-types": "^12.1.3", "read-pkg-up": "^7.0.1", "semver": "^7.5.4", - "sharp": "^0.32.5", + "sharp": "^0.32.6", "shorthash2": "^1.0.3", "svgson": "^5.3.1", "to-px": "^1.1.0", @@ -179,23 +179,7 @@ "ts-node", "word-wrap" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/pipeline/.projen/deps.json b/packages/pipeline/.projen/deps.json index a72751dd6..330a2929e 100644 --- a/packages/pipeline/.projen/deps.json +++ b/packages/pipeline/.projen/deps.json @@ -105,71 +105,6 @@ "name": "typescript", "type": "build" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "aws-cdk-lib", "type": "peer" diff --git a/packages/pipeline/.projen/tasks.json b/packages/pipeline/.projen/tasks.json index 3072b19a7..042ff9fa6 100644 --- a/packages/pipeline/.projen/tasks.json +++ b/packages/pipeline/.projen/tasks.json @@ -122,10 +122,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/pipeline/package.json b/packages/pipeline/package.json index 91b9fff41..bead4fb34 100644 --- a/packages/pipeline/package.json +++ b/packages/pipeline/package.json @@ -29,58 +29,42 @@ "organization": false }, "devDependencies": { - "@types/jest": "^29.5.4", + "@types/jest": "^29.5.7", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "ts-jest": "^29.1.1", "typescript": "^5.2.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { "@aws/pdk-nag": "^0.x" }, - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/pipeline/test/__snapshots__/pdk-pipeline.test.ts.snap b/packages/pipeline/test/__snapshots__/pdk-pipeline.test.ts.snap index 3d7b6fd69..f73d86577 100644 --- a/packages/pipeline/test/__snapshots__/pdk-pipeline.test.ts.snap +++ b/packages/pipeline/test/__snapshots__/pdk-pipeline.test.ts.snap @@ -224,6 +224,7 @@ exports[`PDK Pipeline Unit Tests CrossAccount - using AwsPrototyping NagPack 1`] }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -600,6 +601,7 @@ exports[`PDK Pipeline Unit Tests CrossAccount - using AwsPrototyping NagPack 1`] }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -3473,7 +3475,7 @@ exports[`PDK Pipeline Unit Tests CrossAccount - using AwsPrototyping NagPack 1`] "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -3777,6 +3779,7 @@ exports[`PDK Pipeline Unit Tests CrossAccount 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -4153,6 +4156,7 @@ exports[`PDK Pipeline Unit Tests CrossAccount 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -7026,7 +7030,7 @@ exports[`PDK Pipeline Unit Tests CrossAccount 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -7152,7 +7156,7 @@ exports[`PDK Pipeline Unit Tests Defaults - using AwsPrototyping NagPack 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -7388,6 +7392,7 @@ exports[`PDK Pipeline Unit Tests Defaults - using AwsPrototyping NagPack 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -7659,6 +7664,7 @@ exports[`PDK Pipeline Unit Tests Defaults - using AwsPrototyping NagPack 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -10459,7 +10465,7 @@ exports[`PDK Pipeline Unit Tests Defaults 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -10695,6 +10701,7 @@ exports[`PDK Pipeline Unit Tests Defaults 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -10966,6 +10973,7 @@ exports[`PDK Pipeline Unit Tests Defaults 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -13834,7 +13842,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - feature/new-feature_branch - "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -14078,6 +14086,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - feature/new-feature_branch - }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -14357,6 +14366,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - feature/new-feature_branch - }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -16552,7 +16562,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - feature/new-feature_branch 1 "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -16796,6 +16806,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - feature/new-feature_branch 1 }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -17075,6 +17086,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - feature/new-feature_branch 1 }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -19197,7 +19209,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - mainline - using AwsPrototyp "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -19433,6 +19445,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - mainline - using AwsPrototyp }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -19704,6 +19717,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - mainline - using AwsPrototyp }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -23094,7 +23108,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - mainline 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -23330,6 +23344,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - mainline 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -23601,6 +23616,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - mainline 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -26991,7 +27007,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - using AwsPrototyping NagPack "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -27227,6 +27243,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - using AwsPrototyping NagPack }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -27498,6 +27515,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches - using AwsPrototyping NagPack }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -30888,7 +30906,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -31124,6 +31142,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -31395,6 +31414,7 @@ exports[`PDK Pipeline Unit Tests Feature Branches 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", diff --git a/packages/static-website/.projen/deps.json b/packages/static-website/.projen/deps.json index 7a86e4202..ca0ddfee1 100644 --- a/packages/static-website/.projen/deps.json +++ b/packages/static-website/.projen/deps.json @@ -109,71 +109,6 @@ "name": "typescript", "type": "build" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "aws-cdk-lib", "type": "peer" diff --git a/packages/static-website/.projen/tasks.json b/packages/static-website/.projen/tasks.json index 6857e0e0d..f11336711 100644 --- a/packages/static-website/.projen/tasks.json +++ b/packages/static-website/.projen/tasks.json @@ -122,10 +122,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/static-website/package.json b/packages/static-website/package.json index 5f113626c..f73e33d1d 100644 --- a/packages/static-website/package.json +++ b/packages/static-website/package.json @@ -30,58 +30,42 @@ }, "devDependencies": { "@aws-sdk/client-wafv2": "^3.441.0", - "@types/jest": "^29.5.4", + "@types/jest": "^29.5.7", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "ts-jest": "^29.1.1", "typescript": "^5.2.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { "@aws/pdk-nag": "^0.x" }, - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "aws", "jsii", diff --git a/packages/static-website/test/__snapshots__/static-website.test.ts.snap b/packages/static-website/test/__snapshots__/static-website.test.ts.snap index 3f880eb8e..29efe346e 100644 --- a/packages/static-website/test/__snapshots__/static-website.test.ts.snap +++ b/packages/static-website/test/__snapshots__/static-website.test.ts.snap @@ -189,7 +189,7 @@ exports[`Static Website Unit Tests Defaults - Nested 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -527,6 +527,7 @@ exports[`Static Website Unit Tests Defaults - Nested 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -1070,6 +1071,7 @@ exports[`Static Website Unit Tests Defaults - Nested 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -1360,7 +1362,7 @@ exports[`Static Website Unit Tests Defaults - Nested 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/Nested-Stack/Defaults/WebsiteAcl/CloudfrontAclProvider)", "Environment": { @@ -2306,6 +2308,7 @@ exports[`Static Website Unit Tests Defaults - Nested 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -2760,7 +2763,7 @@ exports[`Static Website Unit Tests Defaults - using AwsPrototyping NagPack 1`] = "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -3098,6 +3101,7 @@ exports[`Static Website Unit Tests Defaults - using AwsPrototyping NagPack 1`] = }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -3641,6 +3645,7 @@ exports[`Static Website Unit Tests Defaults - using AwsPrototyping NagPack 1`] = }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -3921,7 +3926,7 @@ exports[`Static Website Unit Tests Defaults - using AwsPrototyping NagPack 1`] = "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/Defaults/WebsiteAcl/CloudfrontAclProvider)", "Environment": { @@ -4855,6 +4860,7 @@ exports[`Static Website Unit Tests Defaults - using AwsPrototyping NagPack 1`] = }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -5336,7 +5342,7 @@ exports[`Static Website Unit Tests Defaults 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -5674,6 +5680,7 @@ exports[`Static Website Unit Tests Defaults 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -6217,6 +6224,7 @@ exports[`Static Website Unit Tests Defaults 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -6497,7 +6505,7 @@ exports[`Static Website Unit Tests Defaults 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/Defaults/WebsiteAcl/CloudfrontAclProvider)", "Environment": { @@ -7431,6 +7439,7 @@ exports[`Static Website Unit Tests Defaults 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -7912,7 +7921,7 @@ exports[`Static Website Unit Tests Defaults and Geoblocking - using AwsPrototypi "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -8250,6 +8259,7 @@ exports[`Static Website Unit Tests Defaults and Geoblocking - using AwsPrototypi }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -8802,6 +8812,7 @@ exports[`Static Website Unit Tests Defaults and Geoblocking - using AwsPrototypi }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -9082,7 +9093,7 @@ exports[`Static Website Unit Tests Defaults and Geoblocking - using AwsPrototypi "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/Defaults/WebsiteAcl/CloudfrontAclProvider)", "Environment": { @@ -10016,6 +10027,7 @@ exports[`Static Website Unit Tests Defaults and Geoblocking - using AwsPrototypi }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -10537,7 +10549,7 @@ exports[`Static Website Unit Tests Defaults with suppression rule - using AwsPro "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -10897,6 +10909,7 @@ exports[`Static Website Unit Tests Defaults with suppression rule - using AwsPro }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -11456,6 +11469,7 @@ exports[`Static Website Unit Tests Defaults with suppression rule - using AwsPro }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -11748,7 +11762,7 @@ exports[`Static Website Unit Tests Defaults with suppression rule - using AwsPro "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/Defaults/WebsiteAcl/CloudfrontAclProvider)", "Environment": { @@ -12710,6 +12724,7 @@ exports[`Static Website Unit Tests Defaults with suppression rule - using AwsPro }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -13199,7 +13214,7 @@ exports[`Static Website Unit Tests Disable Web ACL 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -13537,6 +13552,7 @@ exports[`Static Website Unit Tests Disable Web ACL 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -14074,6 +14090,7 @@ exports[`Static Website Unit Tests Disable Web ACL 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -14490,6 +14507,7 @@ exports[`Static Website Unit Tests Disable Web ACL 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -15084,6 +15102,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -15627,6 +15646,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -15907,7 +15927,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/CustomBucketDeploymentProps/WebsiteAcl/CloudfrontAclProvider)", "Environment": { @@ -16841,6 +16861,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` }, { "Action": [ + "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", @@ -17294,7 +17315,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a657308e723bb9460b800cb3b47dadb74e28243edfe246bf7755c45ec312eb97.zip", + "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", }, "Description": { "Fn::Join": [ @@ -17353,7 +17374,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "5cc92ed0cea39e2b8de2dbc527dfb5980a3af9564bd1084d840b9787c7d0467e.zip", + "S3Key": "5bc602ecde93c947efe5899ae355f999986a1acbe610b1c0b9c468d738857555.zip", }, "Handler": "index.handler", "Role": { @@ -17363,6 +17384,7 @@ exports[`Static Website Unit Tests With custom bucket deployment props 1`] = ` ], }, "Runtime": "nodejs18.x", + "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, diff --git a/packages/type-safe-api/.projen/deps.json b/packages/type-safe-api/.projen/deps.json index 87c61730e..c59ecedd3 100644 --- a/packages/type-safe-api/.projen/deps.json +++ b/packages/type-safe-api/.projen/deps.json @@ -162,71 +162,6 @@ "name": "read-pkg-up", "type": "bundled" }, - { - "name": "@types/prettier", - "version": "2.6.0", - "type": "override" - }, - { - "name": "@types/yargs", - "version": "17.0.10", - "type": "override" - }, - { - "name": "ansi-regex", - "version": "^5.0.1", - "type": "override" - }, - { - "name": "argparse", - "version": "^1.0.10", - "type": "override" - }, - { - "name": "async", - "version": "^2.6.4", - "type": "override" - }, - { - "name": "debug", - "version": "^2.6.9", - "type": "override" - }, - { - "name": "deep-extend", - "version": "^0.5.1", - "type": "override" - }, - { - "name": "ejs", - "version": "^3.1.7", - "type": "override" - }, - { - "name": "got", - "version": "^11.8.5", - "type": "override" - }, - { - "name": "minimist", - "version": "^1.2.6", - "type": "override" - }, - { - "name": "nth-check", - "version": "^2.0.1", - "type": "override" - }, - { - "name": "tar", - "version": "^4.4.18", - "type": "override" - }, - { - "name": "underscore", - "version": "^1.12.1", - "type": "override" - }, { "name": "aws-cdk-lib", "type": "peer" diff --git a/packages/type-safe-api/.projen/tasks.json b/packages/type-safe-api/.projen/tasks.json index d8f2d651e..12a53b4e9 100644 --- a/packages/type-safe-api/.projen/tasks.json +++ b/packages/type-safe-api/.projen/tasks.json @@ -125,10 +125,7 @@ "description": "Create java language bindings", "steps": [ { - "exec": "[ -d ~/.m2/repository ] && [ ! -d \"../../node_modules/.cache/.m2/repository\" ] && mkdir -p ../../node_modules/.cache/.m2 && ln -s ~/.m2/repository ../../node_modules/.cache/.m2/repository || true" - }, - { - "exec": "jsii-pacmak -v --target java --maven-local-repository=../../node_modules/.cache/.m2/repository --pack-command='pnpm pack'" + "exec": "jsii-pacmak -v --target java --pack-command='pnpm pack'" } ] }, diff --git a/packages/type-safe-api/package.json b/packages/type-safe-api/package.json index 29c31a6fb..f04feb033 100644 --- a/packages/type-safe-api/package.json +++ b/packages/type-safe-api/package.json @@ -41,29 +41,29 @@ "@aws-sdk/client-s3": "^3.441.0", "@aws/monorepo": "^0.x", "@faker-js/faker": "8.1.0", - "@types/fs-extra": "^11.0.1", - "@types/jest": "^29.5.4", - "@types/lodash": "^4.14.197", + "@types/fs-extra": "^11.0.3", + "@types/jest": "^29.5.7", + "@types/lodash": "^4.14.200", "@types/node": "^16", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "eslint": "^8", "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-junit": "^15", - "jsii": "^5.1.12", - "jsii-diff": "^1.88.0", + "jsii": "^5.2.24", + "jsii-diff": "^1.91.0", "jsii-docgen": "^8.0.56", - "jsii-pacmak": "^1.88.0", - "jsii-rosetta": "^1.88.0", + "jsii-pacmak": "^1.91.0", + "jsii-rosetta": "^1.91.0", "prettier": "^2.8.8", "projen": "^0.76", "reregexp": "1.6.1", @@ -72,9 +72,9 @@ "typescript": "^5.2.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.93.0", - "cdk-nag": "^2.27.115", - "constructs": "^10.2.70", + "aws-cdk-lib": "^2.104.0", + "cdk-nag": "^2.27.184", + "constructs": "^10.3.0", "projen": "^0.76" }, "dependencies": { @@ -93,23 +93,7 @@ "openapi-types", "read-pkg-up" ], - "pnpm": { - "overrides": { - "@types/prettier": "2.6.0", - "@types/yargs": "17.0.10", - "ansi-regex": "^5.0.1", - "argparse": "^1.0.10", - "async": "^2.6.4", - "debug": "^2.6.9", - "deep-extend": "^0.5.1", - "ejs": "^3.1.7", - "got": "^11.8.5", - "minimist": "^1.2.6", - "nth-check": "^2.0.1", - "tar": "^4.4.18", - "underscore": "^1.12.1" - } - }, + "pnpm": {}, "keywords": [ "api", "aws", diff --git a/packages/type-safe-api/test/construct/__snapshots__/type-safe-rest-api.test.ts.snap b/packages/type-safe-api/test/construct/__snapshots__/type-safe-rest-api.test.ts.snap index fa494fa02..9332f1891 100644 --- a/packages/type-safe-api/test/construct/__snapshots__/type-safe-rest-api.test.ts.snap +++ b/packages/type-safe-api/test/construct/__snapshots__/type-safe-rest-api.test.ts.snap @@ -977,7 +977,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Create 2 APIs on same stack 1`] "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest1/PrepareSpecProvider)", "Environment": { @@ -2101,7 +2101,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Create 2 APIs on same stack 1`] "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest2/PrepareSpecProvider)", "Environment": { @@ -3439,7 +3439,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Local Mode 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -4685,7 +4685,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Permits Matching No Authorizers "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -6271,7 +6271,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Should add header parameters to "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -8226,7 +8226,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Should consolidate permissions "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -9520,7 +9520,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Should enable compression 1`] = "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -10763,7 +10763,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Synth 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -13126,7 +13126,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Cognito Auth 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -14584,7 +14584,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Custom Auth 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -15972,7 +15972,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Custom Managed Rules 1`] = "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -17249,7 +17249,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With IAM Auth and CORS 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -19088,7 +19088,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Mixed Auth 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -20675,7 +20675,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Mock Integration 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -21882,7 +21882,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Mock Integration and CORS "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -23218,7 +23218,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Path Parameters 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -24589,7 +24589,7 @@ exports[`Type Safe Rest Api Construct Unit Tests With Waf IP Set 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { @@ -25699,7 +25699,7 @@ exports[`Type Safe Rest Api Construct Unit Tests Without Waf 1`] = ` "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f2d30cfc360482320a52a4fcde8a70f3569df79ab30be24650fda58eb60052cf.zip", + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/ApiTest/PrepareSpecProvider)", "Environment": { diff --git a/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap b/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap index 946afa0af..a62fc7fef 100644 --- a/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap +++ b/packages/type-safe-api/test/project/__snapshots__/type-safe-api-project.test.ts.snap @@ -3541,6 +3541,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -10772,6 +10775,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -18207,6 +18213,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -33037,6 +33046,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -39856,6 +39868,9 @@ tsconfig.tsbuildinfo { "exec": "npx syncpack fix-mismatches", }, + { + "exec": "rm package-lock.json", + }, { "exec": "npm install", }, @@ -45851,6 +45866,9 @@ resolution-mode=highest { "exec": "pnpm exec syncpack fix-mismatches", }, + { + "exec": "rm pnpm-lock.yaml", + }, { "exec": "pnpm i", }, @@ -52441,6 +52459,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -60062,6 +60083,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -67082,6 +67106,9 @@ tsconfig.tsbuildinfo { "exec": "yarn exec syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, @@ -73060,6 +73087,9 @@ tsconfig.tsbuildinfo { "exec": "yarn syncpack fix-mismatches", }, + { + "exec": "rm yarn.lock", + }, { "exec": "yarn install", }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a954a78c..9342a5eda 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,20 +6,7 @@ settings: overrides: '@types/babel__traverse': 7.18.2 - '@types/prettier': 2.6.0 - '@types/yargs': 17.0.10 '@zkochan/js-yaml': npm:js-yaml@4.1.0 - ansi-regex: ^5.0.1 - argparse: ^1.0.10 - async: ^2.6.4 - debug: ^2.6.9 - deep-extend: ^0.5.1 - ejs: ^3.1.7 - got: ^11.8.5 - minimist: ^1.2.6 - nth-check: ^2.0.1 - tar: ^4.4.18 - underscore: ^1.12.1 wrap-ansi: ^7.0.0 importers: @@ -28,25 +15,25 @@ importers: dependencies: '@aws-cdk/aws-cognito-identitypool-alpha': specifier: latest - version: 2.103.1-alpha.0(aws-cdk-lib@2.93.0)(constructs@10.2.70) + version: 2.103.1-alpha.0(aws-cdk-lib@2.104.0)(constructs@10.3.0) '@mrgrain/jsii-struct-builder': - specifier: ^0.5.7 - version: 0.5.7(projen@0.76.15) + specifier: ^0.5.20 + version: 0.5.20(projen@0.76.15) '@pnpm/types': specifier: ^9.0.0 - version: 9.2.0 + version: 9.4.0 aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) fast-xml-parser: - specifier: ^4.2.7 - version: 4.2.7 + specifier: ^4.3.2 + version: 4.3.2 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) devDependencies: '@aws/monorepo': specifier: 0.0.0 @@ -58,14 +45,14 @@ importers: specifier: 0.0.0 version: link:packages/pipeline '@commitlint/cli': - specifier: ^17.7.1 - version: 17.7.1 + specifier: ^17.8.1 + version: 17.8.1 '@commitlint/config-conventional': - specifier: ^17.7.0 - version: 17.7.0 + specifier: ^17.8.1 + version: 17.8.1 '@jsii/spec': - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 '@nrwl/devkit': specifier: ^16 version: 16.7.4(nx@16.0.0) @@ -83,7 +70,7 @@ importers: version: 4.3.0 constructs: specifier: ^10.0.0 - version: 10.2.70 + version: 10.3.0 cz-conventional-changelog: specifier: ^3.3.0 version: 3.3.0 @@ -97,14 +84,14 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) @@ -118,14 +105,14 @@ importers: specifier: ^6.6.2 version: 6.6.2 npm-check-updates: - specifier: ^16.13.2 - version: 16.13.2 + specifier: ^16.14.6 + version: 16.14.6 nx: specifier: 16.0.0 version: 16.0.0 nx-cloud: - specifier: ^16.3.0 - version: 16.3.0 + specifier: ^16.5.2 + version: 16.5.2 prettier: specifier: ^2.8.8 version: 2.8.8 @@ -156,7 +143,7 @@ importers: version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) constructs: specifier: ^10.0.0 - version: 10.2.70 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -164,17 +151,17 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -188,11 +175,11 @@ importers: specifier: 9.0.13 version: 9.0.13 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/lodash': - specifier: ^4.14.197 - version: 4.14.197 + specifier: ^4.14.200 + version: 4.14.200 '@types/node': specifier: ^16 version: 16.18.25 @@ -203,11 +190,11 @@ importers: specifier: ^0.31.1 version: 0.31.1 '@types/unzipper': - specifier: ^0.10.7 - version: 0.10.7 + specifier: ^0.10.8 + version: 0.10.8 '@types/xml-flow': - specifier: ^1.0.2 - version: 1.0.2 + specifier: ^1.0.3 + version: 1.0.3 '@typescript-eslint/eslint-plugin': specifier: ^6 version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.39.0)(typescript@5.2.2) @@ -215,8 +202,8 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) constructs: - specifier: 10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -227,14 +214,14 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) @@ -245,26 +232,26 @@ importers: specifier: ^11.1.1 version: 11.1.1 jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -276,16 +263,16 @@ importers: version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) sharp: - specifier: ^0.32.5 - version: 0.32.5 + specifier: ^0.32.6 + version: 0.32.6 tree-cli: specifier: ^0.6.7 version: 0.6.7 ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -345,38 +332,38 @@ importers: specifier: ^0.x version: link:../pipeline '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.3 + version: 11.0.3 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/lodash.clonedeep': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.isempty': - specifier: ^4.4.7 - version: 4.4.7 + specifier: ^4.4.8 + version: 4.4.8 '@types/lodash.memoize': - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 '@types/lodash.merge': - specifier: ^4.6.7 - version: 4.6.7 + specifier: ^4.6.8 + version: 4.6.8 '@types/lodash.omit': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.uniq': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.uniqby': - specifier: ^4.7.7 - version: 4.7.7 + specifier: ^4.7.8 + version: 4.7.8 '@types/node': specifier: ^16 version: 16.18.25 '@types/traverse': - specifier: ^0.6.32 - version: 0.6.32 + specifier: ^0.6.34 + version: 0.6.34 '@typescript-eslint/eslint-plugin': specifier: ^6 version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.39.0)(typescript@5.2.2) @@ -384,14 +371,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -402,47 +389,47 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -450,8 +437,8 @@ importers: packages/cdk-graph-plugin-diagram: dependencies: '@hpcc-js/wasm': - specifier: ^2.13.1 - version: 2.13.1 + specifier: ^2.14.1 + version: 2.14.1 execa: specifier: 5.1.1 version: 5.1.1 @@ -474,8 +461,8 @@ importers: specifier: ^4.2.0 version: 4.2.0 sharp: - specifier: ^0.32.5 - version: 0.32.5 + specifier: ^0.32.6 + version: 0.32.6 svgson: specifier: ^5.3.1 version: 5.3.1 @@ -502,29 +489,29 @@ importers: specifier: 0.0.0 version: link:../cdk-graph '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.3 + version: 11.0.3 '@types/he': - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.2 + version: 1.2.2 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/jest-image-snapshot': - specifier: ^6.2.0 - version: 6.2.0 + specifier: ^6.2.2 + version: 6.2.2 '@types/lodash.clonedeep': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.startcase': - specifier: ^4.4.7 - version: 4.4.7 + specifier: ^4.4.8 + version: 4.4.8 '@types/lodash.uniqby': - specifier: ^4.7.7 - version: 4.7.7 + specifier: ^4.7.8 + version: 4.7.8 '@types/lodash.words': - specifier: ^4.2.7 - version: 4.2.7 + specifier: ^4.2.8 + version: 4.2.8 '@types/node': specifier: ^16 version: 16.18.25 @@ -532,11 +519,11 @@ importers: specifier: ^0.31.1 version: 0.31.1 '@types/to-px': - specifier: ^1.1.2 - version: 1.1.2 + specifier: ^1.1.3 + version: 1.1.3 '@types/traverse': - specifier: ^0.6.32 - version: 0.6.32 + specifier: ^0.6.34 + version: 0.6.34 '@typescript-eslint/eslint-plugin': specifier: ^6 version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.39.0)(typescript@5.2.2) @@ -544,11 +531,11 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 downlevel-dts: specifier: ^0.11.0 version: 0.11.0 @@ -562,41 +549,41 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-image-snapshot: specifier: ^6.2.0 - version: 6.2.0(jest@29.6.4) + version: 6.2.0(jest@29.7.0) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -611,10 +598,10 @@ importers: version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -632,11 +619,11 @@ importers: specifier: ^0.x version: link:../monorepo '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/mustache': - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 '@types/node': specifier: ^16 version: 16.18.25 @@ -647,8 +634,8 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) constructs: - specifier: 10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -659,47 +646,47 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -711,11 +698,11 @@ importers: version: link:../pdk-nag devDependencies: '@aws-cdk/aws-cognito-identitypool-alpha': - specifier: ^2.93.0-alpha.0 - version: 2.93.0-alpha.0(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.104.0-alpha.0 + version: 2.104.0-alpha.0(aws-cdk-lib@2.104.0)(constructs@10.3.0) '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/node': specifier: ^16 version: 16.18.25 @@ -726,14 +713,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -744,47 +731,47 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -805,11 +792,11 @@ importers: version: 4.2.0 devDependencies: '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/mustache': - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 '@types/node': specifier: ^16 version: 16.18.25 @@ -820,8 +807,8 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) constructs: - specifier: 10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -832,47 +819,47 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -880,8 +867,8 @@ importers: packages/monorepo: dependencies: '@pnpm/reviewing.dependencies-hierarchy': - specifier: ^2.0.10 - version: 2.0.10(@pnpm/logger@5.0.0) + specifier: ^2.1.3 + version: 2.1.3(@pnpm/logger@5.0.0) fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -893,17 +880,17 @@ importers: specifier: ^16 version: 16.7.4(nx@16.0.0) '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.3 + version: 11.0.3 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/node': specifier: ^16 version: 16.18.25 '@types/semver': - specifier: ^7.5.1 - version: 7.5.1 + specifier: ^7.5.4 + version: 7.5.4 '@typescript-eslint/eslint-plugin': specifier: ^6 version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.39.0)(typescript@5.2.2) @@ -911,8 +898,8 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) constructs: - specifier: 10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -923,38 +910,38 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 nx: specifier: ^16 version: 16.0.0 @@ -963,10 +950,10 @@ importers: version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -974,11 +961,11 @@ importers: packages/pdk: dependencies: '@hpcc-js/wasm': - specifier: ^2.13.1 - version: 2.13.1 + specifier: ^2.14.1 + version: 2.14.1 '@pnpm/reviewing.dependencies-hierarchy': - specifier: ^2.0.10 - version: 2.0.10(@pnpm/logger@5.0.0) + specifier: ^2.1.3 + version: 2.1.3(@pnpm/logger@5.0.0) chalk: specifier: ^4.x version: 4.1.2 @@ -1043,8 +1030,8 @@ importers: specifier: ^7.5.4 version: 7.5.4 sharp: - specifier: ^0.32.5 - version: 0.32.5 + specifier: ^0.32.6 + version: 0.32.6 shorthash2: specifier: ^1.0.3 version: 1.0.3 @@ -1072,10 +1059,10 @@ importers: version: 10.1.0(openapi-types@12.1.3) '@aws-cdk/assert': specifier: ^2.68.0 - version: 2.68.0(aws-cdk-lib@2.93.0)(constructs@10.2.70)(jest@29.6.4) + version: 2.68.0(aws-cdk-lib@2.104.0)(constructs@10.3.0)(jest@29.7.0) '@aws-cdk/aws-cognito-identitypool-alpha': - specifier: ^2.93.0-alpha.0 - version: 2.93.0-alpha.0(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.104.0-alpha.0 + version: 2.104.0-alpha.0(aws-cdk-lib@2.104.0)(constructs@10.3.0) '@aws-cdk/cfnspec': specifier: ^2.72.1 version: 2.72.1 @@ -1092,50 +1079,50 @@ importers: specifier: ^16 version: 16.7.4(nx@16.0.0) '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.3 + version: 11.0.3 '@types/he': - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.2 + version: 1.2.2 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/jest-image-snapshot': - specifier: ^6.2.0 - version: 6.2.0 + specifier: ^6.2.2 + version: 6.2.2 '@types/lodash': - specifier: ^4.14.197 - version: 4.14.197 + specifier: ^4.14.200 + version: 4.14.200 '@types/lodash.clonedeep': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.isempty': - specifier: ^4.4.7 - version: 4.4.7 + specifier: ^4.4.8 + version: 4.4.8 '@types/lodash.memoize': - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 '@types/lodash.merge': - specifier: ^4.6.7 - version: 4.6.7 + specifier: ^4.6.8 + version: 4.6.8 '@types/lodash.omit': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.startcase': - specifier: ^4.4.7 - version: 4.4.7 + specifier: ^4.4.8 + version: 4.4.8 '@types/lodash.uniq': - specifier: ^4.5.7 - version: 4.5.7 + specifier: ^4.5.8 + version: 4.5.8 '@types/lodash.uniqby': - specifier: ^4.7.7 - version: 4.7.7 + specifier: ^4.7.8 + version: 4.7.8 '@types/lodash.words': - specifier: ^4.2.7 - version: 4.2.7 + specifier: ^4.2.8 + version: 4.2.8 '@types/mustache': - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 '@types/node': specifier: ^16 version: 16.18.25 @@ -1143,23 +1130,23 @@ importers: specifier: '2' version: 2.6.3 '@types/semver': - specifier: ^7.5.1 - version: 7.5.1 + specifier: ^7.5.4 + version: 7.5.4 '@types/sharp': specifier: ^0.31.1 version: 0.31.1 '@types/to-px': - specifier: ^1.1.2 - version: 1.1.2 + specifier: ^1.1.3 + version: 1.1.3 '@types/traverse': - specifier: ^0.6.32 - version: 0.6.32 + specifier: ^0.6.34 + version: 0.6.34 '@types/unzipper': - specifier: ^0.10.7 - version: 0.10.7 + specifier: ^0.10.8 + version: 0.10.8 '@types/xml-flow': - specifier: ^1.0.2 - version: 1.0.2 + specifier: ^1.0.3 + version: 1.0.3 '@typescript-eslint/eslint-plugin': specifier: ^6 version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.39.0)(typescript@5.2.2) @@ -1167,14 +1154,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 downlevel-dts: specifier: ^0.11.0 version: 0.11.0 @@ -1188,11 +1175,11 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) @@ -1200,29 +1187,29 @@ importers: specifier: ^2.0.0 version: 2.0.0 jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-image-snapshot: specifier: ^6.2.0 - version: 6.2.0(jest@29.6.4) + version: 6.2.0(jest@29.7.0) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 license-checker: specifier: ^25.0.1 version: 25.0.1 @@ -1243,7 +1230,7 @@ importers: version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) reregexp: specifier: 1.6.1 version: 1.6.1 @@ -1252,10 +1239,10 @@ importers: version: 0.6.7 ts-command-line-args: specifier: 2.4.2 - version: 2.4.2(jest@29.6.4)(typescript@5.2.2) + version: 2.4.2(jest@29.7.0)(typescript@5.2.2) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -1270,16 +1257,16 @@ importers: devDependencies: '@aws-cdk/assert': specifier: ^2.68.0 - version: 2.68.0(aws-cdk-lib@2.93.0)(constructs@10.2.70)(jest@29.6.4) + version: 2.68.0(aws-cdk-lib@2.104.0)(constructs@10.3.0)(jest@29.7.0) '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.3 + version: 11.0.3 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/mustache': - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 '@types/node': specifier: ^16 version: 16.18.25 @@ -1290,14 +1277,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -1308,14 +1295,14 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) @@ -1323,26 +1310,26 @@ importers: specifier: ^11.1.1 version: 11.1.1 jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 mustache: specifier: ^4.2.0 version: 4.2.0 @@ -1351,7 +1338,7 @@ importers: version: 2.8.8 ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 version: 10.9.1(@types/node@16.18.25)(typescript@5.2.2) @@ -1366,8 +1353,8 @@ importers: version: link:../pdk-nag devDependencies: '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/node': specifier: ^16 version: 16.18.25 @@ -1378,14 +1365,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -1396,47 +1383,47 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -1451,8 +1438,8 @@ importers: specifier: ^3.441.0 version: 3.441.0 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/node': specifier: ^16 version: 16.18.25 @@ -1463,14 +1450,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -1481,47 +1468,47 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -1560,14 +1547,14 @@ importers: specifier: 8.1.0 version: 8.1.0 '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.3 + version: 11.0.3 '@types/jest': - specifier: ^29.5.4 - version: 29.5.4 + specifier: ^29.5.7 + version: 29.5.7 '@types/lodash': - specifier: ^4.14.197 - version: 4.14.197 + specifier: ^4.14.200 + version: 4.14.200 '@types/node': specifier: ^16 version: 16.18.25 @@ -1578,14 +1565,14 @@ importers: specifier: ^6 version: 6.5.0(eslint@8.39.0)(typescript@5.2.2) aws-cdk-lib: - specifier: ^2.93.0 - version: 2.93.0(constructs@10.2.70) + specifier: ^2.104.0 + version: 2.104.0(constructs@10.3.0) cdk-nag: - specifier: ^2.27.115 - version: 2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70) + specifier: ^2.27.184 + version: 2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: specifier: ^8 version: 8.39.0 @@ -1596,53 +1583,53 @@ importers: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: - specifier: ^3.6.0 - version: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) eslint-plugin-header: specifier: ^3.1.1 version: 3.1.1(eslint@8.39.0) eslint-plugin-import: - specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.39.0)(prettier@2.8.8) jest: - specifier: ^29.6.4 - version: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-junit: specifier: ^15 version: 15.0.0 jsii: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.24 + version: 5.2.24 jsii-diff: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-docgen: specifier: ^8.0.56 version: 8.0.56 jsii-pacmak: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 jsii-rosetta: - specifier: ^1.88.0 - version: 1.88.0 + specifier: ^1.91.0 + version: 1.91.0 prettier: specifier: ^2.8.8 version: 2.8.8 projen: specifier: ^0.76 - version: 0.76.15(constructs@10.2.70) + version: 0.76.15(constructs@10.3.0) reregexp: specifier: 1.6.1 version: 1.6.1 ts-command-line-args: specifier: 2.4.2 - version: 2.4.2(jest@29.6.4)(typescript@5.2.2) + version: 2.4.2(jest@29.7.0)(typescript@5.2.2) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -1689,7 +1676,7 @@ packages: openapi-types: 12.1.3 dev: true - /@aws-cdk/assert@2.68.0(aws-cdk-lib@2.93.0)(constructs@10.2.70)(jest@29.6.4): + /@aws-cdk/assert@2.68.0(aws-cdk-lib@2.104.0)(constructs@10.3.0)(jest@29.7.0): resolution: {integrity: sha512-bEztvoYdVp17I/ClYRGZa4wlEP/qNNq4Q+Z7EKwRL0cLDmvq4EI1m1N8LhUPAH7B6YXp5d1164gC6Nr0lV8bbA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1698,9 +1685,9 @@ packages: jest: '>=26.6.3' dependencies: '@aws-cdk/cloudformation-diff': 2.68.0 - aws-cdk-lib: 2.93.0(constructs@10.2.70) - constructs: 10.2.70 - jest: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + aws-cdk-lib: 2.104.0(constructs@10.3.0) + constructs: 10.3.0 + jest: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) dev: true /@aws-cdk/asset-awscli-v1@2.2.200: @@ -1712,26 +1699,26 @@ packages: /@aws-cdk/asset-node-proxy-agent-v6@2.0.1: resolution: {integrity: sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg==} - /@aws-cdk/aws-cognito-identitypool-alpha@2.103.1-alpha.0(aws-cdk-lib@2.93.0)(constructs@10.2.70): + /@aws-cdk/aws-cognito-identitypool-alpha@2.103.1-alpha.0(aws-cdk-lib@2.104.0)(constructs@10.3.0): resolution: {integrity: sha512-iyQvyi+k2lkj8TpaSXCvagvRorI+Vce7qqWgzRKk5VBxA7760rI11dHWXOrllIW0YrubInDm4wZ236fmBPMc9Q==} engines: {node: '>= 14.15.0'} peerDependencies: aws-cdk-lib: ^2.103.1 constructs: ^10.0.0 dependencies: - aws-cdk-lib: 2.93.0(constructs@10.2.70) - constructs: 10.2.70 + aws-cdk-lib: 2.104.0(constructs@10.3.0) + constructs: 10.3.0 dev: false - /@aws-cdk/aws-cognito-identitypool-alpha@2.93.0-alpha.0(aws-cdk-lib@2.93.0)(constructs@10.2.70): - resolution: {integrity: sha512-ZKCtsBaNDUnYXl6g2x45PzSxuXjMyZTzIg3yDWVSUhpvnnMH0nbPvLhAenGXre9Ax+ItKL3Ai4V5LRQWKXQHiA==} + /@aws-cdk/aws-cognito-identitypool-alpha@2.104.0-alpha.0(aws-cdk-lib@2.104.0)(constructs@10.3.0): + resolution: {integrity: sha512-a1SdwZE1vdzkWjmULD9kt16nUHgg6Iz2WtHD8XZYw8nW4IKweIX0IgvO+Ie8JvGOfKrdZjTBpcwWgNTkA1aG9Q==} engines: {node: '>= 14.15.0'} peerDependencies: - aws-cdk-lib: 2.93.0 + aws-cdk-lib: ^2.104.0 constructs: ^10.0.0 dependencies: - aws-cdk-lib: 2.93.0(constructs@10.2.70) - constructs: 10.2.70 + aws-cdk-lib: 2.104.0(constructs@10.3.0) + constructs: 10.3.0 dev: true /@aws-cdk/cfnspec@2.68.0: @@ -2414,7 +2401,7 @@ packages: '@babel/traverse': 7.21.5 '@babel/types': 7.21.5 convert-source-map: 1.9.0 - debug: 2.6.9 + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2699,7 +2686,7 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/parser': 7.21.8 '@babel/types': 7.21.5 - debug: 2.6.9 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -2714,9 +2701,6 @@ packages: to-fast-properties: 2.0.0 dev: true - /@balena/dockerignore@1.0.2: - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -2728,16 +2712,16 @@ packages: dev: true optional: true - /@commitlint/cli@17.7.1: - resolution: {integrity: sha512-BCm/AT06SNCQtvFv921iNhudOHuY16LswT0R3OeolVGLk8oP+Rk9TfQfgjH7QPMjhvp76bNqGFEcpKojxUNW1g==} + /@commitlint/cli@17.8.1: + resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==} engines: {node: '>=v14'} hasBin: true dependencies: - '@commitlint/format': 17.4.4 - '@commitlint/lint': 17.7.0 - '@commitlint/load': 17.7.1 - '@commitlint/read': 17.5.1 - '@commitlint/types': 17.4.4 + '@commitlint/format': 17.8.1 + '@commitlint/lint': 17.8.1 + '@commitlint/load': 17.8.1 + '@commitlint/read': 17.8.1 + '@commitlint/types': 17.8.1 execa: 5.1.1 lodash.isfunction: 3.0.9 resolve-from: 5.0.0 @@ -2748,27 +2732,27 @@ packages: - '@swc/wasm' dev: true - /@commitlint/config-conventional@17.7.0: - resolution: {integrity: sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==} + /@commitlint/config-conventional@17.8.1: + resolution: {integrity: sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==} engines: {node: '>=v14'} dependencies: conventional-changelog-conventionalcommits: 6.1.0 dev: true - /@commitlint/config-validator@17.6.7: - resolution: {integrity: sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==} + /@commitlint/config-validator@17.8.1: + resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} engines: {node: '>=v14'} requiresBuild: true dependencies: - '@commitlint/types': 17.4.4 + '@commitlint/types': 17.8.1 ajv: 8.12.0 dev: true - /@commitlint/ensure@17.6.7: - resolution: {integrity: sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==} + /@commitlint/ensure@17.8.1: + resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} engines: {node: '>=v14'} dependencies: - '@commitlint/types': 17.4.4 + '@commitlint/types': 17.8.1 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -2776,124 +2760,125 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /@commitlint/execute-rule@17.4.0: - resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} + /@commitlint/execute-rule@17.8.1: + resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} engines: {node: '>=v14'} requiresBuild: true dev: true - /@commitlint/format@17.4.4: - resolution: {integrity: sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==} + /@commitlint/format@17.8.1: + resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} engines: {node: '>=v14'} dependencies: - '@commitlint/types': 17.4.4 + '@commitlint/types': 17.8.1 chalk: 4.1.2 dev: true - /@commitlint/is-ignored@17.7.0: - resolution: {integrity: sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==} + /@commitlint/is-ignored@17.8.1: + resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} engines: {node: '>=v14'} dependencies: - '@commitlint/types': 17.4.4 + '@commitlint/types': 17.8.1 semver: 7.5.4 dev: true - /@commitlint/lint@17.7.0: - resolution: {integrity: sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==} + /@commitlint/lint@17.8.1: + resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} engines: {node: '>=v14'} dependencies: - '@commitlint/is-ignored': 17.7.0 - '@commitlint/parse': 17.7.0 - '@commitlint/rules': 17.7.0 - '@commitlint/types': 17.4.4 + '@commitlint/is-ignored': 17.8.1 + '@commitlint/parse': 17.8.1 + '@commitlint/rules': 17.8.1 + '@commitlint/types': 17.8.1 dev: true - /@commitlint/load@17.7.1: - resolution: {integrity: sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==} + /@commitlint/load@17.8.1: + resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} engines: {node: '>=v14'} + requiresBuild: true dependencies: - '@commitlint/config-validator': 17.6.7 - '@commitlint/execute-rule': 17.4.0 - '@commitlint/resolve-extends': 17.6.7 - '@commitlint/types': 17.4.4 - '@types/node': 20.4.7 + '@commitlint/config-validator': 17.8.1 + '@commitlint/execute-rule': 17.8.1 + '@commitlint/resolve-extends': 17.8.1 + '@commitlint/types': 17.8.1 + '@types/node': 20.5.1 chalk: 4.1.2 cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0(@types/node@20.4.7)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.2.2) + cosmiconfig-typescript-loader: 4.3.0(@types/node@20.5.1)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.2.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.5.1)(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' dev: true - /@commitlint/message@17.4.2: - resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==} + /@commitlint/message@17.8.1: + resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} engines: {node: '>=v14'} dev: true - /@commitlint/parse@17.7.0: - resolution: {integrity: sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==} + /@commitlint/parse@17.8.1: + resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} engines: {node: '>=v14'} dependencies: - '@commitlint/types': 17.4.4 + '@commitlint/types': 17.8.1 conventional-changelog-angular: 6.0.0 conventional-commits-parser: 4.0.0 dev: true - /@commitlint/read@17.5.1: - resolution: {integrity: sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==} + /@commitlint/read@17.8.1: + resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} engines: {node: '>=v14'} dependencies: - '@commitlint/top-level': 17.4.0 - '@commitlint/types': 17.4.4 + '@commitlint/top-level': 17.8.1 + '@commitlint/types': 17.8.1 fs-extra: 11.1.1 git-raw-commits: 2.0.11 minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@17.6.7: - resolution: {integrity: sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==} + /@commitlint/resolve-extends@17.8.1: + resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} engines: {node: '>=v14'} requiresBuild: true dependencies: - '@commitlint/config-validator': 17.6.7 - '@commitlint/types': 17.4.4 + '@commitlint/config-validator': 17.8.1 + '@commitlint/types': 17.8.1 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 resolve-global: 1.0.0 dev: true - /@commitlint/rules@17.7.0: - resolution: {integrity: sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==} + /@commitlint/rules@17.8.1: + resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} engines: {node: '>=v14'} dependencies: - '@commitlint/ensure': 17.6.7 - '@commitlint/message': 17.4.2 - '@commitlint/to-lines': 17.4.0 - '@commitlint/types': 17.4.4 + '@commitlint/ensure': 17.8.1 + '@commitlint/message': 17.8.1 + '@commitlint/to-lines': 17.8.1 + '@commitlint/types': 17.8.1 execa: 5.1.1 dev: true - /@commitlint/to-lines@17.4.0: - resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==} + /@commitlint/to-lines@17.8.1: + resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} engines: {node: '>=v14'} dev: true - /@commitlint/top-level@17.4.0: - resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==} + /@commitlint/top-level@17.8.1: + resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} engines: {node: '>=v14'} dependencies: find-up: 5.0.0 dev: true - /@commitlint/types@17.4.4: - resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} + /@commitlint/types@17.8.1: + resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} engines: {node: '>=v14'} dependencies: chalk: 4.1.2 @@ -2925,7 +2910,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 2.6.9 + debug: 4.3.4 espree: 9.5.1 globals: 13.20.0 ignore: 5.2.4 @@ -2951,8 +2936,8 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@hpcc-js/wasm@2.13.1: - resolution: {integrity: sha512-dJO0VQZFtUcqledAAU8b0yCw3HdkIVyrNjv8sAwdhDcOMRKdaNumi7Punj39u5h2CpdMN4g6I4gp584g/zVSzA==} + /@hpcc-js/wasm@2.14.1: + resolution: {integrity: sha512-ncPvj0dEjoye8jD1NAwdThXlZ5mpuGRyRwaNWU6JVBgyT8TewVDmG+RAOXPysyaP1Ui8Lm7562W4KawZtPwa1A==} hasBin: true dependencies: yargs: 17.7.2 @@ -2963,7 +2948,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 2.6.9 + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -2992,7 +2977,7 @@ packages: dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 7.0.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 @@ -3018,20 +3003,20 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@29.6.4: - resolution: {integrity: sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==} + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 16.18.25 chalk: 4.1.2 - jest-message-util: 29.6.3 - jest-util: 29.6.3 + jest-message-util: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 dev: true - /@jest/core@29.6.4(ts-node@10.9.1): - resolution: {integrity: sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==} + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -3039,10 +3024,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.6.4 - '@jest/reporters': 29.6.4 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 ansi-escapes: 4.3.2 @@ -3050,21 +3035,21 @@ packages: ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 - jest-changed-files: 29.6.3 - jest-config: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) - jest-haste-map: 29.6.4 - jest-message-util: 29.6.3 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 jest-regex-util: 29.6.3 - jest-resolve: 29.6.4 - jest-resolve-dependencies: 29.6.4 - jest-runner: 29.6.4 - jest-runtime: 29.6.4 - jest-snapshot: 29.6.4 - jest-util: 29.6.3 - jest-validate: 29.6.3 - jest-watcher: 29.6.4 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 micromatch: 4.0.5 - pretty-format: 29.6.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -3073,66 +3058,66 @@ packages: - ts-node dev: true - /@jest/environment@29.6.4: - resolution: {integrity: sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==} + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.4 + '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 - jest-mock: 29.6.3 + jest-mock: 29.7.0 dev: true - /@jest/expect-utils@29.5.0: - resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} + /@jest/expect-utils@29.6.4: + resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 dev: true - /@jest/expect-utils@29.6.4: - resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 dev: true - /@jest/expect@29.6.4: - resolution: {integrity: sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==} + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.4 - jest-snapshot: 29.6.4 + expect: 29.7.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.4: - resolution: {integrity: sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==} + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 '@types/node': 16.18.25 - jest-message-util: 29.6.3 - jest-mock: 29.6.3 - jest-util: 29.6.3 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true - /@jest/globals@29.6.4: - resolution: {integrity: sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==} + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/expect': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 '@jest/types': 29.6.3 - jest-mock: 29.6.3 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@29.6.4: - resolution: {integrity: sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==} + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -3141,9 +3126,9 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.6.4 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 '@types/node': 16.18.25 @@ -3157,9 +3142,9 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.6.3 - jest-util: 29.6.3 - jest-worker: 29.6.4 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -3168,13 +3153,6 @@ packages: - supports-color dev: true - /@jest/schemas@29.4.3: - resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.25.24 - dev: true - /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3191,28 +3169,28 @@ packages: graceful-fs: 4.2.11 dev: true - /@jest/test-result@29.6.4: - resolution: {integrity: sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==} + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.4 + '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer@29.6.4: - resolution: {integrity: sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==} + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.4 + '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 - jest-haste-map: 29.6.4 + jest-haste-map: 29.7.0 slash: 3.0.0 dev: true - /@jest/transform@29.6.4: - resolution: {integrity: sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==} + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.21.8 @@ -3223,9 +3201,9 @@ packages: convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.6.4 + jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 - jest-util: 29.6.3 + jest-util: 29.7.0 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -3301,11 +3279,26 @@ packages: semver: 7.5.4 dev: true + /@jsii/check-node@1.91.0: + resolution: {integrity: sha512-K9UFkRe4uJNVp1O2o4OBM/3usba6Vw3XF1Mq3TVBAYl1EzpAiA62DojGp30+3zwFlb1lkavVj1hKlCrIWIuJhw==} + engines: {node: '>= 14.17.0'} + dependencies: + chalk: 4.1.2 + semver: 7.5.4 + dev: true + /@jsii/spec@1.88.0: resolution: {integrity: sha512-Q6xirxPM06TRW0GcsHa+tzPZLwe9I+mFYx5BaNMimcv21u6bQnxfynZMgNhHqvLYCmP37HWg0SboUYTa5JROzw==} engines: {node: '>= 14.17.0'} dependencies: ajv: 8.12.0 + dev: true + + /@jsii/spec@1.91.0: + resolution: {integrity: sha512-Ir01bk5CwIFAApRJjRC+JG/f9db5dACEYFSxsHyvXRMu+J/LIANdwD4OPSelWrhbRiQdY6U16BKsRO63uaNRqg==} + engines: {node: '>= 14.17.0'} + dependencies: + ajv: 8.12.0 /@lerna/child-process@6.6.2: resolution: {integrity: sha512-QyKIWEnKQFnYu2ey+SAAm1A5xjzJLJJj3bhIZd3QKyXKKjaJ0hlxam/OsWSltxTNbcyH1jRJjC6Cxv31usv0Ag==} @@ -3396,7 +3389,7 @@ packages: slash: 3.0.0 ssri: 9.0.1 strong-log-transformer: 2.1.0 - tar: 4.4.19 + tar: 6.1.11 temp-dir: 1.0.0 tempy: 1.0.0 upath: 2.0.1 @@ -3411,7 +3404,7 @@ packages: - supports-color dev: true - /@morgan-stanley/ts-mocking-bird@0.6.4(jest@29.6.4)(typescript@5.2.2): + /@morgan-stanley/ts-mocking-bird@0.6.4(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==} peerDependencies: jasmine: 2.x || 3.x || 4.x @@ -3423,20 +3416,20 @@ packages: jest: optional: true dependencies: - jest: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + jest: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) lodash: 4.17.21 typescript: 5.2.2 uuid: 7.0.3 dev: true - /@mrgrain/jsii-struct-builder@0.5.7(projen@0.76.15): - resolution: {integrity: sha512-9UMg6NOh46ha3r62MgKO7mop94vLtFb3abrnSedFI9GZuq0O48ZPd8qfKmVt+WUZnLmr8FbK29CKEUt+MGyrDw==} + /@mrgrain/jsii-struct-builder@0.5.20(projen@0.76.15): + resolution: {integrity: sha512-aAWkiS1tBLECn7AWFHqV3r6NU/nHIMq5p+YLzc2jkQufdXTEqudNMFMiVJ8WTv2n8HNZFsnKqmKBoIW0oNfSKA==} peerDependencies: projen: x.x.x dependencies: - '@jsii/spec': 1.88.0 + '@jsii/spec': 1.91.0 '@ungap/structured-clone': 1.0.2 - projen: 0.76.15(constructs@10.2.70) + projen: 0.76.15(constructs@10.3.0) dev: false /@nodelib/fs.scandir@2.1.5: @@ -3548,7 +3541,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/name-from-folder': 2.0.0 - glob: 10.2.6 + glob: 10.3.10 minimatch: 9.0.3 read-package-json-fast: 3.0.2 dev: true @@ -3677,10 +3670,10 @@ packages: - nx dev: true - /@nrwl/nx-cloud@16.3.0: - resolution: {integrity: sha512-nJrGsVufhY74KcP7kM7BqFOGAoO5OEF6+wfiM295DgmEG9c1yW+x5QiQaC42K9SWYn/eKQa1X7466ZA5lynXoQ==} + /@nrwl/nx-cloud@16.5.2: + resolution: {integrity: sha512-oHO5T1HRJsR9mbRd8eUqMBPCgqVZLSbAh3zJoPFmhEmjbM4YB9ePRpgYFT8dRNeZUOUd/8Yt7Pb6EVWOHvpD/w==} dependencies: - nx-cloud: 16.3.0 + nx-cloud: 16.5.2 transitivePeerDependencies: - debug dev: true @@ -4082,13 +4075,13 @@ packages: rfc4648: 1.5.2 dev: false - /@pnpm/dependency-path@2.1.3: - resolution: {integrity: sha512-OKuLDqRZfAJAb4fnPZyPyrR827ISL1WV5YBs0q4BitPAz8ORUPSXSCFVailLhoyZWLE0Ag6hROy42Jkw/WnCUw==} + /@pnpm/dependency-path@2.1.5: + resolution: {integrity: sha512-Ki7v96NDlUzkIkgujSl+3sDY/nMjujOaDOTmjEeBebPiow53Y9Bw/UnxI8C2KKsnm/b7kUJPeFVbOhg3HMp7/Q==} engines: {node: '>=16.14'} dependencies: '@pnpm/crypto.base32-hash': 2.0.0 - '@pnpm/types': 9.2.0 - encode-registry: 3.0.0 + '@pnpm/types': 9.4.0 + encode-registry: 3.0.1 semver: 7.5.4 dev: false @@ -4106,22 +4099,22 @@ packages: execa: /safe-execa@0.1.2 dev: false - /@pnpm/lockfile-file@8.1.2(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-7HqPs4qDgfyBpnYqELwLvQQm/4xVRAzQ0Zv3sNt8IhJz8pncjPKcNVVXsGQEUg6Y922ThXfTCumbkSuPFl/rlA==} + /@pnpm/lockfile-file@8.1.4(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-0HmooRDED6Kl3nliwDJXQ+ymhfvuPNgSOF9dEy7KcFn2iOm47eRqMugk7xOa3WvEXzHVIT54clqCSzF16OV54w==} engines: {node: '>=16.14'} peerDependencies: '@pnpm/logger': ^5.0.0 dependencies: '@pnpm/constants': 7.1.1 - '@pnpm/dependency-path': 2.1.3 + '@pnpm/dependency-path': 2.1.5 '@pnpm/error': 5.0.2 '@pnpm/git-utils': 1.0.0 - '@pnpm/lockfile-types': 5.1.1 + '@pnpm/lockfile-types': 5.1.3 '@pnpm/logger': 5.0.0 - '@pnpm/merge-lockfile-changes': 5.0.3 - '@pnpm/types': 9.2.0 + '@pnpm/merge-lockfile-changes': 5.0.5 + '@pnpm/types': 9.4.0 '@pnpm/util.lex-comparator': 1.0.0 - '@zkochan/rimraf': 2.1.2 + '@zkochan/rimraf': 2.1.3 comver-to-semver: 1.0.0 js-yaml: /@zkochan/js-yaml@0.0.6 normalize-path: 3.0.0 @@ -4132,21 +4125,22 @@ packages: write-file-atomic: 5.0.1 dev: false - /@pnpm/lockfile-types@5.1.1: - resolution: {integrity: sha512-QswQGFENlosERR2rCxp/0MhyOwBsRyfDvngTOmn8QG2IPd3KsCJFUNFnLddAp13L+9bxcTgijYIuyN2MlShoFw==} + /@pnpm/lockfile-types@5.1.3: + resolution: {integrity: sha512-dOVvpqLwCKfKdH4Civ+FwM1jRfiNc3w8QfgbLemFXbpPIQxeIm6qt2HCGafz65SJGbRS5DOe9DKxSJg4QkmStQ==} engines: {node: '>=16.14'} dependencies: - '@pnpm/types': 9.2.0 + '@pnpm/types': 9.4.0 dev: false - /@pnpm/lockfile-utils@8.0.3: - resolution: {integrity: sha512-NezoTk3xdA9Dh7dd7lqi1v3QM2GR+ZvuPz9VaDXToqhUKYlcARgSbR56+eIAtraImeZdANIKjvwmJExVkUHAug==} + /@pnpm/lockfile-utils@9.0.0: + resolution: {integrity: sha512-1xXmuFWsWKZ52CNHgXCwvJLZ9G6vaZHCma33FV3TGYuG+Da8fQ3uNjYFu+EzOPVcgcx2o0CKpRgIgDUUgYNVwA==} engines: {node: '>=16.14'} dependencies: - '@pnpm/dependency-path': 2.1.3 - '@pnpm/lockfile-types': 5.1.1 - '@pnpm/resolver-base': 10.0.2 - '@pnpm/types': 9.2.0 + '@pnpm/dependency-path': 2.1.5 + '@pnpm/lockfile-types': 5.1.3 + '@pnpm/pick-fetcher': 2.0.1 + '@pnpm/resolver-base': 11.0.0 + '@pnpm/types': 9.4.0 get-npm-tarball-url: 2.0.3 ramda: /@pnpm/ramda@0.28.1 dev: false @@ -4159,21 +4153,28 @@ packages: ndjson: 2.0.0 dev: false - /@pnpm/merge-lockfile-changes@5.0.3: - resolution: {integrity: sha512-RmWcpl7wWDx17upkxPfGorpLr85FbyihZoi2naoc04nocawKkVVeI68PDWFkgEmImuoQgHZaFCgAVgTbwJyb9A==} + /@pnpm/matcher@5.0.0: + resolution: {integrity: sha512-uh+JBmW8XHGwz9x0K0Ok+TtMiu3ghEaqHHm7dqIubitBP8y9Y0LLP6D2fxWblogjpVzSlH3DpDR1Vicuhw9/cQ==} engines: {node: '>=16.14'} dependencies: - '@pnpm/lockfile-types': 5.1.1 + escape-string-regexp: 4.0.0 + dev: false + + /@pnpm/merge-lockfile-changes@5.0.5: + resolution: {integrity: sha512-4jJnoWcWieq19+qTC1ydXTfHxkuP46FR6Rbhyu+uovyPGF764q44bp2RTMwxGbSrYjqTf6IQuN0Gl0ViKhi/1Q==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/lockfile-types': 5.1.3 comver-to-semver: 1.0.0 ramda: /@pnpm/ramda@0.28.1 semver: 7.5.4 dev: false - /@pnpm/modules-yaml@12.1.2: - resolution: {integrity: sha512-2zKUJK8knoNqVW//3iqAg5RL2U1eTN49Ag+7Day140EkmGe0RPa9fdyIa6ZKPX0j24x330vqz0PLvqj+Lr1JAg==} + /@pnpm/modules-yaml@12.1.4: + resolution: {integrity: sha512-Pwbcn4WBeEPNws1Bxd3ntWjg3hA2BijZrurUW5HLy/poZ77AyUkiMafeLk0bxNovfxar+S73AxPiDh7n6yN0fA==} engines: {node: '>=16.14'} dependencies: - '@pnpm/types': 9.2.0 + '@pnpm/types': 9.4.0 is-windows: 1.0.2 ramda: /@pnpm/ramda@0.28.1 read-yaml-file: 2.1.0 @@ -4187,11 +4188,11 @@ packages: graceful-fs: 4.2.10 dev: true - /@pnpm/normalize-registries@5.0.2: - resolution: {integrity: sha512-oSf7IZky78NTUz6017bq3w2PdBHiyGm86ZKDuNpH/l1bQoyG9GBCCkvVleuSCg0D+MazvKtnGah/UddsgcbmKA==} + /@pnpm/normalize-registries@5.0.4: + resolution: {integrity: sha512-ysADGqYblIwUJAnA3kxXylpt1C7rN29z3q02cmHQeQE9uZiQM6AXD+r4jJIPPpYFgc3Tl7wyCBubqvhqHExlsA==} engines: {node: '>=16.14'} dependencies: - '@pnpm/types': 9.2.0 + '@pnpm/types': 9.4.0 normalize-registry-url: 2.0.0 ramda: /@pnpm/ramda@0.28.1 dev: false @@ -4205,6 +4206,20 @@ packages: config-chain: 1.1.13 dev: true + /@pnpm/npm-package-arg@1.0.0: + resolution: {integrity: sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw==} + engines: {node: '>=14.6'} + dependencies: + hosted-git-info: 4.1.0 + semver: 7.5.4 + validate-npm-package-name: 4.0.0 + dev: false + + /@pnpm/pick-fetcher@2.0.1: + resolution: {integrity: sha512-rW9IqroTLSdrFgCRfxDOyL845e3ju0Lt8HmfljgJLIR8mIoCE6PUR7+JouoSUcauAx28mSMbYbbRYXKlxacdiA==} + engines: {node: '>=16.14'} + dev: false + /@pnpm/ramda@0.28.1: resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} dev: false @@ -4216,44 +4231,47 @@ packages: graceful-fs: 4.2.11 dev: false - /@pnpm/read-package-json@8.0.3: - resolution: {integrity: sha512-I4oZGqWC5tc+n5omMWUp5wFphsUFu9Qd2OtqUFzeV97Zx9/PaEE0Eh/sFKpJM91FNeatezF+OszETPFsvrsusw==} + /@pnpm/read-package-json@8.0.5: + resolution: {integrity: sha512-FzG1pjcE5uVKWAibgx4/0efTQnP9rNQQXc04MqSPqQJtrMmSHlGuTbF1JCHY/LXCXGOutmcf8oUJGmFWPIe/XQ==} engines: {node: '>=16.14'} dependencies: '@pnpm/error': 5.0.2 - '@pnpm/types': 9.2.0 + '@pnpm/types': 9.4.0 load-json-file: 6.2.0 normalize-package-data: 5.0.0 dev: false - /@pnpm/resolver-base@10.0.2: - resolution: {integrity: sha512-5Uop0eLVxoGnG+K5aNkiBeJqyDD4F34+ZpQxxFLtL7xGf9aISPY6OlFfHU0hBD/8aFtZ5JSXhHUsb42aFyqP5Q==} + /@pnpm/resolver-base@11.0.0: + resolution: {integrity: sha512-oxfjO8Ie6aBQPXSqOWGJP9s0xj9Z4cbRI7fK63WKhjwmNH4CTrSfikRL2o4FoXo2APAbJEUp2lCxx+86dq2tUg==} engines: {node: '>=16.14'} dependencies: - '@pnpm/types': 9.2.0 + '@pnpm/types': 9.4.0 dev: false - /@pnpm/reviewing.dependencies-hierarchy@2.0.10(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-jNUUpUjM7cG4xJOi5LnFrXH6O95gGK/BQtfnCbv0sfHtOmV/f7QPxS07qlNPHGc+vqgoqSthSXsgTni+w2leQA==} + /@pnpm/reviewing.dependencies-hierarchy@2.1.3(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-jey8tfe2iZmCyj5W3UVJxPv9QMldTcmLrgFliHB0vFn4Qa9dsWa2jD5etwDX3MaulOsXq7kyNTOFDjdo0tKL0w==} engines: {node: '>=16.14'} dependencies: - '@pnpm/dependency-path': 2.1.3 - '@pnpm/lockfile-file': 8.1.2(@pnpm/logger@5.0.0) - '@pnpm/lockfile-utils': 8.0.3 - '@pnpm/modules-yaml': 12.1.2 - '@pnpm/normalize-registries': 5.0.2 + '@pnpm/dependency-path': 2.1.5 + '@pnpm/lockfile-file': 8.1.4(@pnpm/logger@5.0.0) + '@pnpm/lockfile-utils': 9.0.0 + '@pnpm/matcher': 5.0.0 + '@pnpm/modules-yaml': 12.1.4 + '@pnpm/normalize-registries': 5.0.4 + '@pnpm/npm-package-arg': 1.0.0 '@pnpm/read-modules-dir': 6.0.1 - '@pnpm/read-package-json': 8.0.3 - '@pnpm/types': 9.2.0 + '@pnpm/read-package-json': 8.0.5 + '@pnpm/types': 9.4.0 normalize-path: 3.0.0 realpath-missing: 1.1.0 resolve-link-target: 2.0.0 + semver: 7.5.4 transitivePeerDependencies: - '@pnpm/logger' dev: false - /@pnpm/types@9.2.0: - resolution: {integrity: sha512-LtkHgtJ5Bjny4poUWyMhOKHc822/zm8NhPx+7VbopfDYnTrKgJwTyTbZjZEyN5KpDw3R1Fr8VYdmv5gn4eyWbw==} + /@pnpm/types@9.4.0: + resolution: {integrity: sha512-IRDuIuNobLRQe0UyY2gbrrTzYS46tTNvOEfL6fOf0Qa8NyxUzeXz946v7fQuQE3LSBf8ENBC5SXhRmDl+mBEqA==} engines: {node: '>=16.14'} dev: false @@ -4267,10 +4285,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /@sinclair/typebox@0.25.24: - resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} - dev: true - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -4280,6 +4294,11 @@ packages: engines: {node: '>=10'} dev: true + /@sindresorhus/is@5.6.0: + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + dev: true + /@sinonjs/commons@2.0.0: resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} dependencies: @@ -4746,6 +4765,13 @@ packages: defer-to-connect: 2.0.1 dev: true + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + dependencies: + defer-to-connect: 2.0.1 + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -4814,8 +4840,8 @@ packages: '@types/responselike': 1.0.0 dev: true - /@types/fs-extra@11.0.1: - resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} + /@types/fs-extra@11.0.3: + resolution: {integrity: sha512-sF59BlXtUdzEAL1u0MSvuzWd7PdZvZEtnaVkzX5mjpdWTJ8brG0jUqve3jPCzSzvAKKMHTG8F8o/WMQLtleZdQ==} dependencies: '@types/jsonfile': 6.1.1 '@types/node': 16.18.25 @@ -4840,14 +4866,18 @@ packages: '@types/node': 16.18.25 dev: true - /@types/he@1.2.0: - resolution: {integrity: sha512-uH2smqTN4uGReAiKedIVzoLUAXIYLBTbSofhx3hbNqj74Ua6KqFsLYszduTrLCMEAEAozF73DbGi/SC1bzQq4g==} + /@types/he@1.2.2: + resolution: {integrity: sha512-v2gT1gRK65k9nz8SVSXo3lh7AHnRPL3mRcYNhhsqL/L2S1xt/MGyEI5a7vJPXWik/IxTtAktXf8/HlCxDR1nsw==} dev: true /@types/http-cache-semantics@4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true + /@types/http-cache-semantics@4.0.3: + resolution: {integrity: sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==} + dev: true + /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -4864,19 +4894,19 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest-image-snapshot@6.2.0: - resolution: {integrity: sha512-LG8r7GzYJE9sETkSe4z6k1lVyab0nnln6wGcNXOat8Kny3opvjqw1A5cIKf4mWdsTPuIuCtdMO+KmQLPFZ14Yw==} + /@types/jest-image-snapshot@6.2.2: + resolution: {integrity: sha512-wRjyeSDkBiYUXURQgWkfmlcKG5vpv3VsoWfwtbQPHgicjCx/sBtRKR2kCT6MGCWNY+HuWbrmvVVAaVSsqU4Q4Q==} dependencies: - '@types/jest': 29.5.4 + '@types/jest': 29.5.7 '@types/pixelmatch': 5.2.4 ssim.js: 3.5.0 dev: true - /@types/jest@29.5.4: - resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} + /@types/jest@29.5.7: + resolution: {integrity: sha512-HLyetab6KVPSiF+7pFcUyMeLsx25LDNDemw9mGsJBkai/oouwrjTycocSDYopMEwFhN2Y4s9oPyOCZNofgSt2g==} dependencies: - expect: 29.5.0 - pretty-format: 29.5.0 + expect: 29.6.4 + pretty-format: 29.6.3 dev: true /@types/json-schema@7.0.12: @@ -4899,62 +4929,62 @@ packages: '@types/node': 16.18.25 dev: true - /@types/lodash.clonedeep@4.5.7: - resolution: {integrity: sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==} + /@types/lodash.clonedeep@4.5.8: + resolution: {integrity: sha512-I5toZLLfTvhnuAnejjVgSpBSLSC316bVURbI0sCYI0dKY3jaJgOg2arfPC6miTNnHRi/Tk/J6BB+kzT3iB5mcw==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.isempty@4.4.7: - resolution: {integrity: sha512-YOzlpoIn9jrfHzjIukKnu9Le3tmi+0PhUdOt2rMpJW/4J6jX7s0HeBatXdh9QckLga8qt4EKBxVIEqtEq6pzLg==} + /@types/lodash.isempty@4.4.8: + resolution: {integrity: sha512-cfBlgq2xgy5Hg3SWKGQeTnJdHeZ4ZZ6FBCn9F6OZVW2codhsZVysluDu01iHvSS/hneAhcjkF8Td8hFMzBrUUQ==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.memoize@4.1.7: - resolution: {integrity: sha512-lGN7WeO4vO6sICVpf041Q7BX/9k1Y24Zo3FY0aUezr1QlKznpjzsDk3T3wvH8ofYzoK0QupN9TWcFAFZlyPwQQ==} + /@types/lodash.memoize@4.1.8: + resolution: {integrity: sha512-mf2QpcedTC4qXJxqgbmCuST3a/SNTuqz2kMtojazqeLhjXaLXgoSwAgVbAz6FINw90Ahg0y1m69pm+rhta3c8Q==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.merge@4.6.7: - resolution: {integrity: sha512-OwxUJ9E50gw3LnAefSHJPHaBLGEKmQBQ7CZe/xflHkyy/wH2zVyEIAKReHvVrrn7zKdF58p16We9kMfh7v0RRQ==} + /@types/lodash.merge@4.6.8: + resolution: {integrity: sha512-He1g+VBmRclP+6hT6P6zKlzpFoeOLMgPpMGChgINuxbdPumZCIJsITbqSq2cWXzJu2ltmwVN5TfQ6kj0X06rFQ==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.omit@4.5.7: - resolution: {integrity: sha512-6q6cNg0tQ6oTWjSM+BcYMBhan54P/gLqBldG4AuXd3nKr0oeVekWNS4VrNEu3BhCSDXtGapi7zjhnna0s03KpA==} + /@types/lodash.omit@4.5.8: + resolution: {integrity: sha512-CeIDttD58jS7R7M4rI8ZNBbV6JGG+BkKQFnWjduFJwTxqo8NdT/xjbjmQc39MVB2TKJ0rvQxddNaIna+W/pQvw==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.startcase@4.4.7: - resolution: {integrity: sha512-6v8FVOcfxdomO1Vammc1Zsah7/4aif/Lx16oQQ0WZmKVGF/Yf5c5m68LqI/ELOhKaKUr8KfnDdKrytdrThoRQw==} + /@types/lodash.startcase@4.4.8: + resolution: {integrity: sha512-LVIbtpZ60Z65NvZ30KQ+dsDPZSGNuBRJwWmnSNazm1FUv034vJOW5GlSLY0ce78UtmPWAnDPfMc/MjiwOvppoQ==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.uniq@4.5.7: - resolution: {integrity: sha512-qg7DeAbdZMi6DGvCxThlJycykLLhETrJrQZ6F2KaZ+o0sNK1qRHz46lgNA+nHHjwrmA2a91DyiZTp3ey3m1rEw==} + /@types/lodash.uniq@4.5.8: + resolution: {integrity: sha512-cIj2lf1ne28pTTvXp9rj9EOkcvOYfsjb/7IUhOFTB3/EE7HPiiDJm/6+P8Wv714P81c/qV3nDjHgOtlt0ogOZQ==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.uniqby@4.7.7: - resolution: {integrity: sha512-sv2g6vkCIvEUsK5/Vq17haoZaisfj2EWW8mP7QWlnKi6dByoNmeuHDDXHR7sabuDqwO4gvU7ModIL22MmnOocg==} + /@types/lodash.uniqby@4.7.8: + resolution: {integrity: sha512-tj9oT87G6wlUifTZ41Dp0nF1zeUoF7jYyAerB++NZwudOumYg+/bJnkqkApptg6rODJJgNuY6q4CeasYHVo+Jg==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash.words@4.2.7: - resolution: {integrity: sha512-nQKFGx32VHqnNnjAZ3R23NEdOvvH2s6n5T7GGu//DGtN1NiDA2293htRDtifszLGdc2BJgK57SskX0o2AP+PYw==} + /@types/lodash.words@4.2.8: + resolution: {integrity: sha512-h0XJCX8CJliRhG6uDqLl5HhjN4B/0Jg3vYIao1AeV+WZ3aZQ3CDvjmH3L3knMJjJ3tcAxvHdP1uYO5QY3EXreA==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.200 dev: true - /@types/lodash@4.14.197: - resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} + /@types/lodash@4.14.200: + resolution: {integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==} dev: true /@types/minimatch@3.0.5: @@ -4969,8 +4999,8 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/mustache@4.2.2: - resolution: {integrity: sha512-MUSpfpW0yZbTgjekDbH0shMYBUD+X/uJJJMm9LXN1d5yjl5lCY1vN/eWKD6D1tOtjA6206K0zcIPnUaFMurdNA==} + /@types/mustache@4.2.4: + resolution: {integrity: sha512-5DK8oX+pyEJm8Arm57Ut2R4KCeDuNQhLAuU04IgaKB7nYsFYzhpWqSoFnp7kCtVG7wXKftnaEJIyUFTVvSkkzw==} dev: true /@types/node-fetch@2.6.3: @@ -4983,8 +5013,8 @@ packages: /@types/node@16.18.25: resolution: {integrity: sha512-rUDO6s9Q/El1R1I21HG4qw/LstTHCPO/oQNAwI/4b2f9EWvMnqt4d3HJwPMawfZ3UvodB8516Yg+VAq54YM+eA==} - /@types/node@20.4.7: - resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} + /@types/node@20.5.1: + resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} requiresBuild: true dev: true @@ -5007,8 +5037,8 @@ packages: '@types/node': 16.18.25 dev: true - /@types/semver@7.5.1: - resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} + /@types/semver@7.5.4: + resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} dev: true /@types/sharp@0.31.1: @@ -5021,22 +5051,22 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/to-px@1.1.2: - resolution: {integrity: sha512-O3OkxRVcfcrAW2wH8bCVDhs1RCGwHI77l+wDNQ8KlX0HCCwBtShKkqQByKlzIirR72D36JHNgJhYb9B69iJ2PA==} + /@types/to-px@1.1.3: + resolution: {integrity: sha512-yGLQNkrvprZp8kp4NvdXjZF7567tdJ+9iPJZcUx4HwVJSti4Y5oLHEOfoGlDtuysTAVyvw3MPXqpg7QGDy/s5g==} dev: true - /@types/traverse@0.6.32: - resolution: {integrity: sha512-RBz2uRZVCXuMg93WD//aTS5B120QlT4lR/gL+935QtGsKHLS6sCtZBaKfWjIfk7ZXv/r8mtGbwjVIee6/3XTow==} + /@types/traverse@0.6.34: + resolution: {integrity: sha512-bTvEo1/mx4ERGCcZfcvI8hBIUulNhqMcgyX/JzZ+p0WGdiU+oVjIJJJUs5zrkeWpfrTj98UvUm0qVHUk5lnkUg==} dev: true - /@types/unzipper@0.10.7: - resolution: {integrity: sha512-1yZanW3LWgY4wA6x0MyIkyI5rGILLHjXWAvvuz+xF2JzqBLG26ySL+VrSgjz9EWIYLv+icqv5RPW6FN4BJmsHw==} + /@types/unzipper@0.10.8: + resolution: {integrity: sha512-Cior/4Y78R1ZVF6tnWEHWIkAMDqKxU5pPCbaC62826oEfchPGg90fKdi3sLZ2D7oB7GrFu3+PW2elEMBOtd27w==} dependencies: '@types/node': 16.18.25 dev: true - /@types/xml-flow@1.0.2: - resolution: {integrity: sha512-/URbVbv2yKvSAAOwc3uLrNBhEGEiSMd8Bd3spT76TUrdy/sPl7w4dzYrlhb6XKwHfllUuwsdfoikwVQKtqCYlA==} + /@types/xml-flow@1.0.3: + resolution: {integrity: sha512-mkOzOsNkOrXw1qxNiJ2Wjx1eNKqyKXFhywAsoNrlymPSZhxA/0QHJEt4K2dZeG7ebQMoHvwLZILGb7GUFEUXvQ==} dependencies: '@types/node': 16.18.25 dev: true @@ -5068,7 +5098,7 @@ packages: '@typescript-eslint/type-utils': 6.5.0(eslint@8.39.0)(typescript@5.2.2) '@typescript-eslint/utils': 6.5.0(eslint@8.39.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.5.0 - debug: 2.6.9 + debug: 4.3.4 eslint: 8.39.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -5094,7 +5124,7 @@ packages: '@typescript-eslint/types': 6.5.0 '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.5.0 - debug: 2.6.9 + debug: 4.3.4 eslint: 8.39.0 typescript: 5.2.2 transitivePeerDependencies: @@ -5121,7 +5151,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) '@typescript-eslint/utils': 6.5.0(eslint@8.39.0)(typescript@5.2.2) - debug: 2.6.9 + debug: 4.3.4 eslint: 8.39.0 ts-api-utils: 1.0.2(typescript@5.2.2) typescript: 5.2.2 @@ -5145,7 +5175,7 @@ packages: dependencies: '@typescript-eslint/types': 6.5.0 '@typescript-eslint/visitor-keys': 6.5.0 - debug: 2.6.9 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -5163,7 +5193,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) '@types/json-schema': 7.0.12 - '@types/semver': 7.5.1 + '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 6.5.0 '@typescript-eslint/types': 6.5.0 '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) @@ -5207,11 +5237,11 @@ packages: resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} hasBin: true dependencies: - argparse: 1.0.10 + argparse: 2.0.1 dev: false - /@zkochan/rimraf@2.1.2: - resolution: {integrity: sha512-Lc2oK51J6aQWcLWTloobJun5ZF41BbTDdLvE+aMcexoVWFoFqvZmnZoyXR2IZk6NJEVoZW8tjgtvQLfTsmRs2Q==} + /@zkochan/rimraf@2.1.3: + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} engines: {node: '>=12.10'} dependencies: rimraf: 3.0.2 @@ -5278,7 +5308,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 2.6.9 + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -5287,7 +5317,7 @@ packages: resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} engines: {node: '>= 8.0.0'} dependencies: - debug: 2.6.9 + debug: 4.3.4 depd: 2.0.0 humanize-ms: 1.2.1 transitivePeerDependencies: @@ -5353,10 +5383,20 @@ packages: type-fest: 0.21.3 dev: true + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} @@ -5441,6 +5481,10 @@ packages: dependencies: sprintf-js: 1.0.3 + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + /array-back@3.1.0: resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} engines: {node: '>=6'} @@ -5454,7 +5498,7 @@ packages: /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-array-buffer: 3.0.2 dev: true @@ -5472,14 +5516,14 @@ packages: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.0 + es-abstract: 1.22.3 + get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -5500,37 +5544,50 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.2: - resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 es-shim-unscopables: 1.0.0 dev: true + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.0 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -5559,11 +5616,10 @@ packages: /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} + dev: true - /async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - dependencies: - lodash: 4.17.21 + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: true /asynckit@0.4.0: @@ -5580,8 +5636,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /aws-cdk-lib@2.93.0(constructs@10.2.70): - resolution: {integrity: sha512-kKbcKkts272Ju5xjGKI3pXTOpiJxW4OQbDF8Vmw/NIkkuJLo8GlRCFfeOfoN/hilvlYQgENA67GCgSWccbvu7w==} + /aws-cdk-lib@2.104.0(constructs@10.3.0): + resolution: {integrity: sha512-gD5KD2j8C5ff7j4RTA5ajFDNnpw4EvVhWMgWWrOyIEa9OkndEXwzhvCvwbEpwmgSUvnmsmbiHTBaLg8KVP+yKA==} engines: {node: '>= 14.15.0'} peerDependencies: constructs: ^10.0.0 @@ -5589,17 +5645,7 @@ packages: '@aws-cdk/asset-awscli-v1': 2.2.200 '@aws-cdk/asset-kubectl-v20': 2.1.2 '@aws-cdk/asset-node-proxy-agent-v6': 2.0.1 - '@balena/dockerignore': 1.0.2 - case: 1.6.3 - constructs: 10.2.70 - fs-extra: 11.1.1 - ignore: 5.2.4 - jsonschema: 1.4.1 - minimatch: 3.1.2 - punycode: 2.3.0 - semver: 7.5.4 - table: 6.8.1 - yaml: 1.10.2 + constructs: 10.3.0 bundledDependencies: - '@balena/dockerignore' - case @@ -5643,14 +5689,14 @@ packages: /b4a@1.6.4: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} - /babel-jest@29.6.4(@babel/core@7.21.8): - resolution: {integrity: sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==} + /babel-jest@29.7.0(@babel/core@7.21.8): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.21.8 - '@jest/transform': 29.6.4 + '@jest/transform': 29.7.0 '@types/babel__core': 7.20.0 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.21.8) @@ -5766,6 +5812,13 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 + /block-stream@0.0.9: + resolution: {integrity: sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==} + engines: {node: 0.4 || >=0.5.8} + dependencies: + inherits: 2.0.4 + dev: true + /bluebird@3.4.7: resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} dev: true @@ -5884,7 +5937,6 @@ packages: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.4 - dev: true /byte-size@7.0.0: resolution: {integrity: sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==} @@ -5911,7 +5963,7 @@ packages: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 9.0.1 - tar: 4.4.19 + tar: 6.2.0 unique-filename: 2.0.1 transitivePeerDependencies: - bluebird @@ -5923,7 +5975,7 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.2 - glob: 10.2.6 + glob: 10.3.10 lru-cache: 7.18.3 minipass: 5.0.0 minipass-collect: 1.0.2 @@ -5931,7 +5983,7 @@ packages: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.4 - tar: 4.4.19 + tar: 6.2.0 unique-filename: 3.0.0 dev: true @@ -5940,6 +5992,24 @@ packages: engines: {node: '>=10.6.0'} dev: true + /cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + dev: true + + /cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + dependencies: + '@types/http-cache-semantics': 4.0.3 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.0 + responselike: 3.0.0 + dev: true + /cacheable-request@7.0.2: resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} engines: {node: '>=8'} @@ -5965,6 +6035,14 @@ packages: get-intrinsic: 1.2.1 dev: true + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + /call-me-maybe@1.0.2: resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} dev: true @@ -6015,14 +6093,14 @@ packages: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /cdk-nag@2.27.117(aws-cdk-lib@2.93.0)(constructs@10.2.70): - resolution: {integrity: sha512-/gZ5rMqCCJRXt+8UORKjQ9r3qif/woPeNRBZ4I/RAEUubvSBMZZjSo+1DAHoHl5FjT5xpWDq9XZinX7d9FmAgg==} + /cdk-nag@2.27.184(aws-cdk-lib@2.104.0)(constructs@10.3.0): + resolution: {integrity: sha512-g991bCN861x1XLFhuaO99Y9BCGx4DDpopWEh/SYJe5BZOYjJpkiQcHl6bYEfvutaqbVk2XjZMnHxd0utKpJ5yA==} peerDependencies: aws-cdk-lib: ^2.78.0 constructs: ^10.0.5 dependencies: - aws-cdk-lib: 2.93.0(constructs@10.2.70) - constructs: 10.2.70 + aws-cdk-lib: 2.104.0(constructs@10.3.0) + constructs: 10.3.0 /chainsaw@0.1.0: resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} @@ -6204,7 +6282,7 @@ packages: hasBin: true dependencies: bluebird: 3.7.2 - debug: 2.6.9 + debug: 4.3.4 fs-extra: 5.0.0 is-iojs: 1.1.0 lodash: 4.17.21 @@ -6246,8 +6324,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /codemaker@1.88.0: - resolution: {integrity: sha512-/7+1mPQCEFmBm9zhf5blMiqirCcXNwulb8dozu2LVsDLgnafPt1h2eg/OwvyrqSMWUnsIFetAssKVP2gE66MPQ==} + /codemaker@1.91.0: + resolution: {integrity: sha512-yI9ibYUBdJDI8n5Vffd4kfg7mSy6Fes2FHq3/TrZtqhL5CJcXvI8Lltl6iTWM5f1JkeIeAMQOC45PjscBhWyZg==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -6381,7 +6459,7 @@ packages: inquirer: 8.2.5 is-utf8: 0.2.1 lodash: 4.17.21 - minimist: 1.2.8 + minimist: 1.2.7 strip-bom: 4.0.0 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -6457,8 +6535,8 @@ packages: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true - /constructs@10.2.70: - resolution: {integrity: sha512-z6zr1E8K/9tzJbCQzY0UGX0/oVKPFKu9C/mzEnghCG6TAJINnvlq0CMKm63XqqeMleadZYm5T3sZGJKcxJS/Pg==} + /constructs@10.3.0: + resolution: {integrity: sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==} engines: {node: '>= 16.14.0'} /conventional-changelog-angular@5.0.12: @@ -6593,7 +6671,7 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig-typescript-loader@4.3.0(@types/node@20.4.7)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.2.2): + /cosmiconfig-typescript-loader@4.3.0(@types/node@20.5.1)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.2.2): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} requiresBuild: true @@ -6603,9 +6681,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 20.4.7 + '@types/node': 20.5.1 cosmiconfig: 8.1.3 - ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.5.1)(typescript@5.2.2) typescript: 5.2.2 dev: true @@ -6630,6 +6708,25 @@ packages: path-type: 4.0.0 dev: true + /create-jest@29.7.0(@types/node@16.18.25)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -6674,7 +6771,7 @@ packages: longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 17.7.1 + '@commitlint/load': 17.8.1 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -6716,6 +6813,29 @@ packages: optional: true dependencies: ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 /debuglog@1.0.1: resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} @@ -6759,9 +6879,9 @@ packages: optional: true dev: true - /deep-extend@0.5.1: - resolution: {integrity: sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -6791,6 +6911,15 @@ packages: engines: {node: '>=10'} dev: true + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -6876,11 +7005,6 @@ packages: wrappy: 1.0.2 dev: true - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7000,8 +7124,8 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /encode-registry@3.0.0: - resolution: {integrity: sha512-2fRYji8K6FwYuQ6EPBKR/J9mcqb7kIoNqt1vGvJr3NrvKfncRiNm00Oxo6gi/YJF8R5Sp2bNFSFdGKTG0rje1Q==} + /encode-registry@3.0.1: + resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} engines: {node: '>=10'} dependencies: mem: 8.1.1 @@ -7059,24 +7183,25 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.3 has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 + hasown: 2.0.0 internal-slot: 1.0.5 is-array-buffer: 3.0.2 is-callable: 1.2.7 @@ -7084,26 +7209,30 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 + which-typed-array: 1.1.13 dev: true /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 has: 1.0.3 has-tostringtag: 1.0.0 dev: true @@ -7169,7 +7298,6 @@ packages: /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - dev: true /eslint-config-prettier@8.10.0(eslint@8.39.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} @@ -7183,28 +7311,28 @@ packages: /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - debug: 2.6.9 + debug: 3.2.7 is-core-module: 2.13.0 resolve: 1.22.4 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0): - resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 2.6.9 + debug: 4.3.4 enhanced-resolve: 5.13.0 eslint: 8.39.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) fast-glob: 3.3.1 get-tsconfig: 4.5.0 - is-core-module: 2.12.0 + is-core-module: 2.13.0 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -7213,7 +7341,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -7235,10 +7363,10 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 6.5.0(eslint@8.39.0)(typescript@5.2.2) - debug: 2.6.9 + debug: 3.2.7 eslint: 8.39.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.39.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.39.0) transitivePeerDependencies: - supports-color dev: true @@ -7251,8 +7379,8 @@ packages: eslint: 8.39.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -7262,22 +7390,22 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 6.5.0(eslint@8.39.0)(typescript@5.2.2) - array-includes: 3.1.6 - array.prototype.findlastindex: 1.2.2 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 2.6.9 + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 doctrine: 2.1.0 eslint: 8.39.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.39.0) - has: 1.0.3 - is-core-module: 2.13.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.39.0) + hasown: 2.0.0 + is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.6 - object.groupby: 1.0.0 - object.values: 1.1.6 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -7336,7 +7464,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 2.6.9 + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.0 @@ -7482,17 +7610,6 @@ packages: homedir-polyfill: 1.0.3 dev: true - /expect@29.5.0: - resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.5.0 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - dev: true - /expect@29.6.4: resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7504,6 +7621,17 @@ packages: jest-util: 29.6.3 dev: true + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + /ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: @@ -7586,8 +7714,8 @@ packages: strnum: 1.0.5 dev: true - /fast-xml-parser@4.2.7: - resolution: {integrity: sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==} + /fast-xml-parser@4.3.2: + resolution: {integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==} hasBin: true dependencies: strnum: 1.0.5 @@ -7740,6 +7868,11 @@ packages: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true + /form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + dev: true + /form-data@2.3.3: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} @@ -7767,8 +7900,8 @@ packages: mime-types: 2.1.35 dev: true - /fp-and-or@0.1.3: - resolution: {integrity: sha512-wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==} + /fp-and-or@0.1.4: + resolution: {integrity: sha512-+yRYRhpnFPWXSly/6V4Lw9IfOV26uu30kynGJ03PW+MnjOEQe45RZ141QcS0aJehYBYA50GfCDnsRbFJdhssRw==} engines: {node: '>=10'} dev: true @@ -7862,13 +7995,17 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 functions-have-names: 1.2.3 dev: true @@ -7950,21 +8087,22 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 dev: true - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: - function-bind: 1.1.1 - has: 1.0.3 + function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 + hasown: 2.0.0 dev: true /get-npm-tarball-url@2.0.3: @@ -8023,8 +8161,8 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /get-tsconfig@4.5.0: @@ -8137,16 +8275,16 @@ packages: glob: 8.1.0 dev: true - /glob@10.2.6: - resolution: {integrity: sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.0 + jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 5.0.0 - path-scurry: 1.7.0 + path-scurry: 1.10.1 dev: true /glob@5.0.15: @@ -8272,7 +8410,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /got@11.8.6: @@ -8292,6 +8430,23 @@ packages: responselike: 2.0.1 dev: true + /got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.0 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + dev: true + /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true @@ -8347,7 +8502,7 @@ packages: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} dependencies: - ansi-regex: 5.0.1 + ansi-regex: 2.1.1 dev: true /has-bigints@1.0.2: @@ -8404,6 +8559,13 @@ packages: dependencies: function-bind: 1.1.1 + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -8431,7 +8593,6 @@ packages: engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 - dev: true /hosted-git-info@5.2.1: resolution: {integrity: sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==} @@ -8460,7 +8621,7 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 2.6.9 + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -8482,12 +8643,20 @@ packages: resolve-alpn: 1.2.1 dev: true + /http2-wrapper@2.2.0: + resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: true + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 2.6.9 + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -8552,6 +8721,7 @@ packages: /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + dev: true /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -8672,7 +8842,7 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -8693,9 +8863,9 @@ packages: /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -8714,7 +8884,7 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true @@ -8740,17 +8910,17 @@ packages: ci-info: 3.8.0 dev: true - /is-core-module@2.12.0: - resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} - dependencies: - has: 1.0.3 - dev: true - /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -8876,14 +9046,14 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-ssh@1.4.0: @@ -8922,15 +9092,11 @@ packages: text-extensions: 1.9.0 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.13 dev: true /is-typedarray@1.0.0: @@ -8949,7 +9115,7 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-windows@1.0.2: @@ -8976,6 +9142,10 @@ packages: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -9032,7 +9202,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 2.6.9 + debug: 4.3.4 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -9047,8 +9217,8 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jackspeak@2.2.0: - resolution: {integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==} + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -9061,42 +9231,42 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - async: 2.6.4 + async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 dev: true - /jest-changed-files@29.6.3: - resolution: {integrity: sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==} + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 - jest-util: 29.6.3 + jest-util: 29.7.0 p-limit: 3.1.0 dev: true - /jest-circus@29.6.4: - resolution: {integrity: sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==} + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/expect': 29.6.4 - '@jest/test-result': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 is-generator-fn: 2.1.0 - jest-each: 29.6.3 - jest-matcher-utils: 29.6.4 - jest-message-util: 29.6.3 - jest-runtime: 29.6.4 - jest-snapshot: 29.6.4 - jest-util: 29.6.3 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 p-limit: 3.1.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 pure-rand: 6.0.2 slash: 3.0.0 stack-utils: 2.0.6 @@ -9105,8 +9275,8 @@ packages: - supports-color dev: true - /jest-cli@29.6.4(@types/node@16.18.25)(ts-node@10.9.1): - resolution: {integrity: sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==} + /jest-cli@29.7.0(@types/node@16.18.25)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -9115,17 +9285,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.4(ts-node@10.9.1) - '@jest/test-result': 29.6.4 + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 + create-jest: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) exit: 0.1.2 - graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) - jest-util: 29.6.3 - jest-validate: 29.6.3 - prompts: 2.4.2 + jest-config: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) + jest-util: 29.7.0 + jest-validate: 29.7.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -9134,8 +9303,8 @@ packages: - ts-node dev: true - /jest-config@29.6.4(@types/node@16.18.25)(ts-node@10.9.1): - resolution: {integrity: sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==} + /jest-config@29.7.0(@types/node@16.18.25)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -9147,26 +9316,26 @@ packages: optional: true dependencies: '@babel/core': 7.21.8 - '@jest/test-sequencer': 29.6.4 + '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 - babel-jest: 29.6.4(@babel/core@7.21.8) + babel-jest: 29.7.0(@babel/core@7.21.8) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 - jest-circus: 29.6.4 - jest-environment-node: 29.6.4 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 jest-get-type: 29.6.3 jest-regex-util: 29.6.3 - jest-resolve: 29.6.4 - jest-runner: 29.6.4 - jest-util: 29.6.3 - jest-validate: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 ts-node: 10.9.1(@types/node@16.18.25)(typescript@5.2.2) @@ -9175,59 +9344,54 @@ packages: - supports-color dev: true - /jest-diff@29.5.0: - resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==} + /jest-diff@29.6.4: + resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 29.4.3 + diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.6.3 dev: true - /jest-diff@29.6.4: - resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 - pretty-format: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-docblock@29.6.3: - resolution: {integrity: sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==} + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 dev: true - /jest-each@29.6.3: - resolution: {integrity: sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==} + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 - jest-util: 29.6.3 - pretty-format: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 dev: true - /jest-environment-node@29.6.4: - resolution: {integrity: sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==} + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/fake-timers': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 - jest-mock: 29.6.3 - jest-util: 29.6.3 - dev: true - - /jest-get-type@29.4.3: - resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true /jest-get-type@29.6.3: @@ -9235,8 +9399,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.4: - resolution: {integrity: sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==} + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 @@ -9246,15 +9410,15 @@ packages: fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.6.3 - jest-util: 29.6.3 - jest-worker: 29.6.4 + jest-util: 29.7.0 + jest-worker: 29.7.0 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-image-snapshot@6.2.0(jest@29.6.4): + /jest-image-snapshot@6.2.0(jest@29.7.0): resolution: {integrity: sha512-9mTHBKiiSIZ26csbLmjKyN+SrVypM93S5y+jULCvn6YItgepvcrJIKGNeSyt9d2EZiutOroLs/UjtrWiBzpHbA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -9266,7 +9430,7 @@ packages: chalk: 4.1.2 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + jest: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) lodash: 4.17.21 pixelmatch: 5.3.0 pngjs: 3.4.0 @@ -9284,36 +9448,36 @@ packages: xml: 1.0.1 dev: true - /jest-leak-detector@29.6.3: - resolution: {integrity: sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==} + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 - pretty-format: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-matcher-utils@29.5.0: - resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==} + /jest-matcher-utils@29.6.4: + resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.5.0 - jest-get-type: 29.4.3 + jest-diff: 29.6.4 + jest-get-type: 29.6.3 pretty-format: 29.6.3 dev: true - /jest-matcher-utils@29.6.4: - resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.6.4 + jest-diff: 29.7.0 jest-get-type: 29.6.3 - pretty-format: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-message-util@29.5.0: - resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} + /jest-message-util@29.6.3: + resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.21.4 @@ -9327,8 +9491,8 @@ packages: stack-utils: 2.0.6 dev: true - /jest-message-util@29.6.3: - resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.21.4 @@ -9337,21 +9501,21 @@ packages: chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 - pretty-format: 29.6.3 + pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 dev: true - /jest-mock@29.6.3: - resolution: {integrity: sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==} + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 16.18.25 - jest-util: 29.6.3 + jest-util: 29.7.0 dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@29.6.4): + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} peerDependencies: @@ -9360,7 +9524,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.6.4 + jest-resolve: 29.7.0 dev: true /jest-regex-util@29.6.3: @@ -9368,70 +9532,70 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@29.6.4: - resolution: {integrity: sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==} + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.6.3 - jest-snapshot: 29.6.4 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@29.6.4: - resolution: {integrity: sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==} + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 29.6.4 - jest-pnp-resolver: 1.2.3(jest-resolve@29.6.4) - jest-util: 29.6.3 - jest-validate: 29.6.3 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 resolve: 1.22.4 resolve.exports: 2.0.2 slash: 3.0.0 dev: true - /jest-runner@29.6.4: - resolution: {integrity: sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==} + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.4 - '@jest/environment': 29.6.4 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 - jest-docblock: 29.6.3 - jest-environment-node: 29.6.4 - jest-haste-map: 29.6.4 - jest-leak-detector: 29.6.3 - jest-message-util: 29.6.3 - jest-resolve: 29.6.4 - jest-runtime: 29.6.4 - jest-util: 29.6.3 - jest-watcher: 29.6.4 - jest-worker: 29.6.4 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@29.6.4: - resolution: {integrity: sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==} + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/fake-timers': 29.6.4 - '@jest/globals': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 '@jest/source-map': 29.6.3 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 chalk: 4.1.2 @@ -9439,21 +9603,21 @@ packages: collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.11 - jest-haste-map: 29.6.4 - jest-message-util: 29.6.3 - jest-mock: 29.6.3 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 jest-regex-util: 29.6.3 - jest-resolve: 29.6.4 - jest-snapshot: 29.6.4 - jest-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@29.6.4: - resolution: {integrity: sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==} + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.21.8 @@ -9461,20 +9625,20 @@ packages: '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.8) '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.21.8) '@babel/types': 7.21.5 - '@jest/expect-utils': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.8) chalk: 4.1.2 - expect: 29.6.4 + expect: 29.7.0 graceful-fs: 4.2.11 - jest-diff: 29.6.4 + jest-diff: 29.7.0 jest-get-type: 29.6.3 - jest-matcher-utils: 29.6.4 - jest-message-util: 29.6.3 - jest-util: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 natural-compare: 1.4.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -9504,8 +9668,20 @@ packages: picomatch: 2.3.1 dev: true - /jest-validate@29.6.3: - resolution: {integrity: sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==} + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 16.18.25 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 @@ -9513,35 +9689,35 @@ packages: chalk: 4.1.2 jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-watcher@29.6.4: - resolution: {integrity: sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==} + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.4 + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 '@types/node': 16.18.25 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.6.3 + jest-util: 29.7.0 string-length: 4.0.2 dev: true - /jest-worker@29.6.4: - resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 16.18.25 - jest-util: 29.6.3 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.6.4(@types/node@16.18.25)(ts-node@10.9.1): - resolution: {integrity: sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==} + /jest@29.7.0(@types/node@16.18.25)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -9550,10 +9726,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.4(ts-node@10.9.1) + '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -9595,15 +9771,15 @@ packages: hasBin: true dev: true - /jsii-diff@1.88.0: - resolution: {integrity: sha512-5Wjig/1GvZckAS1G8f+kztNDZVP4TFqUu/NsSiIb4hHHM+MvUy7O9ihVuWDVE+QodSTxPXy3RMKp+ILsiRcuqg==} + /jsii-diff@1.91.0: + resolution: {integrity: sha512-WZkxTWuFI4QswU8DWu3v8pRfjOkp6A38KE3HtNPjp4QyIOSuhHYfZyd1wrIozeFxeKebfDH5YOu8/cL4JlVqUQ==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.88.0 + '@jsii/check-node': 1.91.0 + '@jsii/spec': 1.91.0 fs-extra: 10.1.0 - jsii-reflect: 1.88.0 + jsii-reflect: 1.91.0 log4js: 6.9.1 yargs: 16.2.0 transitivePeerDependencies: @@ -9621,29 +9797,29 @@ packages: glob: 8.1.0 glob-promise: 6.0.3(glob@8.1.0) jsii-reflect: 1.88.0 - jsii-rosetta: 1.88.0 + jsii-rosetta: 1.91.0 semver: 7.5.4 yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: true - /jsii-pacmak@1.88.0: - resolution: {integrity: sha512-nanfSaYpe2lgOzvosup4iObQ76tCs47+rERUUGFyrCq7sruQ7VMYgRdAuGWh8PqF9fGNwq6Do1eR+EMC+d4WUg==} + /jsii-pacmak@1.91.0: + resolution: {integrity: sha512-k3Mc8v2nS7OTZxbwXczjSl5/RzGXHPq/BzZ+MRQhP5Z0Ai7QDF++aJxx6GZT9JXOD8zpHpv74QOr6eLPRVRIEQ==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.88.0 + '@jsii/check-node': 1.91.0 + '@jsii/spec': 1.91.0 clone: 2.1.2 - codemaker: 1.88.0 + codemaker: 1.91.0 commonmark: 0.30.0 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.88.0 - jsii-rosetta: 1.88.0 + jsii-reflect: 1.91.0 + jsii-rosetta: 1.91.0 semver: 7.5.4 - spdx-license-list: 6.6.0 + spdx-license-list: 6.8.0 xmlbuilder: 15.1.1 yargs: 16.2.0 transitivePeerDependencies: @@ -9656,41 +9832,54 @@ packages: hasBin: true dependencies: '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.88.0 + '@jsii/spec': 1.91.0 chalk: 4.1.2 fs-extra: 10.1.0 oo-ascii-tree: 1.88.0 yargs: 16.2.0 dev: true - /jsii-rosetta@1.88.0: - resolution: {integrity: sha512-6xRRkwWUKFqDTnjgCXkB6v9dxA51KUD4Cd7InLB4qirMBDuMtyYhYVNc1yJbHPYs9gkN5/ao0dFk+1CQxt7T7g==} + /jsii-reflect@1.91.0: + resolution: {integrity: sha512-RRFmvscXiBHUOP9ew71gPQ2IptiHYoRaihKoLg5+SQSeCvynaJrBWhNcBy26LHd28HEN2atdzYems0+HgeQNRg==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.88.0 + '@jsii/check-node': 1.91.0 + '@jsii/spec': 1.91.0 + chalk: 4.1.2 + fs-extra: 10.1.0 + oo-ascii-tree: 1.91.0 + yargs: 16.2.0 + dev: true + + /jsii-rosetta@1.91.0: + resolution: {integrity: sha512-v8eW/XiJHklnkmTtCIbyAeDPUVfovU/ZNh1ixvGri/ps5H3iRRpLEmqGJGMm2IEIjNCSmnmIsDMQLw20/7Nu+Q==} + engines: {node: '>= 14.17.0'} + hasBin: true + dependencies: + '@jsii/check-node': 1.91.0 + '@jsii/spec': 1.91.0 '@xmldom/xmldom': 0.8.10 commonmark: 0.30.0 fast-glob: 3.3.1 - jsii: 1.88.0 + jsii: 1.91.0 semver: 7.5.4 semver-intersect: 1.4.0 stream-json: 1.8.0 typescript: 3.9.10 - workerpool: 6.4.2 + workerpool: 6.5.1 yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: true - /jsii@1.88.0: - resolution: {integrity: sha512-WKfwHbcEI/j5OYDPexvkH8KKDcTZR7tIBFNTxu8h1Nh3G8xFT4hh3pObUUSMRCa6rsSF9EHGjS+AKC+TfpFGrQ==} + /jsii@1.91.0: + resolution: {integrity: sha512-dJ2FbnUfX5Eg9BdZx6Cz2JhDsvzGi2DoQeomzdjO9ltvVUouAFPWkpcUtJdLXaNmHQtPM4/I+AzelUX7w2mWVw==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.88.0 + '@jsii/check-node': 1.91.0 + '@jsii/spec': 1.91.0 case: 1.6.3 chalk: 4.1.2 fast-deep-equal: 3.1.3 @@ -9699,20 +9888,20 @@ packages: semver: 7.5.4 semver-intersect: 1.4.0 sort-json: 2.0.1 - spdx-license-list: 6.6.0 + spdx-license-list: 6.8.0 typescript: 3.9.10 yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: true - /jsii@5.1.12: - resolution: {integrity: sha512-iY3zLosUEKbeua6IAGJXjFxibiiI0xHFjyYPyewOc56MBRHC7nczWSVGRP+Jgwyo7HWXs4TvJKLG6w8zSuAZrg==} + /jsii@5.2.24: + resolution: {integrity: sha512-QmFQcOHfitMgxLeyCtx3LJc46Q6uc00gjz8BTC72cGqpJebA4sfOcx6ACHJSjSAcBsGp+lck5IrthkZyYZDcew==} engines: {node: '>= 16.14.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.88.0 + '@jsii/check-node': 1.91.0 + '@jsii/spec': 1.91.0 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 @@ -9721,8 +9910,8 @@ packages: semver: 7.5.4 semver-intersect: 1.4.0 sort-json: 2.0.1 - spdx-license-list: 6.6.0 - typescript: 5.1.6 + spdx-license-list: 6.8.0 + typescript: 5.2.2 yargs: 17.7.2 transitivePeerDependencies: - supports-color @@ -9819,9 +10008,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsonschema@1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - /jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} @@ -9846,6 +10032,12 @@ packages: json-buffer: 3.0.1 dev: true + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -9952,7 +10144,7 @@ packages: slash: 3.0.0 ssri: 9.0.1 strong-log-transformer: 2.1.0 - tar: 4.4.19 + tar: 6.1.11 temp-dir: 1.0.0 typescript: 4.9.5 upath: 2.0.1 @@ -10019,7 +10211,7 @@ packages: hasBin: true dependencies: chalk: 2.4.2 - debug: 2.6.9 + debug: 3.2.7 mkdirp: 0.5.6 nopt: 4.0.3 read-installed: 4.0.3 @@ -10157,6 +10349,7 @@ packages: /lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -10189,7 +10382,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 2.6.9 + debug: 4.3.4 flatted: 3.2.7 rfdc: 1.3.0 streamroller: 3.1.5 @@ -10206,6 +10399,11 @@ packages: engines: {node: '>=8'} dev: true + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -10426,6 +10624,11 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + /mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -10478,6 +10681,10 @@ packages: kind-of: 6.0.3 dev: true + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -10608,6 +10815,10 @@ packages: /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -10737,7 +10948,7 @@ packages: npmlog: 6.0.2 rimraf: 3.0.2 semver: 7.5.4 - tar: 4.4.19 + tar: 6.2.0 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -10769,7 +10980,7 @@ packages: request: 2.88.2 rimraf: 2.7.1 semver: 5.7.1 - tar: 4.4.19 + tar: 2.2.2 which: 1.3.1 transitivePeerDependencies: - supports-color @@ -10864,6 +11075,11 @@ packages: engines: {node: '>=10'} dev: true + /normalize-url@8.0.0: + resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + engines: {node: '>=14.16'} + dev: true + /npm-bundled@1.1.2: resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} dependencies: @@ -10877,8 +11093,8 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /npm-check-updates@16.13.2: - resolution: {integrity: sha512-0pQI+k1y0JVwenB2gBc69tXFYfkckSVrNrlcn7TIrZfis4LnfdzakY/LYzZKt/lx37edN2isk3d2Zw4csptu/w==} + /npm-check-updates@16.14.6: + resolution: {integrity: sha512-sJ6w4AmSDP7YzBXah94Ul2JhiIbjBDfx9XYgib15um2wtiQkOyjE7Lov3MNUSQ84Ry7T81mE4ynMbl/mGbK4HQ==} engines: {node: '>=14.14'} hasBin: true dependencies: @@ -10887,7 +11103,7 @@ packages: commander: 10.0.1 fast-memoize: 2.5.2 find-up: 5.0.0 - fp-and-or: 0.1.3 + fp-and-or: 0.1.4 get-stdin: 8.0.0 globby: 11.1.0 hosted-git-info: 5.2.1 @@ -10905,11 +11121,12 @@ packages: prompts-ncu: 3.0.0 rc-config-loader: 4.1.3 remote-git-tags: 3.0.0 - rimraf: 5.0.1 + rimraf: 5.0.5 semver: 7.5.4 semver-utils: 1.1.4 source-map-support: 0.5.21 - spawn-please: 2.0.1 + spawn-please: 2.0.2 + strip-ansi: 7.1.0 strip-json-comments: 5.0.1 untildify: 4.0.0 update-notifier: 6.0.2 @@ -11127,15 +11344,15 @@ packages: request: 2.88.2 rimraf: 2.7.1 semver: 5.3.0 - tar: 4.4.19 + tar: 2.2.2 which: 1.3.1 dev: true - /nx-cloud@16.3.0: - resolution: {integrity: sha512-hmNgpeLO4v4WDSWa8YhwX+q+9ohIyY8iqxlWyIKixWzQH2XfRgYFjOLH4IDLGOlKa3hg7MB6+4+75cK9CfSmKw==} + /nx-cloud@16.5.2: + resolution: {integrity: sha512-1t1Ii9gojl8r/8hFGaZ/ZyYR0Cb0hzvXLCsaFuvg+EJEFdvua3P4cfNya/0bdRrm+7Eb/ITUOskbvYq4TSlyGg==} hasBin: true dependencies: - '@nrwl/nx-cloud': 16.3.0 + '@nrwl/nx-cloud': 16.5.2 axios: 1.1.3 chalk: 4.1.2 dotenv: 10.0.0 @@ -11143,7 +11360,7 @@ packages: node-machine-id: 1.1.12 open: 8.4.2 strip-json-comments: 3.1.1 - tar: 4.4.19 + tar: 6.1.11 yargs-parser: 21.1.1 transitivePeerDependencies: - debug @@ -11281,8 +11498,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true /object-keys@1.1.1: @@ -11294,37 +11511,37 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 dev: true - /object.groupby@1.0.0: - resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 get-intrinsic: 1.2.1 dev: true - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 dev: true /once@1.4.0: @@ -11343,6 +11560,11 @@ packages: engines: {node: '>= 14.17.0'} dev: true + /oo-ascii-tree@1.91.0: + resolution: {integrity: sha512-pH4FFNLTO8VG+vNUm4AHmhLNjoSfQlO1UKIrzBGdeScppY785D93GVMH1XkCwbuO7pd9rrh6El5WF3a5QNvaww==} + engines: {node: '>= 14.17.0'} + dev: true + /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -11411,6 +11633,11 @@ packages: engines: {node: '>=8'} dev: true + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + dev: true + /p-defer@1.0.0: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} @@ -11518,7 +11745,7 @@ packages: resolution: {integrity: sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==} engines: {node: '>=14.16'} dependencies: - got: 11.8.6 + got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.5.4 @@ -11546,7 +11773,7 @@ packages: read-package-json-fast: 3.0.2 sigstore: 1.4.0 ssri: 10.0.4 - tar: 4.4.19 + tar: 6.1.11 transitivePeerDependencies: - bluebird - supports-color @@ -11574,7 +11801,7 @@ packages: read-package-json-fast: 3.0.2 sigstore: 1.4.0 ssri: 10.0.4 - tar: 4.4.19 + tar: 6.2.0 transitivePeerDependencies: - bluebird - supports-color @@ -11672,6 +11899,14 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 9.1.1 + minipass: 5.0.0 + dev: true + /path-scurry@1.7.0: resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} engines: {node: '>=16 || 14 >=14.17'} @@ -11836,17 +12071,17 @@ packages: react-is: 18.2.0 dev: true - /pretty-format@29.5.0: - resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} + /pretty-format@29.6.3: + resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.4.3 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true - /pretty-format@29.6.3: - resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 @@ -11882,7 +12117,7 @@ packages: engines: {node: '>=0.4.0'} dev: true - /projen@0.76.15(constructs@10.2.70): + /projen@0.76.15(constructs@10.3.0): resolution: {integrity: sha512-Ez1w2KlmzAtiYg9aIm7NFD56hafFgnGnYcZc60GzT6AEFPEDWPX1lGrngAibDnEys3iDsIimreyVIV77KVqoAg==} engines: {node: '>= 16.0.0'} hasBin: true @@ -11893,7 +12128,7 @@ packages: case: 1.6.3 chalk: 4.1.2 comment-json: 4.2.2 - constructs: 10.2.70 + constructs: 10.3.0 conventional-changelog-config-spec: 2.1.0 fast-json-patch: 3.1.1 glob: 8.1.0 @@ -12032,7 +12267,7 @@ packages: /rc-config-loader@4.1.3: resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} dependencies: - debug: 2.6.9 + debug: 4.3.4 js-yaml: 4.1.0 json5: 2.2.3 require-from-string: 2.0.2 @@ -12044,7 +12279,7 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true dependencies: - deep-extend: 0.5.1 + deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 @@ -12115,7 +12350,7 @@ packages: resolution: {integrity: sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - glob: 10.2.6 + glob: 10.3.10 json-parse-even-better-errors: 3.0.0 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 @@ -12263,13 +12498,13 @@ packages: engines: {node: '>=6'} dev: true - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.0 - functions-have-names: 1.2.3 + set-function-name: 2.0.1 dev: true /registry-auth-token@5.0.2: @@ -12399,6 +12634,13 @@ packages: lowercase-keys: 2.0.0 dev: true + /responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + dependencies: + lowercase-keys: 3.0.0 + dev: true + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -12445,12 +12687,12 @@ packages: glob: 9.3.5 dev: true - /rimraf@5.0.1: - resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.6 + glob: 10.3.10 dev: true /rsvp@3.6.2: @@ -12479,6 +12721,16 @@ packages: tslib: 2.5.0 dev: true + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true @@ -12498,8 +12750,8 @@ packages: /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-regex: 1.1.4 dev: true @@ -12590,6 +12842,25 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true @@ -12601,8 +12872,8 @@ packages: kind-of: 6.0.3 dev: true - /sharp@0.32.5: - resolution: {integrity: sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==} + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} engines: {node: '>=14.15.0'} requiresBuild: true dependencies: @@ -12649,9 +12920,9 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 dev: true /signal-exit@3.0.7: @@ -12709,6 +12980,7 @@ packages: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 + dev: true /slide@1.1.6: resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} @@ -12724,7 +12996,7 @@ packages: engines: {node: '>= 10'} dependencies: agent-base: 6.0.2 - debug: 2.6.9 + debug: 4.3.4 socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -12793,8 +13065,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /spawn-please@2.0.1: - resolution: {integrity: sha512-W+cFbZR2q2mMTfjz5ZGvhBAiX+e/zczFCNlbS9mxiSdYswBXwUuBUT+a0urH+xZZa8f/bs0mXHyZsZHR9hKogA==} + /spawn-please@2.0.2: + resolution: {integrity: sha512-KM8coezO6ISQ89c1BzyWNtcn2V2kAVtwIXd3cN/V5a0xPYc1F/vydrRc01wsKFEQ/p+V1a4sw4z2yMITIXrgGw==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -12826,8 +13098,8 @@ packages: /spdx-license-ids@3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - /spdx-license-list@6.6.0: - resolution: {integrity: sha512-vLwdf9AWgdJQmG8cai2HKfkInFsliKaCCOwXmdVonClIhdURTX61KdDOoXC1qcQ7gDaZj+CUTcrMJeAdnCtrKA==} + /spdx-license-list@6.8.0: + resolution: {integrity: sha512-5UdM7r9yJ1EvsPQZWfa41AZjLQngl9iMMysm9XBW7Lqhq7aF8cllfqjS+rFCHB8FFMGSM0yFWue2LUV9mR0QzQ==} engines: {node: '>=8'} dev: true @@ -12917,7 +13189,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 2.6.9 + debug: 4.3.4 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -12963,36 +13235,36 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /string.prototype.repeat@0.2.0: resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} dev: true - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.3 dev: true /string_decoder@0.10.31: @@ -13014,7 +13286,7 @@ packages: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} dependencies: - ansi-regex: 5.0.1 + ansi-regex: 2.1.1 dev: true /strip-ansi@6.0.1: @@ -13023,11 +13295,11 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: - ansi-regex: 5.0.1 + ansi-regex: 6.0.1 dev: true /strip-bom@3.0.0: @@ -13134,7 +13406,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: array-back: 4.0.2 - deep-extend: 0.5.1 + deep-extend: 0.6.0 typical: 5.2.0 wordwrapjs: 4.0.1 dev: true @@ -13148,6 +13420,7 @@ packages: slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -13186,6 +13459,15 @@ packages: fast-fifo: 1.3.2 streamx: 2.15.1 + /tar@2.2.2: + resolution: {integrity: sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==} + deprecated: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. + dependencies: + block-stream: 0.0.9 + fstream: 1.0.12 + inherits: 2.0.4 + dev: true + /tar@4.4.19: resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} engines: {node: '>=4.5'} @@ -13199,6 +13481,30 @@ packages: yallist: 3.1.1 dev: true + /tar@6.1.11: + resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} + engines: {node: '>= 10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.3.6 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + /temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} @@ -13371,11 +13677,11 @@ packages: typescript: 5.2.2 dev: true - /ts-command-line-args@2.4.2(jest@29.6.4)(typescript@5.2.2): + /ts-command-line-args@2.4.2(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==} hasBin: true dependencies: - '@morgan-stanley/ts-mocking-bird': 0.6.4(jest@29.6.4)(typescript@5.2.2) + '@morgan-stanley/ts-mocking-bird': 0.6.4(jest@29.7.0)(typescript@5.2.2) chalk: 4.1.2 command-line-args: 5.2.1 command-line-usage: 6.1.3 @@ -13391,7 +13697,7 @@ packages: engines: {node: '>=14.16'} dev: false - /ts-jest@29.1.1(@babel/core@7.21.8)(jest@29.6.4)(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.21.8)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -13415,7 +13721,7 @@ packages: '@babel/core': 7.21.8 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.4(@types/node@16.18.25)(ts-node@10.9.1) + jest: 29.7.0(@types/node@16.18.25)(ts-node@10.9.1) jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -13455,7 +13761,7 @@ packages: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - /ts-node@10.9.1(@types/node@20.4.7)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.5.1)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -13474,7 +13780,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.4.7 + '@types/node': 20.5.1 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 @@ -13599,12 +13905,42 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typedarray-to-buffer@3.1.5: @@ -13629,12 +13965,6 @@ packages: hasBin: true dev: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -13667,7 +13997,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -13866,7 +14196,6 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: builtins: 5.0.1 - dev: true /validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} @@ -13921,16 +14250,15 @@ packages: is-symbol: 1.0.4 dev: true - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: true /which@1.3.1: @@ -13990,8 +14318,8 @@ packages: typical: 5.2.0 dev: true - /workerpool@6.4.2: - resolution: {integrity: sha512-MrDWwemtC4xNV22kbbZDQQQmxNX+yLm790sgYl2wVD3CWnK7LJY1youI/11wHorAjHjK+GEjUxUh74XoPU71uQ==} + /workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} dev: true /wrap-ansi@7.0.0: @@ -14139,6 +14467,7 @@ packages: /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + dev: true /yaml@2.3.3: resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} diff --git a/projenrc/projects/pdk-monorepo-project.ts b/projenrc/projects/pdk-monorepo-project.ts index d472f313f..3e7fb02d1 100644 --- a/projenrc/projects/pdk-monorepo-project.ts +++ b/projenrc/projects/pdk-monorepo-project.ts @@ -1,6 +1,5 @@ /*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ -import path from "path"; import { Project } from "projen"; import { NodePackageManager, NodeProject } from "projen/lib/javascript"; import { MonorepoTsProject, DEFAULT_CONFIG } from "../../packages/monorepo/src"; @@ -163,32 +162,14 @@ export class PDKMonorepoProject extends MonorepoTsProject { } /** - * Uses a local maven repository when packaging for java. This significantly improves peformance as the default behaviour - * is to create a new tmp cache and re-download all dependencies. - * - * This logic will by default attempt to symlink in the user .m2 repository if it exists. Otherwise a fresh repository - * will be created in node_modules/.cache/.m2/repository. - * - * This also configures pnpm as the pack command. + * Updates the java package task to use the pack command. * * @param project project to update. */ const updateJavaPackageTask = (project: Project): void => { - const defaultM2 = "~/.m2/repository"; - const localM2Root = path.relative( - project.outdir, - path.join(process.cwd(), "node_modules/.cache/.m2") - ); - const localM2Repository = path.join(localM2Root, "repository"); - const javaTask = project.tasks.tryFind("package:java"); - - javaTask?.reset(); - javaTask?.exec( - `[ -d ${defaultM2} ] && [ ! -d "${localM2Repository}" ] && mkdir -p ${localM2Root} && ln -s ${defaultM2} ${localM2Repository} || true` - ); - javaTask?.exec( - `jsii-pacmak -v --target java --maven-local-repository=${localM2Repository} --pack-command='pnpm pack'` - ); + project.tasks + .tryFind("package:java") + ?.reset("jsii-pacmak -v --target java --pack-command='pnpm pack'"); }; /** @@ -221,20 +202,20 @@ const updatePythonPackageTask = (project: Project): void => { const resolveDependencies = (project: any): void => { // resolutions if (project instanceof NodeProject || project.package) { - project.package.addPackageResolutions( - "@types/prettier@2.6.0", - "ansi-regex@^5.0.1", - "underscore@^1.12.1", - "deep-extend@^0.5.1", - "argparse@^1.0.10", - "debug@^2.6.9", - "minimist@^1.2.6", - "ejs@^3.1.7", - "async@^2.6.4", - "nth-check@^2.0.1", - "got@^11.8.5", - "@types/yargs@17.0.10", - "tar@^4.4.18" - ); + // project.package.addPackageResolutions( + // "@types/prettier@2.6.0", + // "ansi-regex@^5.0.1", + // "underscore@^1.12.1", + // "deep-extend@^0.5.1", + // "argparse@^1.0.10", + // "debug@^2.6.9", + // "minimist@^1.2.6", + // "ejs@^3.1.7", + // "async@^2.6.4", + // "nth-check@^2.0.1", + // "got@^11.8.5", + // "@types/yargs@17.0.10", + // "tar@^4.4.18" + // ); } };