From 3375244080161276b9d29281fc74b7782d748818 Mon Sep 17 00:00:00 2001 From: Masashi Tomooka Date: Thu, 25 Sep 2025 14:35:13 +0900 Subject: [PATCH] upgrade typescript --- cdk/package-lock.json | 3915 ++++++++++------- cdk/package.json | 6 +- ...pp-starter-kit-without-domain.test.ts.snap | 2610 +++++------ ...-fullstack-webapp-starter-kit.test.ts.snap | 2454 +++++------ 4 files changed, 4738 insertions(+), 4247 deletions(-) diff --git a/cdk/package-lock.json b/cdk/package-lock.json index 014b088..1a7db61 100644 --- a/cdk/package-lock.json +++ b/cdk/package-lock.json @@ -23,25 +23,11 @@ "@types/prettier": "2.6.0", "aws-cdk": "^2.1007.0", "esbuild": "^0.25.4", - "jest": "^27.5.1", + "jest": "^30.1.3", "prettier": "^3.5.3", - "ts-jest": "^27.1.4", + "ts-jest": "^29.4.4", "ts-node": "^10.7.0", - "typescript": "~4.8.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" + "typescript": "^5.9.2" } }, "node_modules/@aws-appsync/utils": { @@ -747,9 +733,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, "license": "MIT", "engines": { @@ -757,22 +743,22 @@ } }, "node_modules/@babel/core": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", - "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helpers": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -787,24 +773,17 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -828,6 +807,16 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -843,15 +832,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -901,27 +890,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -1027,6 +1016,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -1169,28 +1174,28 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1232,6 +1237,40 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@emnapi/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.4", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", @@ -1657,6 +1696,24 @@ "node": ">=18" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1685,61 +1742,61 @@ } }, "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.1.2.tgz", + "integrity": "sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "30.0.5", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "chalk": "^4.1.2", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.1.3.tgz", + "integrity": "sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "30.1.2", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.1.3", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.0.5", + "jest-config": "30.1.3", + "jest-haste-map": "30.1.0", + "jest-message-util": "30.1.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-resolve-dependencies": "30.1.3", + "jest-runner": "30.1.3", + "jest-runtime": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "jest-watcher": "30.1.3", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", + "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -1750,90 +1807,185 @@ } } }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.1.2.tgz", + "integrity": "sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "jest-mock": "^27.5.1" + "jest-mock": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.1.2.tgz", + "integrity": "sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "30.1.2", + "jest-snapshot": "30.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz", + "integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.1.2.tgz", + "integrity": "sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", + "@jest/types": "30.0.5", + "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.1.2.tgz", + "integrity": "sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "@jest/environment": "30.1.2", + "@jest/expect": "30.1.2", + "@jest/types": "30.0.5", + "jest-mock": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.1.3.tgz", + "integrity": "sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", + "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "jest-worker": "30.1.0", "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -1844,126 +1996,154 @@ } } }, + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.1.2.tgz", + "integrity": "sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.1.3.tgz", + "integrity": "sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@jest/console": "30.1.2", + "@jest/types": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.1.3.tgz", + "integrity": "sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "@jest/test-result": "30.1.3", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.1.2.tgz", + "integrity": "sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", + "@babel/core": "^7.27.4", + "@jest/types": "30.0.5", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.0", + "chalk": "^4.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.0.5", + "micromatch": "^4.0.8", + "pirates": "^4.0.7", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^5.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", + "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1978,9 +2158,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1988,10 +2168,54 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.34.41", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", + "dev": true, + "license": "MIT" + }, "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1999,13 +2223,13 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.1" } }, "node_modules/@smithy/abort-controller": { @@ -2578,16 +2802,6 @@ "node": ">=18.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -2616,6 +2830,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/aws-lambda": { "version": "8.10.149", "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.149.tgz", @@ -2658,23 +2883,13 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "@babel/types": "^7.28.2" } }, "node_modules/@types/istanbul-lib-coverage": { @@ -2746,9 +2961,9 @@ "license": "MIT" }, "node_modules/@types/yargs": { - "version": "16.0.9", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", - "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", "dependencies": { @@ -2762,72 +2977,293 @@ "dev": true, "license": "MIT" }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "dev": true, - "license": "BSD-3-Clause" + "license": "ISC" }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { - "node": ">=0.4.0" + "node": ">=14.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=0.4.0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "debug": "4" + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">= 6.0.0" + "node": ">=0.4.0" } }, "node_modules/ansi-escapes": { @@ -2903,13 +3339,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/aws-cdk": { "version": "2.1016.1", "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1016.1.tgz", @@ -3277,65 +3706,66 @@ } }, "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.1.2.tgz", + "integrity": "sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", + "@jest/transform": "30.1.2", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.0", + "babel-preset-jest": "30.0.1", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.8.0" + "@babel/core": "^7.11.0" } }, "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", "test-exclude": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", + "integrity": "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "@types/babel__core": "^7.20.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "license": "MIT", "dependencies": { @@ -3356,24 +3786,24 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", + "integrity": "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" + "babel-plugin-jest-hoist": "30.0.1", + "babel-preset-current-node-syntax": "^1.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.11.0" } }, "node_modules/balanced-match": { @@ -3383,6 +3813,16 @@ "dev": true, "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", + "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/bowser": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", @@ -3390,13 +3830,13 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -3412,17 +3852,10 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "version": "4.26.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", + "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", "dev": true, "funding": [ { @@ -3440,9 +3873,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", - "node-releases": "^2.0.19", + "baseline-browser-mapping": "^2.8.3", + "caniuse-lite": "^1.0.30001741", + "electron-to-chromium": "^1.5.218", + "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { @@ -3481,20 +3915,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3516,9 +3936,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "version": "1.0.30001743", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz", + "integrity": "sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==", "dev": true, "funding": [ { @@ -3574,9 +3994,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", + "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", "dev": true, "funding": [ { @@ -3590,75 +4010,118 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz", + "integrity": "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==", "dev": true, "license": "MIT" }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">=12" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.8" + "node": ">=7.0.0" } }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3673,9 +4136,9 @@ "license": "Apache-2.0" }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, @@ -3701,52 +4164,10 @@ "node": ">= 8" } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -3761,19 +4182,20 @@ } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "dev": true, - "license": "MIT" - }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deepmerge": { "version": "4.3.1", @@ -3785,16 +4207,6 @@ "node": ">=0.10.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/deploy-time-build": { "version": "0.3.32", "resolved": "https://registry.npmjs.org/deploy-time-build/-/deploy-time-build-0.3.32.tgz", @@ -3835,131 +4247,50 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.155", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz", - "integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==", + "version": "1.5.223", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.223.tgz", + "integrity": "sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==", "dev": true, "license": "ISC" }, "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/esbuild": { "version": "0.25.4", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", @@ -4021,28 +4352,6 @@ "node": ">=8" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -4057,26 +4366,6 @@ "node": ">=4" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -4101,31 +4390,108 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz", + "integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "@jest/expect-utils": "30.1.2", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/node_modules/jest-diff": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", + "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", + "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.1.2", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/expect/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4188,21 +4554,21 @@ "node": ">=8" } }, - "node_modules/form-data": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", - "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.35" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 6" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/fs.realpath": { @@ -4227,16 +4593,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -4257,55 +4613,16 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -4320,50 +4637,26 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -4371,69 +4664,36 @@ "dev": true, "license": "ISC" }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">= 0.4" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/html-escaper": { @@ -4443,35 +4703,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -4482,19 +4713,6 @@ "node": ">=10.17.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -4551,22 +4769,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -4597,13 +4799,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -4617,13 +4812,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -4642,20 +4830,33 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/istanbul-lib-report": { @@ -4674,24 +4875,24 @@ } }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "istanbul-lib-coverage": "^3.0.0" }, "engines": { "node": ">=10" } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4702,22 +4903,39 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.1.3.tgz", + "integrity": "sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" + "@jest/core": "30.1.3", + "@jest/types": "30.0.5", + "import-local": "^3.2.0", + "jest-cli": "30.1.3" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -4729,76 +4947,142 @@ } }, "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.0.5.tgz", + "integrity": "sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" + "execa": "^5.1.1", + "jest-util": "30.0.5", + "p-limit": "^3.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.1.3.tgz", + "integrity": "sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "30.1.2", + "@jest/expect": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", "@types/node": "*", - "chalk": "^4.0.0", + "chalk": "^4.1.2", "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.1.0", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-runtime": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", + "p-limit": "^3.1.0", + "pretty-format": "30.0.5", + "pure-rand": "^7.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "stack-utils": "^2.0.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", + "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", + "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.1.2", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.1.3.tgz", + "integrity": "sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" + "@jest/core": "30.1.3", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.1.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "yargs": "^17.7.2" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -4810,49 +5094,92 @@ } }, "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.1.3.tgz", + "integrity": "sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.1.3", + "@jest/types": "30.0.5", + "babel-jest": "30.1.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-circus": "30.1.3", + "jest-docblock": "30.0.1", + "jest-environment-node": "30.1.2", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-runner": "30.1.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "micromatch": "^4.0.8", "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", + "pretty-format": "30.0.5", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { + "@types/node": "*", + "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, "ts-node": { "optional": true } } }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-diff": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", @@ -4870,70 +5197,87 @@ } }, "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.0.1.tgz", + "integrity": "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==", "dev": true, "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "detect-newline": "^3.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.1.0.tgz", + "integrity": "sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" + "@jest/get-type": "30.1.0", + "@jest/types": "30.0.5", + "chalk": "^4.1.2", + "jest-util": "30.0.5", + "pretty-format": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.1.2.tgz", + "integrity": "sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-mock": "30.0.5", + "jest-util": "30.0.5", + "jest-validate": "30.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-get-type": { @@ -4947,75 +5291,94 @@ } }, "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.1.0.tgz", + "integrity": "sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.0.5", + "jest-worker": "30.1.0", + "micromatch": "^4.0.8", + "walker": "^1.0.8" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "optionalDependencies": { - "fsevents": "^2.3.2" + "fsevents": "^2.3.3" } }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "node_modules/jest-haste-map/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.1.0.tgz", + "integrity": "sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" + "@jest/get-type": "30.1.0", + "pretty-format": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", "dev": true, "license": "MIT", "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-matcher-utils": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", @@ -5033,38 +5396,74 @@ } }, "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", + "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.0.5", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "stack-utils": "^2.0.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", + "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-util": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-pnp-resolver": { @@ -5086,167 +5485,228 @@ } }, "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.1.3.tgz", + "integrity": "sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.1.3.tgz", + "integrity": "sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.1.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.1.3.tgz", + "integrity": "sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "30.1.2", + "@jest/environment": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.0.1", + "jest-environment-node": "30.1.2", + "jest-haste-map": "30.1.0", + "jest-leak-detector": "30.1.0", + "jest-message-util": "30.1.0", + "jest-resolve": "30.1.3", + "jest-runtime": "30.1.3", + "jest-util": "30.0.5", + "jest-watcher": "30.1.3", + "jest-worker": "30.1.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.1.3.tgz", + "integrity": "sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/globals": "30.1.2", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "node_modules/jest-snapshot": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.1.2.tgz", + "integrity": "sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.1.2", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.1.2", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "babel-preset-current-node-syntax": "^1.1.0", + "chalk": "^4.1.2", + "expect": "30.1.2", + "graceful-fs": "^4.2.11", + "jest-diff": "30.1.2", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "pretty-format": "30.0.5", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", + "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", + "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.1.2", + "pretty-format": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -5261,39 +5721,65 @@ } }, "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", + "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "30.0.5", "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.1.0.tgz", + "integrity": "sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", + "@jest/get-type": "30.1.0", + "@jest/types": "30.0.5", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "pretty-format": "30.0.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-validate/node_modules/camelcase": { @@ -5309,38 +5795,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.1.3.tgz", + "integrity": "sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.0.5", + "string-length": "^4.0.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.1.0.tgz", + "integrity": "sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.0.5", "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "supports-color": "^8.1.1" }, "engines": { - "node": ">= 10.13.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker/node_modules/supports-color": { @@ -5380,53 +5891,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -5460,16 +5924,6 @@ "node": ">=6" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -5500,13 +5954,6 @@ "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -5570,16 +6017,6 @@ "tmpl": "1.0.5" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5601,50 +6038,50 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "mime-db": "1.52.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" } }, "node_modules/ms": { @@ -5654,6 +6091,22 @@ "dev": true, "license": "MIT" }, + "node_modules/napi-postinstall": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", + "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -5661,6 +6114,13 @@ "dev": true, "license": "MIT" }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5669,9 +6129,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", "dev": true, "license": "MIT" }, @@ -5698,13 +6158,6 @@ "node": ">=8" } }, - "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", - "dev": true, - "license": "MIT" - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -5732,16 +6185,16 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5760,6 +6213,22 @@ "node": ">=8" } }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -5770,6 +6239,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5789,13 +6265,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, - "license": "MIT" - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5826,12 +6295,29 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "MIT" + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" }, "node_modules/picocolors": { "version": "1.1.1", @@ -5920,48 +6406,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], "license": "MIT" }, "node_modules/react-is": { @@ -5981,34 +6440,6 @@ "node": ">=0.10.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -6032,53 +6463,6 @@ "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -6113,18 +6497,17 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/slash": { "version": "3.0.0", @@ -6189,7 +6572,39 @@ "node": ">=10" } }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -6204,7 +6619,44 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -6217,6 +6669,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -6275,79 +6740,83 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "@pkgr/core": "^0.2.9" }, "engines": { - "node": ">=8" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true, - "license": "MIT" - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -6368,69 +6837,46 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ts-jest": { - "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", + "version": "29.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.4.tgz", + "integrity": "sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==", "dev": true, "license": "MIT", "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.2", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { "@babel/core": { "optional": true }, - "@types/jest": { + "@jest/transform": { + "optional": true + }, + "@jest/types": { "optional": true }, "babel-jest": { @@ -6438,6 +6884,9 @@ }, "esbuild": { "optional": true + }, + "jest-util": { + "optional": true } } }, @@ -6454,6 +6903,19 @@ "node": ">=10" } }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -6540,20 +7002,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6561,7 +7013,21 @@ "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, "node_modules/undici-types": { @@ -6571,14 +7037,39 @@ "dev": true, "license": "MIT" }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "engines": { - "node": ">= 4.0.0" + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "node_modules/update-browserslist-db": { @@ -6612,17 +7103,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -6644,54 +7124,20 @@ "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -6702,48 +7148,6 @@ "makeerror": "1.0.12" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6760,7 +7164,33 @@ "node": ">= 8" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", @@ -6778,61 +7208,74 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8.3.0" + "dependencies": { + "ansi-regex": "^5.0.1" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, - "license": "Apache-2.0" + "license": "ISC" }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/y18n": { "version": "5.0.8", @@ -6852,32 +7295,67 @@ "license": "ISC" }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/yn": { @@ -6889,6 +7367,19 @@ "engines": { "node": ">=6" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/cdk/package.json b/cdk/package.json index e6a293b..66a7b4f 100644 --- a/cdk/package.json +++ b/cdk/package.json @@ -16,11 +16,11 @@ "@types/prettier": "2.6.0", "aws-cdk": "^2.1007.0", "esbuild": "^0.25.4", - "jest": "^27.5.1", + "jest": "^30.1.3", "prettier": "^3.5.3", - "ts-jest": "^27.1.4", + "ts-jest": "^29.4.4", "ts-node": "^10.7.0", - "typescript": "~4.8.0" + "typescript": "^5.9.2" }, "dependencies": { "@aws-appsync/utils": "^1.12.0", diff --git a/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit-without-domain.test.ts.snap b/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit-without-domain.test.ts.snap index 786d035..437e0f3 100644 --- a/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit-without-domain.test.ts.snap +++ b/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit-without-domain.test.ts.snap @@ -1,28 +1,28 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`Snapshot test 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A": Object { - "DependsOn": Array [ + "Resources": { + "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A": { + "DependsOn": [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-east-1", "S3Key": "REDACTED", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", "Arn", ], @@ -32,44 +32,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:DeleteParameters", "ssm:ListTagsForResource", "ssm:GetParameters", "ssm:PutParameter", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-west-2:123456789012:parameter/cdk/exports/*", @@ -87,18 +87,18 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ExportsWriteruswest209BD44F0A7CF058B": Object { + "ExportsWriteruswest209BD44F0A7CF058B": { "DeletionPolicy": "Delete", - "Properties": Object { - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A", "Arn", ], }, - "WriterProps": Object { - "exports": Object { - "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA": Object { + "WriterProps": { + "exports": { + "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA": { "Ref": "SignPayloadHandlerFunctionVersionF9FE430A", }, }, @@ -108,18 +108,18 @@ Object { "Type": "Custom::CrossRegionExportWriter", "UpdateReplacePolicy": "Delete", }, - "SignPayloadHandlerCFEAA14C": Object { - "DependsOn": Array [ + "SignPayloadHandlerCFEAA14C": { + "DependsOn": [ "SignPayloadHandlerServiceRole29261232", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-east-1", "S3Key": "REDACTED", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SignPayloadHandlerServiceRole29261232", "Arn", ], @@ -128,51 +128,51 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SignPayloadHandlerCurrentVersionREDACTED": Object { - "Properties": Object { - "FunctionName": Object { + "SignPayloadHandlerCurrentVersionREDACTED": { + "Properties": { + "FunctionName": { "Ref": "SignPayloadHandlerCFEAA14C", }, }, "Type": "AWS::Lambda::Version", }, - "SignPayloadHandlerFunctionVersionF9FE430A": Object { - "Properties": Object { + "SignPayloadHandlerFunctionVersionF9FE430A": { + "Properties": { "Type": "String", - "Value": Object { + "Value": { "Ref": "SignPayloadHandlerCurrentVersionREDACTED", }, }, "Type": "AWS::SSM::Parameter", }, - "SignPayloadHandlerServiceRole29261232": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SignPayloadHandlerServiceRole29261232": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, - Object { + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "edgelambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -184,22 +184,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -215,29 +215,29 @@ Object { `; exports[`Snapshot test 2`] = ` -Object { +{ "Description": "Serverless fullstack webapp stack (uksb-1tupboc47)", - "Outputs": Object { - "AsyncJobHandlerArnCA46B385": Object { - "Value": Object { - "Fn::GetAtt": Array [ + "Outputs": { + "AsyncJobHandlerArnCA46B385": { + "Value": { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, }, - "AuthUserPoolClientId8216BF9A": Object { - "Value": Object { + "AuthUserPoolClientId8216BF9A": { + "Value": { "Ref": "AuthUserPoolClientC635291F", }, }, - "AuthUserPoolDomainName8D4A2606": Object { - "Value": Object { - "Fn::Join": Array [ + "AuthUserPoolDomainName8D4A2606": { + "Value": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AuthDomainPrefixE1742B23", "generated", ], @@ -247,40 +247,40 @@ Object { ], }, }, - "AuthUserPoolIdC0605E59": Object { - "Value": Object { + "AuthUserPoolIdC0605E59": { + "Value": { "Ref": "AuthUserPool8115E87F", }, }, - "DatabaseBastionHostBastionHostId1600F37C": Object { + "DatabaseBastionHostBastionHostId1600F37C": { "Description": "Instance ID of the bastion host. Use this to connect via SSM Session Manager", - "Value": Object { + "Value": { "Ref": "DatabaseBastionHost4C4FAD9C", }, }, - "DatabaseDatabaseSecretsCommandF4A622EB": Object { - "Value": Object { - "Fn::Join": Array [ + "DatabaseDatabaseSecretsCommandF4A622EB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "aws secretsmanager get-secret-value --secret-id ", - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "-", - Array [ - Object { - "Fn::Select": Array [ + [ + { + "Fn::Select": [ 0, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "-", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 6, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ], @@ -291,19 +291,19 @@ Object { }, ], }, - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 1, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "-", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 6, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ], @@ -322,32 +322,32 @@ Object { ], }, }, - "DatabasePortForwardCommandC3718B89": Object { - "Value": Object { - "Fn::Join": Array [ + "DatabasePortForwardCommandC3718B89": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "aws ssm start-session --region us-west-2 --target ", - Object { + { "Ref": "DatabaseBastionHost4C4FAD9C", }, " --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"portNumber":["", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, ""], "localPortNumber":["", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, ""], "host": ["", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], @@ -357,14 +357,14 @@ Object { ], }, }, - "EventBusHttpEndpoint1C68A807": Object { - "Value": Object { - "Fn::Join": Array [ + "EventBusHttpEndpoint1C68A807": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "Dns.Http", ], @@ -373,14 +373,14 @@ Object { ], }, }, - "FrontendDomainName": Object { - "Value": Object { - "Fn::Join": Array [ + "FrontendDomainName": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], @@ -389,13 +389,13 @@ Object { ], }, }, - "MigrationCommand": Object { - "Value": Object { - "Fn::Join": Array [ + "MigrationCommand": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "aws lambda invoke --function-name ", - Object { + { "Ref": "WebappMigrationRunnerAC67C012", }, " --payload '{"command":"deploy"}' --cli-binary-format raw-in-base64-out /dev/stdout", @@ -403,36 +403,36 @@ Object { ], }, }, - "MigrationFunctionName": Object { - "Value": Object { + "MigrationFunctionName": { + "Value": { "Ref": "WebappMigrationRunnerAC67C012", }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, - "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter": Object { + "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter": { "Default": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWS679f53fac002430cb0da5b7982bd22872D164C4C": Object { - "DependsOn": Array [ + "Resources": { + "AWS679f53fac002430cb0da5b7982bd22872D164C4C": { + "DependsOn": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", "Arn", ], @@ -442,27 +442,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -473,19 +473,19 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AWSCDKTriggerCustomResourceProviderCustomResourceProviderHandler97BECD91": Object { - "DependsOn": Array [ + "AWSCDKTriggerCustomResourceProviderCustomResourceProviderHandler97BECD91": { + "DependsOn": [ "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A", "Arn", ], @@ -495,41 +495,41 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "lambda:InvokeFunction", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "WebappMigrationRunnerAC67C012", "Arn", ], @@ -549,17 +549,17 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AccessLogBucketAutoDeleteObjectsCustomResource01AB31E8": Object { + "AccessLogBucketAutoDeleteObjectsCustomResource01AB31E8": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "AccessLogBucketPolicyF52D2D01", ], - "Properties": Object { - "BucketName": Object { + "Properties": { + "BucketName": { "Ref": "AccessLogBucketDA470295", }, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "Arn", ], @@ -568,33 +568,33 @@ Object { "Type": "Custom::S3AutoDeleteObjects", "UpdateReplacePolicy": "Delete", }, - "AccessLogBucketDA470295": Object { + "AccessLogBucketDA470295": { "DeletionPolicy": "Delete", - "Properties": Object { - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256", }, }, ], }, - "OwnershipControls": Object { - "Rules": Array [ - Object { + "OwnershipControls": { + "Rules": [ + { "ObjectOwnership": "ObjectWriter", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:auto-delete-objects", "Value": "true", }, @@ -603,37 +603,37 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Delete", }, - "AccessLogBucketPolicyF52D2D01": Object { - "Properties": Object { - "Bucket": Object { + "AccessLogBucketPolicyF52D2D01": { + "Properties": { + "Bucket": { "Ref": "AccessLogBucketDA470295", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:*", - "Condition": Object { - "Bool": Object { + "Condition": { + "Bool": { "aws:SecureTransport": "false", }, }, "Effect": "Deny", - "Principal": Object { + "Principal": { "AWS": "*", }, - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], @@ -644,35 +644,35 @@ Object { }, ], }, - Object { - "Action": Array [ + { + "Action": [ "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", ], "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::GetAtt": Array [ + "Principal": { + "AWS": { + "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn", ], }, }, - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], @@ -689,8 +689,8 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "AsyncJobHandler438266BD": Object { - "DependsOn": Array [ + "AsyncJobHandler438266BD": { + "DependsOn": [ "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5", "AsyncJobHandlerServiceRoleFE9F530F", "VpcPrivateSubnet1DefaultRouteBE02A9ED", @@ -700,81 +700,81 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "ImageUri": Object { + "Code": { + "ImageUri": { "Fn::Sub": "REDACTED", }, }, - "Environment": Object { - "Variables": Object { - "DATABASE_ENGINE": Object { - "Fn::Join": Array [ + "Environment": { + "Variables": { + "DATABASE_ENGINE": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}", ], ], }, - "DATABASE_HOST": Object { - "Fn::GetAtt": Array [ + "DATABASE_HOST": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, "DATABASE_NAME": "main", "DATABASE_OPTION": "?pool_timeout=20&connect_timeout=20", - "DATABASE_PASSWORD": Object { - "Fn::Join": Array [ + "DATABASE_PASSWORD": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}", ], ], }, - "DATABASE_PORT": Object { - "Fn::GetAtt": Array [ + "DATABASE_PORT": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "DATABASE_URL": Object { - "Fn::Join": Array [ + "DATABASE_URL": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}://{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}:{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}@", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -783,25 +783,25 @@ Object { ], ], }, - "DATABASE_USER": Object { - "Fn::Join": Array [ + "DATABASE_USER": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}", ], ], }, - "EVENT_HTTP_ENDPOINT": Object { - "Fn::Join": Array [ + "EVENT_HTTP_ENDPOINT": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "Dns.Http", ], @@ -811,38 +811,38 @@ Object { }, }, }, - "ImageConfig": Object { - "Command": Array [ + "ImageConfig": { + "Command": [ "async-job-runner.handler", ], }, "MemorySize": 256, "PackageType": "Image", "ReservedConcurrentExecutions": 1, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AsyncJobHandlerServiceRoleFE9F530F", "Arn", ], }, "Timeout": 600, - "VpcConfig": Object { - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "AsyncJobHandlerSecurityGroupF59812E6", "GroupId", ], }, ], - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], @@ -850,8 +850,8 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AsyncJobHandlerSecurityGroupF59812E6": Object { - "DependsOn": Array [ + "AsyncJobHandlerSecurityGroupF59812E6": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -859,23 +859,23 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "GroupDescription": "Automatic security group for Lambda Function ServerlessWebappStarterKitStackAsyncJobHandlerF20B94EA", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5": Object { - "DependsOn": Array [ + "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -883,23 +883,23 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "appsync:EventPublish", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":appsync:us-west-2:123456789012:apis/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "ApiId", ], @@ -909,8 +909,8 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "translate:TranslateText", "comprehend:DetectDominantLanguage", ], @@ -921,16 +921,16 @@ Object { "Version": "2012-10-17", }, "PolicyName": "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AsyncJobHandlerServiceRoleFE9F530F", }, ], }, "Type": "AWS::IAM::Policy", }, - "AsyncJobHandlerServiceRoleFE9F530F": Object { - "DependsOn": Array [ + "AsyncJobHandlerServiceRoleFE9F530F": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -938,38 +938,38 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole", @@ -980,28 +980,28 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AsyncJobSampleJob3C1EBA2C": Object { - "Properties": Object { - "FlexibleTimeWindow": Object { + "AsyncJobSampleJob3C1EBA2C": { + "Properties": { + "FlexibleTimeWindow": { "Mode": "OFF", }, "ScheduleExpression": "cron(0 0 1 * ? *)", "ScheduleExpressionTimezone": "Etc/UTC", "State": "ENABLED", - "Target": Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Target": { + "Arn": { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, "Input": "{"jobType":"SampleJob"}", - "RetryPolicy": Object { + "RetryPolicy": { "MaximumEventAgeInSeconds": 86400, "MaximumRetryAttempts": 5, }, - "RoleArn": Object { - "Fn::GetAtt": Array [ + "RoleArn": { + "Fn::GetAtt": [ "SchedulerRoleForTarget44ece2CFC6840F", "Arn", ], @@ -1010,24 +1010,24 @@ Object { }, "Type": "AWS::Scheduler::Schedule", }, - "AuthBranding34BB87FD": Object { - "Properties": Object { - "ClientId": Object { + "AuthBranding34BB87FD": { + "Properties": { + "ClientId": { "Ref": "AuthUserPoolClientC635291F", }, "UseCognitoProvidedValues": true, - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, "Type": "AWS::Cognito::ManagedLoginBranding", }, - "AuthDomainPrefixE1742B23": Object { + "AuthDomainPrefixE1742B23": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ServiceTimeout": "10", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "RandomStringGenerator11e9c903f11a4989833c985dddef5eb28C5103D0", "Arn", ], @@ -1038,40 +1038,40 @@ Object { "Type": "Custom::RandomString", "UpdateReplacePolicy": "Delete", }, - "AuthUpdateCallbackUrlsA55622E9": Object { + "AuthUpdateCallbackUrlsA55622E9": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "AuthUpdateCallbackUrlsCustomResourcePolicy14EEB23D", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ + [ "{"service":"@aws-sdk/client-cognito-identity-provider","action":"updateUserPoolClient","parameters":{"ClientId":"", - Object { + { "Ref": "AuthUserPoolClientC635291F", }, "","UserPoolId":"", - Object { + { "Ref": "AuthUserPool8115E87F", }, "","AllowedOAuthFlows":["code"],"AllowedOAuthFlowsUserPoolClient":true,"AllowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"ExplicitAuthFlows":["ALLOW_USER_PASSWORD_AUTH","ALLOW_USER_SRP_AUTH","ALLOW_REFRESH_TOKEN_AUTH"],"CallbackURLs":["https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, "/api/auth/sign-in-callback","http://localhost:3010/api/auth/sign-in-callback"],"LogoutURLs":["https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, "/api/auth/sign-out-callback","http://localhost:3010/api/auth/sign-out-callback"],"SupportedIdentityProviders":["COGNITO"],"TokenValidityUnits":{"IdToken":"minutes"},"IdTokenValidity":1440},"physicalResourceId":{"id":"", - Object { + { "Ref": "AuthUserPool8115E87F", }, ""}}", @@ -1079,40 +1079,40 @@ Object { ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ + [ "{"service":"@aws-sdk/client-cognito-identity-provider","action":"updateUserPoolClient","parameters":{"ClientId":"", - Object { + { "Ref": "AuthUserPoolClientC635291F", }, "","UserPoolId":"", - Object { + { "Ref": "AuthUserPool8115E87F", }, "","AllowedOAuthFlows":["code"],"AllowedOAuthFlowsUserPoolClient":true,"AllowedOAuthScopes":["profile","phone","email","openid","aws.cognito.signin.user.admin"],"ExplicitAuthFlows":["ALLOW_USER_PASSWORD_AUTH","ALLOW_USER_SRP_AUTH","ALLOW_REFRESH_TOKEN_AUTH"],"CallbackURLs":["https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, "/api/auth/sign-in-callback","http://localhost:3010/api/auth/sign-in-callback"],"LogoutURLs":["https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, "/api/auth/sign-out-callback","http://localhost:3010/api/auth/sign-out-callback"],"SupportedIdentityProviders":["COGNITO"],"TokenValidityUnits":{"IdToken":"minutes"},"IdTokenValidity":1440},"physicalResourceId":{"id":"", - Object { + { "Ref": "AuthUserPool8115E87F", }, ""}}", @@ -1123,15 +1123,15 @@ Object { "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "AuthUpdateCallbackUrlsCustomResourcePolicy14EEB23D": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "AuthUpdateCallbackUrlsCustomResourcePolicy14EEB23D": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "cognito-idp:UpdateUserPoolClient", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "AuthUserPool8115E87F", "Arn", ], @@ -1141,39 +1141,39 @@ Object { "Version": "2012-10-17", }, "PolicyName": "AuthUpdateCallbackUrlsCustomResourcePolicy14EEB23D", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "AuthUserPool8115E87F": Object { + "AuthUserPool8115E87F": { "DeletionPolicy": "Delete", - "Properties": Object { - "AccountRecoverySetting": Object { - "RecoveryMechanisms": Array [ - Object { + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { "Name": "verified_phone_number", "Priority": 1, }, - Object { + { "Name": "verified_email", "Priority": 2, }, ], }, - "AdminCreateUserConfig": Object { + "AdminCreateUserConfig": { "AllowAdminCreateUserOnly": false, }, - "AutoVerifiedAttributes": Array [ + "AutoVerifiedAttributes": [ "email", ], "EmailVerificationMessage": "The verification code to your new account is {####}", "EmailVerificationSubject": "Verify your new account", - "Policies": Object { - "PasswordPolicy": Object { + "Policies": { + "PasswordPolicy": { "MinimumLength": 8, "RequireNumbers": true, "RequireSymbols": true, @@ -1181,10 +1181,10 @@ Object { }, }, "SmsVerificationMessage": "The verification code to your new account is {####}", - "UsernameAttributes": Array [ + "UsernameAttributes": [ "email", ], - "VerificationMessageTemplate": Object { + "VerificationMessageTemplate": { "DefaultEmailOption": "CONFIRM_WITH_CODE", "EmailMessage": "The verification code to your new account is {####}", "EmailSubject": "Verify your new account", @@ -1194,81 +1194,81 @@ Object { "Type": "AWS::Cognito::UserPool", "UpdateReplacePolicy": "Delete", }, - "AuthUserPoolClientC635291F": Object { - "Properties": Object { - "AllowedOAuthFlows": Array [ + "AuthUserPoolClientC635291F": { + "Properties": { + "AllowedOAuthFlows": [ "code", ], "AllowedOAuthFlowsUserPoolClient": true, - "AllowedOAuthScopes": Array [ + "AllowedOAuthScopes": [ "profile", "phone", "email", "openid", "aws.cognito.signin.user.admin", ], - "CallbackURLs": Array [ + "CallbackURLs": [ "http://localhost/dummy", ], - "ExplicitAuthFlows": Array [ + "ExplicitAuthFlows": [ "ALLOW_USER_PASSWORD_AUTH", "ALLOW_USER_SRP_AUTH", "ALLOW_REFRESH_TOKEN_AUTH", ], "IdTokenValidity": 1440, - "LogoutURLs": Array [ + "LogoutURLs": [ "http://localhost/dummy", ], - "SupportedIdentityProviders": Array [ + "SupportedIdentityProviders": [ "COGNITO", ], - "TokenValidityUnits": Object { + "TokenValidityUnits": { "IdToken": "minutes", }, - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, "Type": "AWS::Cognito::UserPoolClient", }, - "AuthUserPoolCognitoDomainAD9D79E1": Object { - "Properties": Object { - "Domain": Object { - "Fn::GetAtt": Array [ + "AuthUserPoolCognitoDomainAD9D79E1": { + "Properties": { + "Domain": { + "Fn::GetAtt": [ "AuthDomainPrefixE1742B23", "generated", ], }, "ManagedLoginVersion": 2, - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, "Type": "AWS::Cognito::UserPoolDomain", }, - "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549": Object { - "Properties": Object { - "Artifacts": Object { + "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549": { + "Properties": { + "Artifacts": { "Type": "NO_ARTIFACTS", }, - "Cache": Object { + "Cache": { "Type": "NO_CACHE", }, "EncryptionKey": "alias/aws/s3", - "Environment": Object { + "Environment": { "ComputeType": "BUILD_GENERAL1_SMALL", "Image": "aws/codebuild/amazonlinux2-aarch64-standard:3.0", "ImagePullCredentialsType": "CODEBUILD", "PrivilegedMode": true, "Type": "ARM_CONTAINER", }, - "ServiceRole": Object { - "Fn::GetAtt": Array [ + "ServiceRole": { + "Fn::GetAtt": [ "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE", "Arn", ], }, - "Source": Object { + "Source": { "BuildSpec": "{ "version": "0.2", "phases": { @@ -1301,27 +1301,27 @@ Object { }, "Type": "AWS::CodeBuild::Project", }, - "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "codebuild.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly", @@ -1332,43 +1332,43 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":logs:us-west-2:123456789012:log-group:/aws/codebuild/", - Object { + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":logs:us-west-2:123456789012:log-group:/aws/codebuild/", - Object { + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, ":*", @@ -1377,8 +1377,8 @@ Object { }, ], }, - Object { - "Action": Array [ + { + "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", @@ -1386,16 +1386,16 @@ Object { "codebuild:BatchPutCodeCoverages", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":codebuild:us-west-2:123456789012:report-group/", - Object { + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, "-*", @@ -1403,8 +1403,8 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", @@ -1414,54 +1414,54 @@ Object { "ecr:PutImage", ], "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], }, }, - Object { + { "Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "ecr:DescribeImages", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], }, }, - Object { - "Action": Array [ + { + "Action": [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":s3:::cdk-hnb659fds-assets-123456789012-us-west-2", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":s3:::cdk-hnb659fds-assets-123456789012-us-west-2/*", @@ -1474,27 +1474,27 @@ Object { "Version": "2012-10-17", }, "PolicyName": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE", }, ], }, "Type": "AWS::IAM::Policy", }, - "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68": Object { - "DependsOn": Array [ + "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68": { + "DependsOn": [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", "Arn", ], @@ -1504,42 +1504,42 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:AddTagsToResource", "ssm:RemoveTagsFromResource", "ssm:GetParameters", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-west-2:123456789012:parameter/cdk/exports/ServerlessWebappStarterKitStack/*", @@ -1556,21 +1556,21 @@ Object { }, "Type": "AWS::IAM::Role", }, - "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": Object { - "DependsOn": Array [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": { + "DependsOn": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, - "Description": Object { - "Fn::Join": Array [ + "Description": { + "Fn::Join": [ "", - Array [ + [ "Lambda function for auto-deleting objects in ", - Object { + { "Ref": "AccessLogBucketDA470295", }, " S3 bucket.", @@ -1579,8 +1579,8 @@ Object { }, "Handler": "index.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn", ], @@ -1590,100 +1590,100 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], }, "Type": "AWS::IAM::Role", }, - "DatabaseBastionHost4C4FAD9C": Object { - "DependsOn": Array [ + "DatabaseBastionHost4C4FAD9C": { + "DependsOn": [ "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA", "DatabaseBastionHostInstanceRole87A429B0", ], - "Properties": Object { + "Properties": { "AvailabilityZone": "dummy1a", - "BlockDeviceMappings": Array [ - Object { + "BlockDeviceMappings": [ + { "DeviceName": "/dev/sdf", - "Ebs": Object { + "Ebs": { "Encrypted": true, "VolumeSize": 8, }, }, ], - "IamInstanceProfile": Object { + "IamInstanceProfile": { "Ref": "DatabaseBastionHostInstanceProfile0F4F3411", }, - "ImageId": Object { + "ImageId": { "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter", }, "InstanceType": "t4g.nano", - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "DatabaseBastionHostInstanceSecurityGroup39D7809A", "GroupId", ], }, ], - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "BastionHost", }, ], - "UserData": Object { + "UserData": { "Fn::Base64": "#!/bin/bash", }, }, "Type": "AWS::EC2::Instance", }, - "DatabaseBastionHostInstanceProfile0F4F3411": Object { - "Properties": Object { - "Roles": Array [ - Object { + "DatabaseBastionHostInstanceProfile0F4F3411": { + "Properties": { + "Roles": [ + { "Ref": "DatabaseBastionHostInstanceRole87A429B0", }, ], }, "Type": "AWS::IAM::InstanceProfile", }, - "DatabaseBastionHostInstanceRole87A429B0": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "DatabaseBastionHostInstanceRole87A429B0": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ec2.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "BastionHost", }, @@ -1691,12 +1691,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssmmessages:*", "ssm:UpdateInstanceInformation", "ec2messages:*", @@ -1708,66 +1708,66 @@ Object { "Version": "2012-10-17", }, "PolicyName": "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "DatabaseBastionHostInstanceRole87A429B0", }, ], }, "Type": "AWS::IAM::Policy", }, - "DatabaseBastionHostInstanceSecurityGroup39D7809A": Object { - "Properties": Object { + "DatabaseBastionHostInstanceSecurityGroup39D7809A": { + "Properties": { "GroupDescription": "ServerlessWebappStarterKitStack/Database/BastionHost/Resource/InstanceSecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "BastionHost", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "DatabaseCluster5B53A178": Object { + "DatabaseCluster5B53A178": { "DeletionPolicy": "Snapshot", - "Properties": Object { + "Properties": { "CopyTagsToSnapshot": true, - "DBClusterParameterGroupName": Object { + "DBClusterParameterGroupName": { "Ref": "DatabaseParameterGroup2A921026", }, - "DBSubnetGroupName": Object { + "DBSubnetGroupName": { "Ref": "DatabaseClusterSubnets5540150D", }, "Engine": "aurora-postgresql", "EngineVersion": "16.6", - "MasterUserPassword": Object { - "Fn::Join": Array [ + "MasterUserPassword": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ":SecretString:password::}}", ], ], }, - "MasterUsername": Object { - "Fn::Join": Array [ + "MasterUsername": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ":SecretString:username::}}", @@ -1775,14 +1775,14 @@ Object { ], }, "Port": 5432, - "ServerlessV2ScalingConfiguration": Object { + "ServerlessV2ScalingConfiguration": { "MaxCapacity": 2, "MinCapacity": 0, }, "StorageEncrypted": true, - "VpcSecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcSecurityGroupIds": [ + { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], @@ -1792,33 +1792,33 @@ Object { "Type": "AWS::RDS::DBCluster", "UpdateReplacePolicy": "Snapshot", }, - "DatabaseClusterSecretAttachmentDC8466C0": Object { - "Properties": Object { - "SecretId": Object { + "DatabaseClusterSecretAttachmentDC8466C0": { + "Properties": { + "SecretId": { "Ref": "DatabaseClusterSecretD1FB634F", }, - "TargetId": Object { + "TargetId": { "Ref": "DatabaseCluster5B53A178", }, "TargetType": "AWS::RDS::DBCluster", }, "Type": "AWS::SecretsManager::SecretTargetAttachment", }, - "DatabaseClusterSecretD1FB634F": Object { + "DatabaseClusterSecretD1FB634F": { "DeletionPolicy": "Delete", - "Properties": Object { - "Description": Object { - "Fn::Join": Array [ + "Properties": { + "Description": { + "Fn::Join": [ "", - Array [ + [ "Generated by the CDK for stack: ", - Object { + { "Ref": "AWS::StackName", }, ], ], }, - "GenerateSecretString": Object { + "GenerateSecretString": { "ExcludeCharacters": " %+~\`#$&*()|[]{}:;<>?!'/@"\\,=^", "GenerateStringKey": "password", "PasswordLength": 30, @@ -1828,46 +1828,46 @@ Object { "Type": "AWS::SecretsManager::Secret", "UpdateReplacePolicy": "Delete", }, - "DatabaseClusterSecurityGroupFEF1426A": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupFEF1426A": { + "Properties": { "GroupDescription": "RDS security group", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackAsyncJobHandlerSecurityGroup5220DFB3IndirectPort9323962E": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackAsyncJobHandlerSecurityGroup5220DFB3IndirectPort9323962E": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackAsyncJobHandlerSecurityGroup5220DFB3:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "AsyncJobHandlerSecurityGroupF59812E6", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1875,30 +1875,30 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackDatabaseBastionHostInstanceSecurityGroup4F0DD25BIndirectPort8AFD9922": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackDatabaseBastionHostInstanceSecurityGroup4F0DD25BIndirectPort8AFD9922": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackDatabaseBastionHostInstanceSecurityGroup4F0DD25B:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "DatabaseBastionHostInstanceSecurityGroup39D7809A", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1906,30 +1906,30 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappHandlerSecurityGroupA009CF4AIndirectPort7311063E": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappHandlerSecurityGroupA009CF4AIndirectPort7311063E": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackWebappHandlerSecurityGroupA009CF4A:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "WebappHandlerSecurityGroup5451B519", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1937,30 +1937,30 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappMigrationRunnerSecurityGroupC0959349IndirectPortDCF4A356": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappMigrationRunnerSecurityGroupC0959349IndirectPortDCF4A356": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackWebappMigrationRunnerSecurityGroupC0959349:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "WebappMigrationRunnerSecurityGroup7F0DF264", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1968,26 +1968,26 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSubnets5540150D": Object { - "Properties": Object { + "DatabaseClusterSubnets5540150D": { + "Properties": { "DBSubnetGroupDescription": "Subnets for Cluster database", - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], }, "Type": "AWS::RDS::DBSubnetGroup", }, - "DatabaseClusterWriterD43085C6": Object { + "DatabaseClusterWriterD43085C6": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -1995,9 +1995,9 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "AutoMinorVersionUpgrade": true, - "DBClusterIdentifier": Object { + "DBClusterIdentifier": { "Ref": "DatabaseCluster5B53A178", }, "DBInstanceClass": "db.serverless", @@ -2010,29 +2010,29 @@ Object { "Type": "AWS::RDS::DBInstance", "UpdateReplacePolicy": "Delete", }, - "DatabaseParameterGroup2A921026": Object { - "Properties": Object { + "DatabaseParameterGroup2A921026": { + "Properties": { "Description": "Cluster parameter group for aurora-postgresql16", "Family": "aurora-postgresql16", - "Parameters": Object { + "Parameters": { "idle_session_timeout": "60000", }, }, "Type": "AWS::RDS::DBClusterParameterGroup", }, - "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f306AEFF37": Object { - "DependsOn": Array [ + "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f306AEFF37": { + "DependsOn": [ "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC", "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4", "Arn", ], @@ -2042,27 +2042,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -2073,15 +2073,15 @@ Object { }, "Type": "AWS::IAM::Role", }, - "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "codebuild:StartBuild", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", "Arn", ], @@ -2091,49 +2091,49 @@ Object { "Version": "2012-10-17", }, "PolicyName": "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4", }, ], }, "Type": "AWS::IAM::Policy", }, - "EventBusApi6E8C7C94": Object { - "Properties": Object { - "EventConfig": Object { - "AuthProviders": Array [ - Object { + "EventBusApi6E8C7C94": { + "Properties": { + "EventConfig": { + "AuthProviders": [ + { "AuthType": "AWS_IAM", }, - Object { + { "AuthType": "AMAZON_COGNITO_USER_POOLS", - "CognitoConfig": Object { + "CognitoConfig": { "AwsRegion": "us-west-2", - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, }, ], - "ConnectionAuthModes": Array [ - Object { + "ConnectionAuthModes": [ + { "AuthType": "AWS_IAM", }, - Object { + { "AuthType": "AMAZON_COGNITO_USER_POOLS", }, ], - "DefaultPublishAuthModes": Array [ - Object { + "DefaultPublishAuthModes": [ + { "AuthType": "AWS_IAM", }, ], - "DefaultSubscribeAuthModes": Array [ - Object { + "DefaultSubscribeAuthModes": [ + { "AuthType": "AWS_IAM", }, - Object { + { "AuthType": "AMAZON_COGNITO_USER_POOLS", }, ], @@ -2142,32 +2142,32 @@ Object { }, "Type": "AWS::AppSync::Api", }, - "EventBusNamespaceA69F015E": Object { - "Properties": Object { - "ApiId": Object { - "Fn::GetAtt": Array [ + "EventBusNamespaceA69F015E": { + "Properties": { + "ApiId": { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "ApiId", ], }, "CodeS3Location": "s3://cdk-hnb659fds-assets-123456789012-us-west-2/REDACTED", - "HandlerConfigs": Object {}, + "HandlerConfigs": {}, "Name": "event-bus", }, "Type": "AWS::AppSync::ChannelNamespace", }, - "ExportsReader8B249524": Object { + "ExportsReader8B249524": { "DeletionPolicy": "Delete", - "Properties": Object { - "ReaderProps": Object { - "imports": Object { + "Properties": { + "ReaderProps": { + "imports": { "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA": "{{resolve:ssm:/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA}}", }, "prefix": "ServerlessWebappStarterKitStack", "region": "us-west-2", }, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68", "Arn", ], @@ -2176,19 +2176,19 @@ Object { "Type": "Custom::CrossRegionExportReader", "UpdateReplacePolicy": "Delete", }, - "LookupVersionArnc8730278af02f875114ca902814c77b68f19b0087110E04D0A": Object { + "LookupVersionArnc8730278af02f875114ca902814c77b68f19b0087110E04D0A": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ + [ "{"service":"SSM","action":"getParameter","parameters":{"Name":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA", ], @@ -2198,19 +2198,19 @@ Object { ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ + [ "{"service":"SSM","action":"getParameter","parameters":{"Name":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA", ], @@ -2223,24 +2223,24 @@ Object { "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ssm:GetParameter", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:123456789012:parameter/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA", ], @@ -2253,20 +2253,20 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "RandomStringGenerator11e9c903f11a4989833c985dddef5eb28C5103D0": Object { - "DependsOn": Array [ + "RandomStringGenerator11e9c903f11a4989833c985dddef5eb28C5103D0": { + "DependsOn": [ "RandomStringGenerator11e9c903f11a4989833c985dddef5eb2ServiceRoleAB6B57A9", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "ZipFile": "const response = require('cfn-response'); const crypto = require('crypto'); @@ -2304,8 +2304,8 @@ exports.handler = async function (event, context) { ", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "RandomStringGenerator11e9c903f11a4989833c985dddef5eb2ServiceRoleAB6B57A9", "Arn", ], @@ -2315,27 +2315,27 @@ exports.handler = async function (event, context) { }, "Type": "AWS::Lambda::Function", }, - "RandomStringGenerator11e9c903f11a4989833c985dddef5eb2ServiceRoleAB6B57A9": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "RandomStringGenerator11e9c903f11a4989833c985dddef5eb2ServiceRoleAB6B57A9": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -2346,21 +2346,21 @@ exports.handler = async function (event, context) { }, "Type": "AWS::IAM::Role", }, - "SchedulerRoleForTarget44ece2CFC6840F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SchedulerRoleForTarget44ece2CFC6840F": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", - "Condition": Object { - "StringEquals": Object { + "Condition": { + "StringEquals": { "aws:SourceAccount": "123456789012", - "aws:SourceArn": Object { - "Fn::Join": Array [ + "aws:SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":scheduler:us-west-2:123456789012:schedule-group/default", @@ -2370,7 +2370,7 @@ exports.handler = async function (event, context) { }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "scheduler.amazonaws.com", }, }, @@ -2380,26 +2380,26 @@ exports.handler = async function (event, context) { }, "Type": "AWS::IAM::Role", }, - "SchedulerRoleForTarget44ece2DefaultPolicyFDF3E159": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "SchedulerRoleForTarget44ece2DefaultPolicyFDF3E159": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "lambda:InvokeFunction", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], @@ -2414,22 +2414,22 @@ exports.handler = async function (event, context) { "Version": "2012-10-17", }, "PolicyName": "SchedulerRoleForTarget44ece2DefaultPolicyFDF3E159", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SchedulerRoleForTarget44ece2CFC6840F", }, ], }, "Type": "AWS::IAM::Policy", }, - "Vpc8378EB38": Object { - "Properties": Object { + "Vpc8378EB38": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc", }, @@ -2437,10 +2437,10 @@ exports.handler = async function (event, context) { }, "Type": "AWS::EC2::VPC", }, - "VpcIGWD7BA715C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcIGWD7BA715C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc", }, @@ -2448,276 +2448,276 @@ exports.handler = async function (event, context) { }, "Type": "AWS::EC2::InternetGateway", }, - "VpcNatSecurityGroup8DA26EDC": Object { - "Properties": Object { + "VpcNatSecurityGroup8DA26EDC": { + "Properties": { "GroupDescription": "Security Group for NAT instances", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "SecurityGroupIngress": Array [ - Object { + "SecurityGroupIngress": [ + { "CidrIp": "0.0.0.0/0", "Description": "from 0.0.0.0/0:ALL TRAFFIC", "IpProtocol": "-1", }, ], - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "VpcPrivateSubnet1DefaultRouteBE02A9ED": Object { - "Properties": Object { + "VpcPrivateSubnet1DefaultRouteBE02A9ED": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "InstanceId": Object { + "InstanceId": { "Ref": "VpcPublicSubnet1NatInstance57B636B8", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet1RouteTableAssociation70C59FA6": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet1RouteTableAssociation70C59FA6": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet1RouteTableB2C5B500": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet1RouteTableB2C5B500": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet1Subnet536B997A": Object { - "Properties": Object { + "VpcPrivateSubnet1Subnet536B997A": { + "Properties": { "AvailabilityZone": "dummy1a", "CidrBlock": "10.0.96.0/19", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPrivateSubnet2DefaultRoute060D2087": Object { - "Properties": Object { + "VpcPrivateSubnet2DefaultRoute060D2087": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "InstanceId": Object { + "InstanceId": { "Ref": "VpcPublicSubnet1NatInstance57B636B8", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet2RouteTableA678073B": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet2RouteTableA678073B": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet2RouteTableAssociationA89CAD56": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet2RouteTableAssociationA89CAD56": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet2Subnet3788AAA1": Object { - "Properties": Object { + "VpcPrivateSubnet2Subnet3788AAA1": { + "Properties": { "AvailabilityZone": "dummy1b", "CidrBlock": "10.0.128.0/19", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPrivateSubnet3DefaultRoute94B74F0D": Object { - "Properties": Object { + "VpcPrivateSubnet3DefaultRoute94B74F0D": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "InstanceId": Object { + "InstanceId": { "Ref": "VpcPublicSubnet1NatInstance57B636B8", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet3RouteTableD98824C7", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet3RouteTableAssociation16BDDC43": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet3RouteTableAssociation16BDDC43": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet3RouteTableD98824C7", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet3RouteTableD98824C7": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet3RouteTableD98824C7": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet3SubnetF258B56E": Object { - "Properties": Object { + "VpcPrivateSubnet3SubnetF258B56E": { + "Properties": { "AvailabilityZone": "dummy1c", "CidrBlock": "10.0.160.0/19", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet1DefaultRoute3DA9E72A": Object { - "DependsOn": Array [ + "VpcPublicSubnet1DefaultRoute3DA9E72A": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet1NatInstance57B636B8": Object { - "DependsOn": Array [ + "VpcPublicSubnet1NatInstance57B636B8": { + "DependsOn": [ "VpcPublicSubnet1DefaultRoute3DA9E72A", "VpcPublicSubnet1NatInstanceInstanceRole9D835E32", "VpcPublicSubnet1RouteTableAssociation97140677", ], - "Properties": Object { + "Properties": { "AvailabilityZone": "dummy1a", - "IamInstanceProfile": Object { + "IamInstanceProfile": { "Ref": "VpcPublicSubnet1NatInstanceInstanceProfileEE10C485", }, - "ImageId": Object { + "ImageId": { "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter", }, "InstanceType": "t4g.nano", - "NetworkInterfaces": Array [ - Object { + "NetworkInterfaces": [ + { "AssociatePublicIpAddress": true, "DeviceIndex": "0", - "GroupSet": Array [ - Object { - "Fn::GetAtt": Array [ + "GroupSet": [ + { + "Fn::GetAtt": [ "VpcNatSecurityGroup8DA26EDC", "GroupId", ], }, ], - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, }, ], "SourceDestCheck": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1/NatInstance", }, ], - "UserData": Object { + "UserData": { "Fn::Base64": "#!/bin/bash yum install iptables-services -y systemctl enable iptables @@ -2731,32 +2731,32 @@ sudo service iptables save", }, "Type": "AWS::EC2::Instance", }, - "VpcPublicSubnet1NatInstanceInstanceProfileEE10C485": Object { - "Properties": Object { - "Roles": Array [ - Object { + "VpcPublicSubnet1NatInstanceInstanceProfileEE10C485": { + "Properties": { + "Roles": [ + { "Ref": "VpcPublicSubnet1NatInstanceInstanceRole9D835E32", }, ], }, "Type": "AWS::IAM::InstanceProfile", }, - "VpcPublicSubnet1NatInstanceInstanceRole9D835E32": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "VpcPublicSubnet1NatInstanceInstanceRole9D835E32": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ec2.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1/NatInstance", }, @@ -2764,203 +2764,203 @@ sudo service iptables save", }, "Type": "AWS::IAM::Role", }, - "VpcPublicSubnet1RouteTable6C95E38E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet1RouteTable6C95E38E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet1RouteTableAssociation97140677": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet1RouteTableAssociation97140677": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet1Subnet5C2D37C4": Object { - "Properties": Object { + "VpcPublicSubnet1Subnet5C2D37C4": { + "Properties": { "AvailabilityZone": "dummy1a", "CidrBlock": "10.0.0.0/19", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet2DefaultRoute97F91067": Object { - "DependsOn": Array [ + "VpcPublicSubnet2DefaultRoute97F91067": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet2RouteTable94F7E489": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet2RouteTable94F7E489": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet2RouteTableAssociationDD5762D8": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet2RouteTableAssociationDD5762D8": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet2Subnet691E08A3", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet2Subnet691E08A3": Object { - "Properties": Object { + "VpcPublicSubnet2Subnet691E08A3": { + "Properties": { "AvailabilityZone": "dummy1b", "CidrBlock": "10.0.32.0/19", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet3DefaultRoute4697774F": Object { - "DependsOn": Array [ + "VpcPublicSubnet3DefaultRoute4697774F": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet3RouteTable93458DBB", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet3RouteTable93458DBB": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet3RouteTable93458DBB": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet3RouteTableAssociation1F1EDF02": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet3RouteTableAssociation1F1EDF02": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet3RouteTable93458DBB", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet3SubnetBE12F0B6", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet3SubnetBE12F0B6": Object { - "Properties": Object { + "VpcPublicSubnet3SubnetBE12F0B6": { + "Properties": { "AvailabilityZone": "dummy1c", "CidrBlock": "10.0.64.0/19", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcVPCGWBF912B6E": Object { - "Properties": Object { - "InternetGatewayId": Object { + "VpcVPCGWBF912B6E": { + "Properties": { + "InternetGatewayId": { "Ref": "VpcIGWD7BA715C", }, - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "Webapp107041BD": Object { - "Properties": Object { - "DistributionConfig": Object { + "Webapp107041BD": { + "Properties": { + "DistributionConfig": { "Comment": "CloudFront for Webapp", - "DefaultCacheBehavior": Object { - "AllowedMethods": Array [ + "DefaultCacheBehavior": { + "AllowedMethods": [ "GET", "HEAD", "OPTIONS", @@ -2969,16 +2969,16 @@ sudo service iptables save", "POST", "DELETE", ], - "CachePolicyId": Object { + "CachePolicyId": { "Ref": "WebappSharedCachePolicy14FEE4A0", }, "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", "IncludeBody": true, - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "LookupVersionArnc8730278af02f875114ca902814c77b68f19b0087110E04D0A", "Parameter.Value", ], @@ -2992,33 +2992,33 @@ sudo service iptables save", "Enabled": true, "HttpVersion": "http2", "IPV6Enabled": true, - "Logging": Object { - "Bucket": Object { - "Fn::GetAtt": Array [ + "Logging": { + "Bucket": { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "RegionalDomainName", ], }, "Prefix": "Webapp/", }, - "Origins": Array [ - Object { + "Origins": [ + { "ConnectionTimeout": 6, - "CustomOriginConfig": Object { + "CustomOriginConfig": { "OriginProtocolPolicy": "https-only", "OriginReadTimeout": 60, - "OriginSSLProtocols": Array [ + "OriginSSLProtocols": [ "TLSv1.2", ], }, - "DomainName": Object { - "Fn::Select": Array [ + "DomainName": { + "Fn::Select": [ 2, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappHandlerFunctionUrl7AEF8DEE", "FunctionUrl", ], @@ -3028,8 +3028,8 @@ sudo service iptables save", ], }, "Id": "ServerlessWebappStarterKitStackWebappOrigin1D7B867FF", - "OriginAccessControlId": Object { - "Fn::GetAtt": Array [ + "OriginAccessControlId": { + "Fn::GetAtt": [ "WebappOrigin1FunctionUrlOriginAccessControlEA98B600", "Id", ], @@ -3040,40 +3040,40 @@ sudo service iptables save", }, "Type": "AWS::CloudFront::Distribution", }, - "WebappBuild348806E3": Object { + "WebappBuild348806E3": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F", "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE", ], - "Properties": Object { - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f306AEFF37", "Arn", ], }, - "buildCommand": Object { - "Fn::Join": Array [ + "buildCommand": { + "Fn::Join": [ "", - Array [ + [ "docker buildx build --build-arg ALLOWED_ORIGIN_HOST=*.cloudfront.net --build-arg SKIP_TS_BUILD=true --build-arg NEXT_PUBLIC_EVENT_HTTP_ENDPOINT=https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "Dns.Http", ], }, " --build-arg NEXT_PUBLIC_AWS_REGION=us-west-2 --platform linux/arm64 --output type=image,name=", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 4, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3083,14 +3083,14 @@ sudo service iptables save", ], }, ".dkr.ecr.", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 3, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3100,32 +3100,32 @@ sudo service iptables save", ], }, ".", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "WebappBuildRepository4C93D48D", }, ":,push=true --provenance=false .", ], ], }, - "codeBuildProjectName": Object { + "codeBuildProjectName": { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, - "repositoryUri": Object { - "Fn::Join": Array [ + "repositoryUri": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::Select": Array [ + [ + { + "Fn::Select": [ 4, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3135,14 +3135,14 @@ sudo service iptables save", ], }, ".dkr.ecr.", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 3, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3152,11 +3152,11 @@ sudo service iptables save", ], }, ".", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "WebappBuildRepository4C93D48D", }, ], @@ -3169,20 +3169,20 @@ sudo service iptables save", "Type": "Custom::CDKContainerImageBuild", "UpdateReplacePolicy": "Delete", }, - "WebappBuildRepository4C93D48D": Object { + "WebappBuildRepository4C93D48D": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "EmptyOnDelete": true, - "RepositoryPolicyText": Object { - "Statement": Array [ - Object { - "Action": Array [ + "RepositoryPolicyText": { + "Statement": [ + { + "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ], "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, @@ -3193,23 +3193,23 @@ sudo service iptables save", "Type": "AWS::ECR::Repository", "UpdateReplacePolicy": "Delete", }, - "WebappCloudFrontInvalidation588CF152": Object { + "WebappCloudFrontInvalidation588CF152": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ + [ "{"service":"cloudfront","action":"createInvalidation","parameters":{"DistributionId":"", - Object { + { "Ref": "Webapp107041BD", }, "","InvalidationBatch":{"CallerReference":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappHandlerCurrentVersionREDACTED", "Version", ], @@ -3219,23 +3219,23 @@ sudo service iptables save", ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ + [ "{"service":"cloudfront","action":"createInvalidation","parameters":{"DistributionId":"", - Object { + { "Ref": "Webapp107041BD", }, "","InvalidationBatch":{"CallerReference":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappHandlerCurrentVersionREDACTED", "Version", ], @@ -3248,23 +3248,23 @@ sudo service iptables save", "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "cloudfront:CreateInvalidation", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":cloudfront::123456789012:distribution/", - Object { + { "Ref": "Webapp107041BD", }, ], @@ -3275,16 +3275,16 @@ sudo service iptables save", "Version": "2012-10-17", }, "PolicyName": "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "WebappHandler8DD158A3": Object { - "DependsOn": Array [ + "WebappHandler8DD158A3": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3294,23 +3294,23 @@ sudo service iptables save", "WebappHandlerServiceRoleDefaultPolicy7D06F4EA", "WebappHandlerServiceRole4F4D1ACD", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "ImageUri": Object { - "Fn::Join": Array [ + "Code": { + "ImageUri": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::Select": Array [ + [ + { + "Fn::Select": [ 4, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3320,14 +3320,14 @@ sudo service iptables save", ], }, ".dkr.ecr.", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 3, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3337,16 +3337,16 @@ sudo service iptables save", ], }, ".", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "WebappBuildRepository4C93D48D", }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuild348806E3", "ImageTag", ], @@ -3355,23 +3355,23 @@ sudo service iptables save", ], }, }, - "Environment": Object { - "Variables": Object { - "AMPLIFY_APP_ORIGIN_SOURCE_PARAMETER": Object { + "Environment": { + "Variables": { + "AMPLIFY_APP_ORIGIN_SOURCE_PARAMETER": { "Ref": "WebappOriginSourceParameterD87E143B", }, - "ASYNC_JOB_HANDLER_ARN": Object { - "Fn::GetAtt": Array [ + "ASYNC_JOB_HANDLER_ARN": { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, - "COGNITO_DOMAIN": Object { - "Fn::Join": Array [ + "COGNITO_DOMAIN": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AuthDomainPrefixE1742B23", "generated", ], @@ -3380,70 +3380,70 @@ sudo service iptables save", ], ], }, - "DATABASE_ENGINE": Object { - "Fn::Join": Array [ + "DATABASE_ENGINE": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}", ], ], }, - "DATABASE_HOST": Object { - "Fn::GetAtt": Array [ + "DATABASE_HOST": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, "DATABASE_NAME": "main", "DATABASE_OPTION": "?pool_timeout=20&connect_timeout=20", - "DATABASE_PASSWORD": Object { - "Fn::Join": Array [ + "DATABASE_PASSWORD": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}", ], ], }, - "DATABASE_PORT": Object { - "Fn::GetAtt": Array [ + "DATABASE_PORT": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "DATABASE_URL": Object { - "Fn::Join": Array [ + "DATABASE_URL": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}://{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}:{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}@", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -3452,52 +3452,52 @@ sudo service iptables save", ], ], }, - "DATABASE_USER": Object { - "Fn::Join": Array [ + "DATABASE_USER": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}", ], ], }, - "USER_POOL_CLIENT_ID": Object { + "USER_POOL_CLIENT_ID": { "Ref": "AuthUserPoolClientC635291F", }, - "USER_POOL_ID": Object { + "USER_POOL_ID": { "Ref": "AuthUserPool8115E87F", }, }, }, "MemorySize": 512, "PackageType": "Image", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "WebappHandlerServiceRole4F4D1ACD", "Arn", ], }, "Timeout": 180, - "VpcConfig": Object { - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "WebappHandlerSecurityGroup5451B519", "GroupId", ], }, ], - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], @@ -3505,8 +3505,8 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Function", }, - "WebappHandlerCurrentVersionREDACTED": Object { - "DependsOn": Array [ + "WebappHandlerCurrentVersionREDACTED": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3514,15 +3514,15 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "FunctionName": Object { + "Properties": { + "FunctionName": { "Ref": "WebappHandler8DD158A3", }, }, "Type": "AWS::Lambda::Version", }, - "WebappHandlerFunctionUrl7AEF8DEE": Object { - "DependsOn": Array [ + "WebappHandlerFunctionUrl7AEF8DEE": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3530,11 +3530,11 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "AuthType": "AWS_IAM", "InvokeMode": "RESPONSE_STREAM", - "TargetFunctionArn": Object { - "Fn::GetAtt": Array [ + "TargetFunctionArn": { + "Fn::GetAtt": [ "WebappHandler8DD158A3", "Arn", ], @@ -3542,8 +3542,8 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Url", }, - "WebappHandlerSecurityGroup5451B519": Object { - "DependsOn": Array [ + "WebappHandlerSecurityGroup5451B519": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3551,23 +3551,23 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "GroupDescription": "Automatic security group for Lambda Function ServerlessWebappStarterKitStackWebappHandlerF1A4ACC9", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "WebappHandlerServiceRole4F4D1ACD": Object { - "DependsOn": Array [ + "WebappHandlerServiceRole4F4D1ACD": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3575,38 +3575,38 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole", @@ -3617,8 +3617,8 @@ sudo service iptables save", }, "Type": "AWS::IAM::Role", }, - "WebappHandlerServiceRoleDefaultPolicy7D06F4EA": Object { - "DependsOn": Array [ + "WebappHandlerServiceRoleDefaultPolicy7D06F4EA": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3626,25 +3626,25 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "lambda:InvokeFunction", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], @@ -3655,24 +3655,24 @@ sudo service iptables save", }, ], }, - Object { - "Action": Array [ + { + "Action": [ "ssm:DescribeParameters", "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParameterHistory", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-west-2:123456789012:parameter/", - Object { + { "Ref": "WebappOriginSourceParameterD87E143B", }, ], @@ -3683,16 +3683,16 @@ sudo service iptables save", "Version": "2012-10-17", }, "PolicyName": "WebappHandlerServiceRoleDefaultPolicy7D06F4EA", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "WebappHandlerServiceRole4F4D1ACD", }, ], }, "Type": "AWS::IAM::Policy", }, - "WebappMigrationRunnerAC67C012": Object { - "DependsOn": Array [ + "WebappMigrationRunnerAC67C012": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3701,81 +3701,81 @@ sudo service iptables save", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", "WebappMigrationRunnerServiceRoleE27E1F7A", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "ImageUri": Object { + "Code": { + "ImageUri": { "Fn::Sub": "REDACTED", }, }, - "Environment": Object { - "Variables": Object { - "DATABASE_ENGINE": Object { - "Fn::Join": Array [ + "Environment": { + "Variables": { + "DATABASE_ENGINE": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}", ], ], }, - "DATABASE_HOST": Object { - "Fn::GetAtt": Array [ + "DATABASE_HOST": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, "DATABASE_NAME": "main", "DATABASE_OPTION": "?pool_timeout=20&connect_timeout=20", - "DATABASE_PASSWORD": Object { - "Fn::Join": Array [ + "DATABASE_PASSWORD": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}", ], ], }, - "DATABASE_PORT": Object { - "Fn::GetAtt": Array [ + "DATABASE_PORT": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "DATABASE_URL": Object { - "Fn::Join": Array [ + "DATABASE_URL": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}://{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}:{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}@", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -3784,12 +3784,12 @@ sudo service iptables save", ], ], }, - "DATABASE_USER": Object { - "Fn::Join": Array [ + "DATABASE_USER": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}", @@ -3798,37 +3798,37 @@ sudo service iptables save", }, }, }, - "ImageConfig": Object { - "Command": Array [ + "ImageConfig": { + "Command": [ "migration-runner.handler", ], }, "MemorySize": 256, "PackageType": "Image", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "WebappMigrationRunnerServiceRoleE27E1F7A", "Arn", ], }, "Timeout": 300, - "VpcConfig": Object { - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "WebappMigrationRunnerSecurityGroup7F0DF264", "GroupId", ], }, ], - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], @@ -3836,8 +3836,8 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Function", }, - "WebappMigrationRunnerCurrentVersionREDACTED": Object { - "DependsOn": Array [ + "WebappMigrationRunnerCurrentVersionREDACTED": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3845,15 +3845,15 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "FunctionName": Object { + "Properties": { + "FunctionName": { "Ref": "WebappMigrationRunnerAC67C012", }, }, "Type": "AWS::Lambda::Version", }, - "WebappMigrationRunnerSecurityGroup7F0DF264": Object { - "DependsOn": Array [ + "WebappMigrationRunnerSecurityGroup7F0DF264": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3861,23 +3861,23 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "GroupDescription": "Automatic security group for Lambda Function ServerlessWebappStarterKitStackWebappMigrationRunner45EAC73E", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "WebappMigrationRunnerServiceRoleE27E1F7A": Object { - "DependsOn": Array [ + "WebappMigrationRunnerServiceRoleE27E1F7A": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3885,38 +3885,38 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole", @@ -3927,9 +3927,9 @@ sudo service iptables save", }, "Type": "AWS::IAM::Role", }, - "WebappMigrationTrigger42AFC1D9": Object { + "WebappMigrationTrigger42AFC1D9": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "DatabaseCluster5B53A178", "DatabaseClusterSecretAttachmentDC8466C0", "DatabaseClusterSecretD1FB634F", @@ -3941,14 +3941,14 @@ sudo service iptables save", "DatabaseClusterSubnets5540150D", "DatabaseClusterWriterD43085C6", ], - "Properties": Object { + "Properties": { "ExecuteOnHandlerChange": true, - "HandlerArn": Object { + "HandlerArn": { "Ref": "WebappMigrationRunnerCurrentVersionREDACTED", }, "InvocationType": "RequestResponse", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWSCDKTriggerCustomResourceProviderCustomResourceProviderHandler97BECD91", "Arn", ], @@ -3958,9 +3958,9 @@ sudo service iptables save", "Type": "Custom::Trigger", "UpdateReplacePolicy": "Delete", }, - "WebappOrigin1FunctionUrlOriginAccessControlEA98B600": Object { - "Properties": Object { - "OriginAccessControlConfig": Object { + "WebappOrigin1FunctionUrlOriginAccessControlEA98B600": { + "Properties": { + "OriginAccessControlConfig": { "Name": "ServerlessWebappStarterKitStnctionUrlOriginAccessControl17EB4E66", "OriginAccessControlOriginType": "lambda", "SigningBehavior": "always", @@ -3969,30 +3969,30 @@ sudo service iptables save", }, "Type": "AWS::CloudFront::OriginAccessControl", }, - "WebappOrigin1InvokeFromApiForServerlessWebappStarterKitStackWebappOrigin1D7B867FF58DBB477": Object { - "Properties": Object { + "WebappOrigin1InvokeFromApiForServerlessWebappStarterKitStackWebappOrigin1D7B867FF58DBB477": { + "Properties": { "Action": "lambda:InvokeFunctionUrl", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "WebappHandlerFunctionUrl7AEF8DEE", "FunctionArn", ], }, "Principal": "cloudfront.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":cloudfront::", - Object { + { "Ref": "AWS::AccountId", }, ":distribution/", - Object { + { "Ref": "Webapp107041BD", }, ], @@ -4001,29 +4001,29 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Permission", }, - "WebappOriginSourceParameterD87E143B": Object { - "Properties": Object { + "WebappOriginSourceParameterD87E143B": { + "Properties": { "Type": "String", "Value": "dummy", }, "Type": "AWS::SSM::Parameter", }, - "WebappSharedCachePolicy14FEE4A0": Object { - "Properties": Object { - "CachePolicyConfig": Object { + "WebappSharedCachePolicy14FEE4A0": { + "Properties": { + "CachePolicyConfig": { "DefaultTTL": 0, "MaxTTL": 31536000, "MinTTL": 0, "Name": "ServerlessWebappStarterKitStackWebappSharedCachePolicy211E133B-us-west-2", - "ParametersInCacheKeyAndForwardedToOrigin": Object { - "CookiesConfig": Object { + "ParametersInCacheKeyAndForwardedToOrigin": { + "CookiesConfig": { "CookieBehavior": "all", }, "EnableAcceptEncodingBrotli": true, "EnableAcceptEncodingGzip": true, - "HeadersConfig": Object { + "HeadersConfig": { "HeaderBehavior": "whitelist", - "Headers": Array [ + "Headers": [ "authorization", "Origin", "X-HTTP-Method-Override", @@ -4031,7 +4031,7 @@ sudo service iptables save", "X-Method-Override", ], }, - "QueryStringsConfig": Object { + "QueryStringsConfig": { "QueryStringBehavior": "all", }, }, @@ -4039,29 +4039,29 @@ sudo service iptables save", }, "Type": "AWS::CloudFront::CachePolicy", }, - "WebappUpdateAmplifyOriginSourceParameter3F609A08": Object { + "WebappUpdateAmplifyOriginSourceParameter3F609A08": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "WebappUpdateAmplifyOriginSourceParameterCustomResourcePolicy5D80E122", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ + [ "{"service":"ssm","action":"putParameter","parameters":{"Name":"", - Object { + { "Ref": "WebappOriginSourceParameterD87E143B", }, "","Value":"https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, "","Overwrite":true},"physicalResourceId":{"id":"", - Object { + { "Ref": "WebappOriginSourceParameterD87E143B", }, ""}}", @@ -4069,29 +4069,29 @@ sudo service iptables save", ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ + [ "{"service":"ssm","action":"putParameter","parameters":{"Name":"", - Object { + { "Ref": "WebappOriginSourceParameterD87E143B", }, "","Value":"https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, "","Overwrite":true},"physicalResourceId":{"id":"", - Object { + { "Ref": "WebappOriginSourceParameterD87E143B", }, ""}}", @@ -4102,23 +4102,23 @@ sudo service iptables save", "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "WebappUpdateAmplifyOriginSourceParameterCustomResourcePolicy5D80E122": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "WebappUpdateAmplifyOriginSourceParameterCustomResourcePolicy5D80E122": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ssm:PutParameter", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-west-2:123456789012:parameter/", - Object { + { "Ref": "WebappOriginSourceParameterD87E143B", }, ], @@ -4129,8 +4129,8 @@ sudo service iptables save", "Version": "2012-10-17", }, "PolicyName": "WebappUpdateAmplifyOriginSourceParameterCustomResourcePolicy5D80E122", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], @@ -4138,22 +4138,22 @@ sudo service iptables save", "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit.test.ts.snap b/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit.test.ts.snap index 927f444..70d718a 100644 --- a/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit.test.ts.snap +++ b/cdk/test/__snapshots__/serverless-fullstack-webapp-starter-kit.test.ts.snap @@ -1,29 +1,29 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`Snapshot test 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CertificateV29EE77EAF": Object { - "Properties": Object { + "Resources": { + "CertificateV29EE77EAF": { + "Properties": { "DomainName": "*.example.com", - "DomainValidationOptions": Array [ - Object { + "DomainValidationOptions": [ + { "DomainName": "example.com", "HostedZoneId": "DUMMY", }, ], - "SubjectAlternativeNames": Array [ + "SubjectAlternativeNames": [ "example.com", ], - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitUsEast1Stack/CertificateV2", }, @@ -32,19 +32,19 @@ Object { }, "Type": "AWS::CertificateManager::Certificate", }, - "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A": Object { - "DependsOn": Array [ + "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A": { + "DependsOn": [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-east-1", "S3Key": "REDACTED", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", "Arn", ], @@ -54,44 +54,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:DeleteParameters", "ssm:ListTagsForResource", "ssm:GetParameters", "ssm:PutParameter", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-west-2:123456789012:parameter/cdk/exports/*", @@ -109,21 +109,21 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ExportsWriteruswest209BD44F0A7CF058B": Object { + "ExportsWriteruswest209BD44F0A7CF058B": { "DeletionPolicy": "Delete", - "Properties": Object { - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A", "Arn", ], }, - "WriterProps": Object { - "exports": Object { - "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefCertificateV29EE77EAF5C85697F": Object { + "WriterProps": { + "exports": { + "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefCertificateV29EE77EAF5C85697F": { "Ref": "CertificateV29EE77EAF", }, - "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA": Object { + "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA": { "Ref": "SignPayloadHandlerFunctionVersionF9FE430A", }, }, @@ -133,11 +133,11 @@ Object { "Type": "Custom::CrossRegionExportWriter", "UpdateReplacePolicy": "Delete", }, - "Record83264F3E": Object { - "Properties": Object { + "Record83264F3E": { + "Properties": { "HostedZoneId": "DUMMY", "Name": "example.com.", - "ResourceRecords": Array [ + "ResourceRecords": [ "8.8.8.8", ], "TTL": "1800", @@ -145,18 +145,18 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "SignPayloadHandlerCFEAA14C": Object { - "DependsOn": Array [ + "SignPayloadHandlerCFEAA14C": { + "DependsOn": [ "SignPayloadHandlerServiceRole29261232", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-east-1", "S3Key": "REDACTED", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SignPayloadHandlerServiceRole29261232", "Arn", ], @@ -165,51 +165,51 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SignPayloadHandlerCurrentVersionREDACTED": Object { - "Properties": Object { - "FunctionName": Object { + "SignPayloadHandlerCurrentVersionREDACTED": { + "Properties": { + "FunctionName": { "Ref": "SignPayloadHandlerCFEAA14C", }, }, "Type": "AWS::Lambda::Version", }, - "SignPayloadHandlerFunctionVersionF9FE430A": Object { - "Properties": Object { + "SignPayloadHandlerFunctionVersionF9FE430A": { + "Properties": { "Type": "String", - "Value": Object { + "Value": { "Ref": "SignPayloadHandlerCurrentVersionREDACTED", }, }, "Type": "AWS::SSM::Parameter", }, - "SignPayloadHandlerServiceRole29261232": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SignPayloadHandlerServiceRole29261232": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, - Object { + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "edgelambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -221,22 +221,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -252,69 +252,69 @@ Object { `; exports[`Snapshot test 2`] = ` -Object { +{ "Description": "Serverless fullstack webapp stack (uksb-1tupboc47)", - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "AsyncJobHandlerArnCA46B385": Object { - "Value": Object { - "Fn::GetAtt": Array [ + "Outputs": { + "AsyncJobHandlerArnCA46B385": { + "Value": { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, }, - "AuthUserPoolClientId8216BF9A": Object { - "Value": Object { + "AuthUserPoolClientId8216BF9A": { + "Value": { "Ref": "AuthUserPoolClientC635291F", }, }, - "AuthUserPoolDomainName8D4A2606": Object { + "AuthUserPoolDomainName8D4A2606": { "Value": "auth.example.com", }, - "AuthUserPoolIdC0605E59": Object { - "Value": Object { + "AuthUserPoolIdC0605E59": { + "Value": { "Ref": "AuthUserPool8115E87F", }, }, - "DatabaseBastionHostBastionHostId1600F37C": Object { + "DatabaseBastionHostBastionHostId1600F37C": { "Description": "Instance ID of the bastion host. Use this to connect via SSM Session Manager", - "Value": Object { + "Value": { "Ref": "DatabaseBastionHost4C4FAD9C", }, }, - "DatabaseDatabaseSecretsCommandF4A622EB": Object { - "Value": Object { - "Fn::Join": Array [ + "DatabaseDatabaseSecretsCommandF4A622EB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "aws secretsmanager get-secret-value --secret-id ", - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "-", - Array [ - Object { - "Fn::Select": Array [ + [ + { + "Fn::Select": [ 0, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "-", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 6, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ], @@ -325,19 +325,19 @@ Object { }, ], }, - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 1, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "-", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 6, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ], @@ -356,32 +356,32 @@ Object { ], }, }, - "DatabasePortForwardCommandC3718B89": Object { - "Value": Object { - "Fn::Join": Array [ + "DatabasePortForwardCommandC3718B89": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "aws ssm start-session --region us-west-2 --target ", - Object { + { "Ref": "DatabaseBastionHost4C4FAD9C", }, " --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"portNumber":["", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, ""], "localPortNumber":["", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, ""], "host": ["", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], @@ -391,14 +391,14 @@ Object { ], }, }, - "EventBusHttpEndpoint1C68A807": Object { - "Value": Object { - "Fn::Join": Array [ + "EventBusHttpEndpoint1C68A807": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "Dns.Http", ], @@ -407,16 +407,16 @@ Object { ], }, }, - "FrontendDomainName": Object { + "FrontendDomainName": { "Value": "https://web.example.com", }, - "MigrationCommand": Object { - "Value": Object { - "Fn::Join": Array [ + "MigrationCommand": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "aws lambda invoke --function-name ", - Object { + { "Ref": "WebappMigrationRunnerAC67C012", }, " --payload '{"command":"deploy"}' --cli-binary-format raw-in-base64-out /dev/stdout", @@ -424,36 +424,36 @@ Object { ], }, }, - "MigrationFunctionName": Object { - "Value": Object { + "MigrationFunctionName": { + "Value": { "Ref": "WebappMigrationRunnerAC67C012", }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, - "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter": Object { + "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter": { "Default": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWS679f53fac002430cb0da5b7982bd22872D164C4C": Object { - "DependsOn": Array [ + "Resources": { + "AWS679f53fac002430cb0da5b7982bd22872D164C4C": { + "DependsOn": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", "Arn", ], @@ -463,27 +463,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -494,19 +494,19 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AWSCDKTriggerCustomResourceProviderCustomResourceProviderHandler97BECD91": Object { - "DependsOn": Array [ + "AWSCDKTriggerCustomResourceProviderCustomResourceProviderHandler97BECD91": { + "DependsOn": [ "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A", "Arn", ], @@ -516,41 +516,41 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWSCDKTriggerCustomResourceProviderCustomResourceProviderRoleE18FAF0A": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "lambda:InvokeFunction", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "WebappMigrationRunnerAC67C012", "Arn", ], @@ -570,17 +570,17 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AccessLogBucketAutoDeleteObjectsCustomResource01AB31E8": Object { + "AccessLogBucketAutoDeleteObjectsCustomResource01AB31E8": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "AccessLogBucketPolicyF52D2D01", ], - "Properties": Object { - "BucketName": Object { + "Properties": { + "BucketName": { "Ref": "AccessLogBucketDA470295", }, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "Arn", ], @@ -589,33 +589,33 @@ Object { "Type": "Custom::S3AutoDeleteObjects", "UpdateReplacePolicy": "Delete", }, - "AccessLogBucketDA470295": Object { + "AccessLogBucketDA470295": { "DeletionPolicy": "Delete", - "Properties": Object { - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256", }, }, ], }, - "OwnershipControls": Object { - "Rules": Array [ - Object { + "OwnershipControls": { + "Rules": [ + { "ObjectOwnership": "ObjectWriter", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:auto-delete-objects", "Value": "true", }, @@ -624,37 +624,37 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Delete", }, - "AccessLogBucketPolicyF52D2D01": Object { - "Properties": Object { - "Bucket": Object { + "AccessLogBucketPolicyF52D2D01": { + "Properties": { + "Bucket": { "Ref": "AccessLogBucketDA470295", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:*", - "Condition": Object { - "Bool": Object { + "Condition": { + "Bool": { "aws:SecureTransport": "false", }, }, "Effect": "Deny", - "Principal": Object { + "Principal": { "AWS": "*", }, - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], @@ -665,35 +665,35 @@ Object { }, ], }, - Object { - "Action": Array [ + { + "Action": [ "s3:PutBucketPolicy", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", ], "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::GetAtt": Array [ + "Principal": { + "AWS": { + "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn", ], }, }, - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "Arn", ], @@ -710,8 +710,8 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "AsyncJobHandler438266BD": Object { - "DependsOn": Array [ + "AsyncJobHandler438266BD": { + "DependsOn": [ "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5", "AsyncJobHandlerServiceRoleFE9F530F", "VpcPrivateSubnet1DefaultRouteBE02A9ED", @@ -721,81 +721,81 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "ImageUri": Object { + "Code": { + "ImageUri": { "Fn::Sub": "REDACTED", }, }, - "Environment": Object { - "Variables": Object { - "DATABASE_ENGINE": Object { - "Fn::Join": Array [ + "Environment": { + "Variables": { + "DATABASE_ENGINE": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}", ], ], }, - "DATABASE_HOST": Object { - "Fn::GetAtt": Array [ + "DATABASE_HOST": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, "DATABASE_NAME": "main", "DATABASE_OPTION": "?pool_timeout=20&connect_timeout=20", - "DATABASE_PASSWORD": Object { - "Fn::Join": Array [ + "DATABASE_PASSWORD": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}", ], ], }, - "DATABASE_PORT": Object { - "Fn::GetAtt": Array [ + "DATABASE_PORT": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "DATABASE_URL": Object { - "Fn::Join": Array [ + "DATABASE_URL": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}://{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}:{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}@", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -804,25 +804,25 @@ Object { ], ], }, - "DATABASE_USER": Object { - "Fn::Join": Array [ + "DATABASE_USER": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}", ], ], }, - "EVENT_HTTP_ENDPOINT": Object { - "Fn::Join": Array [ + "EVENT_HTTP_ENDPOINT": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "Dns.Http", ], @@ -832,38 +832,38 @@ Object { }, }, }, - "ImageConfig": Object { - "Command": Array [ + "ImageConfig": { + "Command": [ "async-job-runner.handler", ], }, "MemorySize": 256, "PackageType": "Image", "ReservedConcurrentExecutions": 1, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AsyncJobHandlerServiceRoleFE9F530F", "Arn", ], }, "Timeout": 600, - "VpcConfig": Object { - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "AsyncJobHandlerSecurityGroupF59812E6", "GroupId", ], }, ], - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], @@ -871,8 +871,8 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AsyncJobHandlerSecurityGroupF59812E6": Object { - "DependsOn": Array [ + "AsyncJobHandlerSecurityGroupF59812E6": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -880,23 +880,23 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "GroupDescription": "Automatic security group for Lambda Function ServerlessWebappStarterKitStackAsyncJobHandlerF20B94EA", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5": Object { - "DependsOn": Array [ + "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -904,23 +904,23 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "appsync:EventPublish", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":appsync:us-west-2:123456789012:apis/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "ApiId", ], @@ -930,8 +930,8 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "translate:TranslateText", "comprehend:DetectDominantLanguage", ], @@ -942,16 +942,16 @@ Object { "Version": "2012-10-17", }, "PolicyName": "AsyncJobHandlerServiceRoleDefaultPolicy0B2DEDB5", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AsyncJobHandlerServiceRoleFE9F530F", }, ], }, "Type": "AWS::IAM::Policy", }, - "AsyncJobHandlerServiceRoleFE9F530F": Object { - "DependsOn": Array [ + "AsyncJobHandlerServiceRoleFE9F530F": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -959,38 +959,38 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole", @@ -1001,28 +1001,28 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AsyncJobSampleJob3C1EBA2C": Object { - "Properties": Object { - "FlexibleTimeWindow": Object { + "AsyncJobSampleJob3C1EBA2C": { + "Properties": { + "FlexibleTimeWindow": { "Mode": "OFF", }, "ScheduleExpression": "cron(0 0 1 * ? *)", "ScheduleExpressionTimezone": "Etc/UTC", "State": "ENABLED", - "Target": Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Target": { + "Arn": { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, "Input": "{"jobType":"SampleJob"}", - "RetryPolicy": Object { + "RetryPolicy": { "MaximumEventAgeInSeconds": 86400, "MaximumRetryAttempts": 5, }, - "RoleArn": Object { - "Fn::GetAtt": Array [ + "RoleArn": { + "Fn::GetAtt": [ "SchedulerRoleForTarget44ece2CFC6840F", "Arn", ], @@ -1031,25 +1031,25 @@ Object { }, "Type": "AWS::Scheduler::Schedule", }, - "AuthBranding34BB87FD": Object { - "Properties": Object { - "ClientId": Object { + "AuthBranding34BB87FD": { + "Properties": { + "ClientId": { "Ref": "AuthUserPoolClientC635291F", }, "UseCognitoProvidedValues": true, - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, "Type": "AWS::Cognito::ManagedLoginBranding", }, - "AuthCognitoDomainRecordBA8AA168": Object { - "Properties": Object { + "AuthCognitoDomainRecordBA8AA168": { + "Properties": { "HostedZoneId": "DUMMY", "Name": "auth.example.com.", - "ResourceRecords": Array [ - Object { - "Fn::GetAtt": Array [ + "ResourceRecords": [ + { + "Fn::GetAtt": [ "AuthUserPoolCognitoDomainAD9D79E1", "CloudFrontDistribution", ], @@ -1060,31 +1060,31 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "AuthUserPool8115E87F": Object { + "AuthUserPool8115E87F": { "DeletionPolicy": "Delete", - "Properties": Object { - "AccountRecoverySetting": Object { - "RecoveryMechanisms": Array [ - Object { + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { "Name": "verified_phone_number", "Priority": 1, }, - Object { + { "Name": "verified_email", "Priority": 2, }, ], }, - "AdminCreateUserConfig": Object { + "AdminCreateUserConfig": { "AllowAdminCreateUserOnly": false, }, - "AutoVerifiedAttributes": Array [ + "AutoVerifiedAttributes": [ "email", ], "EmailVerificationMessage": "The verification code to your new account is {####}", "EmailVerificationSubject": "Verify your new account", - "Policies": Object { - "PasswordPolicy": Object { + "Policies": { + "PasswordPolicy": { "MinimumLength": 8, "RequireNumbers": true, "RequireSymbols": true, @@ -1092,10 +1092,10 @@ Object { }, }, "SmsVerificationMessage": "The verification code to your new account is {####}", - "UsernameAttributes": Array [ + "UsernameAttributes": [ "email", ], - "VerificationMessageTemplate": Object { + "VerificationMessageTemplate": { "DefaultEmailOption": "CONFIRM_WITH_CODE", "EmailMessage": "The verification code to your new account is {####}", "EmailSubject": "Verify your new account", @@ -1105,50 +1105,50 @@ Object { "Type": "AWS::Cognito::UserPool", "UpdateReplacePolicy": "Delete", }, - "AuthUserPoolClientC635291F": Object { - "Properties": Object { - "AllowedOAuthFlows": Array [ + "AuthUserPoolClientC635291F": { + "Properties": { + "AllowedOAuthFlows": [ "code", ], "AllowedOAuthFlowsUserPoolClient": true, - "AllowedOAuthScopes": Array [ + "AllowedOAuthScopes": [ "profile", "phone", "email", "openid", "aws.cognito.signin.user.admin", ], - "CallbackURLs": Array [ + "CallbackURLs": [ "http://localhost:3010/api/auth/sign-in-callback", "https://web.example.com/api/auth/sign-in-callback", ], - "ExplicitAuthFlows": Array [ + "ExplicitAuthFlows": [ "ALLOW_USER_PASSWORD_AUTH", "ALLOW_USER_SRP_AUTH", "ALLOW_REFRESH_TOKEN_AUTH", ], "IdTokenValidity": 1440, - "LogoutURLs": Array [ + "LogoutURLs": [ "http://localhost:3010/api/auth/sign-out-callback", "https://web.example.com/api/auth/sign-out-callback", ], - "SupportedIdentityProviders": Array [ + "SupportedIdentityProviders": [ "COGNITO", ], - "TokenValidityUnits": Object { + "TokenValidityUnits": { "IdToken": "minutes", }, - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, "Type": "AWS::Cognito::UserPoolClient", }, - "AuthUserPoolCognitoDomainAD9D79E1": Object { - "Properties": Object { - "CustomDomainConfig": Object { - "CertificateArn": Object { - "Fn::GetAtt": Array [ + "AuthUserPoolCognitoDomainAD9D79E1": { + "Properties": { + "CustomDomainConfig": { + "CertificateArn": { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefCertificateV29EE77EAF5C85697F", ], @@ -1156,35 +1156,35 @@ Object { }, "Domain": "auth.example.com", "ManagedLoginVersion": 2, - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, "Type": "AWS::Cognito::UserPoolDomain", }, - "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549": Object { - "Properties": Object { - "Artifacts": Object { + "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549": { + "Properties": { + "Artifacts": { "Type": "NO_ARTIFACTS", }, - "Cache": Object { + "Cache": { "Type": "NO_CACHE", }, "EncryptionKey": "alias/aws/s3", - "Environment": Object { + "Environment": { "ComputeType": "BUILD_GENERAL1_SMALL", "Image": "aws/codebuild/amazonlinux2-aarch64-standard:3.0", "ImagePullCredentialsType": "CODEBUILD", "PrivilegedMode": true, "Type": "ARM_CONTAINER", }, - "ServiceRole": Object { - "Fn::GetAtt": Array [ + "ServiceRole": { + "Fn::GetAtt": [ "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE", "Arn", ], }, - "Source": Object { + "Source": { "BuildSpec": "{ "version": "0.2", "phases": { @@ -1217,27 +1217,27 @@ Object { }, "Type": "AWS::CodeBuild::Project", }, - "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "codebuild.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly", @@ -1248,43 +1248,43 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":logs:us-west-2:123456789012:log-group:/aws/codebuild/", - Object { + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":logs:us-west-2:123456789012:log-group:/aws/codebuild/", - Object { + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, ":*", @@ -1293,8 +1293,8 @@ Object { }, ], }, - Object { - "Action": Array [ + { + "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", @@ -1302,16 +1302,16 @@ Object { "codebuild:BatchPutCodeCoverages", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":codebuild:us-west-2:123456789012:report-group/", - Object { + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, "-*", @@ -1319,8 +1319,8 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", @@ -1330,54 +1330,54 @@ Object { "ecr:PutImage", ], "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], }, }, - Object { + { "Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "ecr:DescribeImages", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], }, }, - Object { - "Action": Array [ + { + "Action": [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::Join": Array [ + "Resource": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":s3:::cdk-hnb659fds-assets-123456789012-us-west-2", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":s3:::cdk-hnb659fds-assets-123456789012-us-west-2/*", @@ -1390,27 +1390,27 @@ Object { "Version": "2012-10-17", }, "PolicyName": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE", }, ], }, "Type": "AWS::IAM::Policy", }, - "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68": Object { - "DependsOn": Array [ + "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68": { + "DependsOn": [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", "Arn", ], @@ -1420,42 +1420,42 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:AddTagsToResource", "ssm:RemoveTagsFromResource", "ssm:GetParameters", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-west-2:123456789012:parameter/cdk/exports/ServerlessWebappStarterKitStack/*", @@ -1472,21 +1472,21 @@ Object { }, "Type": "AWS::IAM::Role", }, - "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": Object { - "DependsOn": Array [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": { + "DependsOn": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, - "Description": Object { - "Fn::Join": Array [ + "Description": { + "Fn::Join": [ "", - Array [ + [ "Lambda function for auto-deleting objects in ", - Object { + { "Ref": "AccessLogBucketDA470295", }, " S3 bucket.", @@ -1495,8 +1495,8 @@ Object { }, "Handler": "index.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn", ], @@ -1506,100 +1506,100 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], }, "Type": "AWS::IAM::Role", }, - "DatabaseBastionHost4C4FAD9C": Object { - "DependsOn": Array [ + "DatabaseBastionHost4C4FAD9C": { + "DependsOn": [ "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA", "DatabaseBastionHostInstanceRole87A429B0", ], - "Properties": Object { + "Properties": { "AvailabilityZone": "dummy1a", - "BlockDeviceMappings": Array [ - Object { + "BlockDeviceMappings": [ + { "DeviceName": "/dev/sdf", - "Ebs": Object { + "Ebs": { "Encrypted": true, "VolumeSize": 8, }, }, ], - "IamInstanceProfile": Object { + "IamInstanceProfile": { "Ref": "DatabaseBastionHostInstanceProfile0F4F3411", }, - "ImageId": Object { + "ImageId": { "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter", }, "InstanceType": "t4g.nano", - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "DatabaseBastionHostInstanceSecurityGroup39D7809A", "GroupId", ], }, ], - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "BastionHost", }, ], - "UserData": Object { + "UserData": { "Fn::Base64": "#!/bin/bash", }, }, "Type": "AWS::EC2::Instance", }, - "DatabaseBastionHostInstanceProfile0F4F3411": Object { - "Properties": Object { - "Roles": Array [ - Object { + "DatabaseBastionHostInstanceProfile0F4F3411": { + "Properties": { + "Roles": [ + { "Ref": "DatabaseBastionHostInstanceRole87A429B0", }, ], }, "Type": "AWS::IAM::InstanceProfile", }, - "DatabaseBastionHostInstanceRole87A429B0": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "DatabaseBastionHostInstanceRole87A429B0": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ec2.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "BastionHost", }, @@ -1607,12 +1607,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssmmessages:*", "ssm:UpdateInstanceInformation", "ec2messages:*", @@ -1624,66 +1624,66 @@ Object { "Version": "2012-10-17", }, "PolicyName": "DatabaseBastionHostInstanceRoleDefaultPolicy15D8D0EA", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "DatabaseBastionHostInstanceRole87A429B0", }, ], }, "Type": "AWS::IAM::Policy", }, - "DatabaseBastionHostInstanceSecurityGroup39D7809A": Object { - "Properties": Object { + "DatabaseBastionHostInstanceSecurityGroup39D7809A": { + "Properties": { "GroupDescription": "ServerlessWebappStarterKitStack/Database/BastionHost/Resource/InstanceSecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "BastionHost", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "DatabaseCluster5B53A178": Object { + "DatabaseCluster5B53A178": { "DeletionPolicy": "Snapshot", - "Properties": Object { + "Properties": { "CopyTagsToSnapshot": true, - "DBClusterParameterGroupName": Object { + "DBClusterParameterGroupName": { "Ref": "DatabaseParameterGroup2A921026", }, - "DBSubnetGroupName": Object { + "DBSubnetGroupName": { "Ref": "DatabaseClusterSubnets5540150D", }, "Engine": "aurora-postgresql", "EngineVersion": "16.6", - "MasterUserPassword": Object { - "Fn::Join": Array [ + "MasterUserPassword": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ":SecretString:password::}}", ], ], }, - "MasterUsername": Object { - "Fn::Join": Array [ + "MasterUsername": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretD1FB634F", }, ":SecretString:username::}}", @@ -1691,14 +1691,14 @@ Object { ], }, "Port": 5432, - "ServerlessV2ScalingConfiguration": Object { + "ServerlessV2ScalingConfiguration": { "MaxCapacity": 2, "MinCapacity": 0, }, "StorageEncrypted": true, - "VpcSecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcSecurityGroupIds": [ + { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], @@ -1708,33 +1708,33 @@ Object { "Type": "AWS::RDS::DBCluster", "UpdateReplacePolicy": "Snapshot", }, - "DatabaseClusterSecretAttachmentDC8466C0": Object { - "Properties": Object { - "SecretId": Object { + "DatabaseClusterSecretAttachmentDC8466C0": { + "Properties": { + "SecretId": { "Ref": "DatabaseClusterSecretD1FB634F", }, - "TargetId": Object { + "TargetId": { "Ref": "DatabaseCluster5B53A178", }, "TargetType": "AWS::RDS::DBCluster", }, "Type": "AWS::SecretsManager::SecretTargetAttachment", }, - "DatabaseClusterSecretD1FB634F": Object { + "DatabaseClusterSecretD1FB634F": { "DeletionPolicy": "Delete", - "Properties": Object { - "Description": Object { - "Fn::Join": Array [ + "Properties": { + "Description": { + "Fn::Join": [ "", - Array [ + [ "Generated by the CDK for stack: ", - Object { + { "Ref": "AWS::StackName", }, ], ], }, - "GenerateSecretString": Object { + "GenerateSecretString": { "ExcludeCharacters": " %+~\`#$&*()|[]{}:;<>?!'/@"\\,=^", "GenerateStringKey": "password", "PasswordLength": 30, @@ -1744,46 +1744,46 @@ Object { "Type": "AWS::SecretsManager::Secret", "UpdateReplacePolicy": "Delete", }, - "DatabaseClusterSecurityGroupFEF1426A": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupFEF1426A": { + "Properties": { "GroupDescription": "RDS security group", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackAsyncJobHandlerSecurityGroup5220DFB3IndirectPort9323962E": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackAsyncJobHandlerSecurityGroup5220DFB3IndirectPort9323962E": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackAsyncJobHandlerSecurityGroup5220DFB3:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "AsyncJobHandlerSecurityGroupF59812E6", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1791,30 +1791,30 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackDatabaseBastionHostInstanceSecurityGroup4F0DD25BIndirectPort8AFD9922": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackDatabaseBastionHostInstanceSecurityGroup4F0DD25BIndirectPort8AFD9922": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackDatabaseBastionHostInstanceSecurityGroup4F0DD25B:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "DatabaseBastionHostInstanceSecurityGroup39D7809A", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1822,30 +1822,30 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappHandlerSecurityGroupA009CF4AIndirectPort7311063E": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappHandlerSecurityGroupA009CF4AIndirectPort7311063E": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackWebappHandlerSecurityGroupA009CF4A:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "WebappHandlerSecurityGroup5451B519", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1853,30 +1853,30 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappMigrationRunnerSecurityGroupC0959349IndirectPortDCF4A356": Object { - "Properties": Object { + "DatabaseClusterSecurityGroupfromServerlessWebappStarterKitStackWebappMigrationRunnerSecurityGroupC0959349IndirectPortDCF4A356": { + "Properties": { "Description": "from ServerlessWebappStarterKitStackWebappMigrationRunnerSecurityGroupC0959349:{IndirectPort}", - "FromPort": Object { - "Fn::GetAtt": Array [ + "FromPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "GroupId": Object { - "Fn::GetAtt": Array [ + "GroupId": { + "Fn::GetAtt": [ "DatabaseClusterSecurityGroupFEF1426A", "GroupId", ], }, "IpProtocol": "tcp", - "SourceSecurityGroupId": Object { - "Fn::GetAtt": Array [ + "SourceSecurityGroupId": { + "Fn::GetAtt": [ "WebappMigrationRunnerSecurityGroup7F0DF264", "GroupId", ], }, - "ToPort": Object { - "Fn::GetAtt": Array [ + "ToPort": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -1884,26 +1884,26 @@ Object { }, "Type": "AWS::EC2::SecurityGroupIngress", }, - "DatabaseClusterSubnets5540150D": Object { - "Properties": Object { + "DatabaseClusterSubnets5540150D": { + "Properties": { "DBSubnetGroupDescription": "Subnets for Cluster database", - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], }, "Type": "AWS::RDS::DBSubnetGroup", }, - "DatabaseClusterWriterD43085C6": Object { + "DatabaseClusterWriterD43085C6": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -1911,9 +1911,9 @@ Object { "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "AutoMinorVersionUpgrade": true, - "DBClusterIdentifier": Object { + "DBClusterIdentifier": { "Ref": "DatabaseCluster5B53A178", }, "DBInstanceClass": "db.serverless", @@ -1926,29 +1926,29 @@ Object { "Type": "AWS::RDS::DBInstance", "UpdateReplacePolicy": "Delete", }, - "DatabaseParameterGroup2A921026": Object { - "Properties": Object { + "DatabaseParameterGroup2A921026": { + "Properties": { "Description": "Cluster parameter group for aurora-postgresql16", "Family": "aurora-postgresql16", - "Parameters": Object { + "Parameters": { "idle_session_timeout": "60000", }, }, "Type": "AWS::RDS::DBClusterParameterGroup", }, - "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f306AEFF37": Object { - "DependsOn": Array [ + "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f306AEFF37": { + "DependsOn": [ "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC", "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "S3Bucket": "cdk-hnb659fds-assets-123456789012-us-west-2", "S3Key": "REDACTED", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4", "Arn", ], @@ -1958,27 +1958,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -1989,15 +1989,15 @@ Object { }, "Type": "AWS::IAM::Role", }, - "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "codebuild:StartBuild", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", "Arn", ], @@ -2007,49 +2007,49 @@ Object { "Version": "2012-10-17", }, "PolicyName": "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleDefaultPolicyFECC51DC", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f3ServiceRoleB008BAA4", }, ], }, "Type": "AWS::IAM::Policy", }, - "EventBusApi6E8C7C94": Object { - "Properties": Object { - "EventConfig": Object { - "AuthProviders": Array [ - Object { + "EventBusApi6E8C7C94": { + "Properties": { + "EventConfig": { + "AuthProviders": [ + { "AuthType": "AWS_IAM", }, - Object { + { "AuthType": "AMAZON_COGNITO_USER_POOLS", - "CognitoConfig": Object { + "CognitoConfig": { "AwsRegion": "us-west-2", - "UserPoolId": Object { + "UserPoolId": { "Ref": "AuthUserPool8115E87F", }, }, }, ], - "ConnectionAuthModes": Array [ - Object { + "ConnectionAuthModes": [ + { "AuthType": "AWS_IAM", }, - Object { + { "AuthType": "AMAZON_COGNITO_USER_POOLS", }, ], - "DefaultPublishAuthModes": Array [ - Object { + "DefaultPublishAuthModes": [ + { "AuthType": "AWS_IAM", }, ], - "DefaultSubscribeAuthModes": Array [ - Object { + "DefaultSubscribeAuthModes": [ + { "AuthType": "AWS_IAM", }, - Object { + { "AuthType": "AMAZON_COGNITO_USER_POOLS", }, ], @@ -2058,33 +2058,33 @@ Object { }, "Type": "AWS::AppSync::Api", }, - "EventBusNamespaceA69F015E": Object { - "Properties": Object { - "ApiId": Object { - "Fn::GetAtt": Array [ + "EventBusNamespaceA69F015E": { + "Properties": { + "ApiId": { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "ApiId", ], }, "CodeS3Location": "s3://cdk-hnb659fds-assets-123456789012-us-west-2/REDACTED", - "HandlerConfigs": Object {}, + "HandlerConfigs": {}, "Name": "event-bus", }, "Type": "AWS::AppSync::ChannelNamespace", }, - "ExportsReader8B249524": Object { + "ExportsReader8B249524": { "DeletionPolicy": "Delete", - "Properties": Object { - "ReaderProps": Object { - "imports": Object { + "Properties": { + "ReaderProps": { + "imports": { "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefCertificateV29EE77EAF5C85697F": "{{resolve:ssm:/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefCertificateV29EE77EAF5C85697F}}", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA": "{{resolve:ssm:/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA}}", }, "prefix": "ServerlessWebappStarterKitStack", "region": "us-west-2", }, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68", "Arn", ], @@ -2093,19 +2093,19 @@ Object { "Type": "Custom::CrossRegionExportReader", "UpdateReplacePolicy": "Delete", }, - "LookupVersionArnc8730278af02f875114ca902814c77b68f19b0087110E04D0A": Object { + "LookupVersionArnc8730278af02f875114ca902814c77b68f19b0087110E04D0A": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ + [ "{"service":"SSM","action":"getParameter","parameters":{"Name":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA", ], @@ -2115,19 +2115,19 @@ Object { ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ + [ "{"service":"SSM","action":"getParameter","parameters":{"Name":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA", ], @@ -2140,24 +2140,24 @@ Object { "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ssm:GetParameter", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:123456789012:parameter/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefSignPayloadHandlerFunctionVersionF9FE430A3006B9FA", ], @@ -2170,29 +2170,29 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LookupVersionArnc8730278af02f875114ca902814c77b68f19b00871CustomResourcePolicy7CD24C5F", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "SchedulerRoleForTarget44ece2CFC6840F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SchedulerRoleForTarget44ece2CFC6840F": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", - "Condition": Object { - "StringEquals": Object { + "Condition": { + "StringEquals": { "aws:SourceAccount": "123456789012", - "aws:SourceArn": Object { - "Fn::Join": Array [ + "aws:SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":scheduler:us-west-2:123456789012:schedule-group/default", @@ -2202,7 +2202,7 @@ Object { }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "scheduler.amazonaws.com", }, }, @@ -2212,26 +2212,26 @@ Object { }, "Type": "AWS::IAM::Role", }, - "SchedulerRoleForTarget44ece2DefaultPolicyFDF3E159": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "SchedulerRoleForTarget44ece2DefaultPolicyFDF3E159": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "lambda:InvokeFunction", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], @@ -2246,22 +2246,22 @@ Object { "Version": "2012-10-17", }, "PolicyName": "SchedulerRoleForTarget44ece2DefaultPolicyFDF3E159", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SchedulerRoleForTarget44ece2CFC6840F", }, ], }, "Type": "AWS::IAM::Policy", }, - "Vpc8378EB38": Object { - "Properties": Object { + "Vpc8378EB38": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc", }, @@ -2269,10 +2269,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "VpcIGWD7BA715C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcIGWD7BA715C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc", }, @@ -2280,276 +2280,276 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "VpcNatSecurityGroup8DA26EDC": Object { - "Properties": Object { + "VpcNatSecurityGroup8DA26EDC": { + "Properties": { "GroupDescription": "Security Group for NAT instances", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "SecurityGroupIngress": Array [ - Object { + "SecurityGroupIngress": [ + { "CidrIp": "0.0.0.0/0", "Description": "from 0.0.0.0/0:ALL TRAFFIC", "IpProtocol": "-1", }, ], - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "VpcPrivateSubnet1DefaultRouteBE02A9ED": Object { - "Properties": Object { + "VpcPrivateSubnet1DefaultRouteBE02A9ED": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "InstanceId": Object { + "InstanceId": { "Ref": "VpcPublicSubnet1NatInstance57B636B8", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet1RouteTableAssociation70C59FA6": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet1RouteTableAssociation70C59FA6": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet1RouteTableB2C5B500": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet1RouteTableB2C5B500": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet1Subnet536B997A": Object { - "Properties": Object { + "VpcPrivateSubnet1Subnet536B997A": { + "Properties": { "AvailabilityZone": "dummy1a", "CidrBlock": "10.0.96.0/19", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPrivateSubnet2DefaultRoute060D2087": Object { - "Properties": Object { + "VpcPrivateSubnet2DefaultRoute060D2087": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "InstanceId": Object { + "InstanceId": { "Ref": "VpcPublicSubnet1NatInstance57B636B8", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet2RouteTableA678073B": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet2RouteTableA678073B": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet2RouteTableAssociationA89CAD56": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet2RouteTableAssociationA89CAD56": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet2Subnet3788AAA1": Object { - "Properties": Object { + "VpcPrivateSubnet2Subnet3788AAA1": { + "Properties": { "AvailabilityZone": "dummy1b", "CidrBlock": "10.0.128.0/19", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPrivateSubnet3DefaultRoute94B74F0D": Object { - "Properties": Object { + "VpcPrivateSubnet3DefaultRoute94B74F0D": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "InstanceId": Object { + "InstanceId": { "Ref": "VpcPublicSubnet1NatInstance57B636B8", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet3RouteTableD98824C7", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet3RouteTableAssociation16BDDC43": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet3RouteTableAssociation16BDDC43": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet3RouteTableD98824C7", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet3RouteTableD98824C7": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet3RouteTableD98824C7": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet3SubnetF258B56E": Object { - "Properties": Object { + "VpcPrivateSubnet3SubnetF258B56E": { + "Properties": { "AvailabilityZone": "dummy1c", "CidrBlock": "10.0.160.0/19", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PrivateSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet1DefaultRoute3DA9E72A": Object { - "DependsOn": Array [ + "VpcPublicSubnet1DefaultRoute3DA9E72A": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet1NatInstance57B636B8": Object { - "DependsOn": Array [ + "VpcPublicSubnet1NatInstance57B636B8": { + "DependsOn": [ "VpcPublicSubnet1DefaultRoute3DA9E72A", "VpcPublicSubnet1NatInstanceInstanceRole9D835E32", "VpcPublicSubnet1RouteTableAssociation97140677", ], - "Properties": Object { + "Properties": { "AvailabilityZone": "dummy1a", - "IamInstanceProfile": Object { + "IamInstanceProfile": { "Ref": "VpcPublicSubnet1NatInstanceInstanceProfileEE10C485", }, - "ImageId": Object { + "ImageId": { "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikernel61arm64C96584B6F00A464EAD1953AFF4B05118Parameter", }, "InstanceType": "t4g.nano", - "NetworkInterfaces": Array [ - Object { + "NetworkInterfaces": [ + { "AssociatePublicIpAddress": true, "DeviceIndex": "0", - "GroupSet": Array [ - Object { - "Fn::GetAtt": Array [ + "GroupSet": [ + { + "Fn::GetAtt": [ "VpcNatSecurityGroup8DA26EDC", "GroupId", ], }, ], - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, }, ], "SourceDestCheck": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1/NatInstance", }, ], - "UserData": Object { + "UserData": { "Fn::Base64": "#!/bin/bash yum install iptables-services -y systemctl enable iptables @@ -2563,32 +2563,32 @@ sudo service iptables save", }, "Type": "AWS::EC2::Instance", }, - "VpcPublicSubnet1NatInstanceInstanceProfileEE10C485": Object { - "Properties": Object { - "Roles": Array [ - Object { + "VpcPublicSubnet1NatInstanceInstanceProfileEE10C485": { + "Properties": { + "Roles": [ + { "Ref": "VpcPublicSubnet1NatInstanceInstanceRole9D835E32", }, ], }, "Type": "AWS::IAM::InstanceProfile", }, - "VpcPublicSubnet1NatInstanceInstanceRole9D835E32": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "VpcPublicSubnet1NatInstanceInstanceRole9D835E32": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ec2.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1/NatInstance", }, @@ -2596,206 +2596,206 @@ sudo service iptables save", }, "Type": "AWS::IAM::Role", }, - "VpcPublicSubnet1RouteTable6C95E38E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet1RouteTable6C95E38E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet1RouteTableAssociation97140677": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet1RouteTableAssociation97140677": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet1Subnet5C2D37C4": Object { - "Properties": Object { + "VpcPublicSubnet1Subnet5C2D37C4": { + "Properties": { "AvailabilityZone": "dummy1a", "CidrBlock": "10.0.0.0/19", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet2DefaultRoute97F91067": Object { - "DependsOn": Array [ + "VpcPublicSubnet2DefaultRoute97F91067": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet2RouteTable94F7E489": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet2RouteTable94F7E489": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet2RouteTableAssociationDD5762D8": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet2RouteTableAssociationDD5762D8": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet2Subnet691E08A3", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet2Subnet691E08A3": Object { - "Properties": Object { + "VpcPublicSubnet2Subnet691E08A3": { + "Properties": { "AvailabilityZone": "dummy1b", "CidrBlock": "10.0.32.0/19", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet3DefaultRoute4697774F": Object { - "DependsOn": Array [ + "VpcPublicSubnet3DefaultRoute4697774F": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet3RouteTable93458DBB", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet3RouteTable93458DBB": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet3RouteTable93458DBB": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet3RouteTableAssociation1F1EDF02": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet3RouteTableAssociation1F1EDF02": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet3RouteTable93458DBB", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet3SubnetBE12F0B6", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet3SubnetBE12F0B6": Object { - "Properties": Object { + "VpcPublicSubnet3SubnetBE12F0B6": { + "Properties": { "AvailabilityZone": "dummy1c", "CidrBlock": "10.0.64.0/19", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "ServerlessWebappStarterKitStack/Vpc/PublicSubnet3", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcVPCGWBF912B6E": Object { - "Properties": Object { - "InternetGatewayId": Object { + "VpcVPCGWBF912B6E": { + "Properties": { + "InternetGatewayId": { "Ref": "VpcIGWD7BA715C", }, - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "Webapp107041BD": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "Webapp107041BD": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "web.example.com", ], "Comment": "CloudFront for Webapp", - "DefaultCacheBehavior": Object { - "AllowedMethods": Array [ + "DefaultCacheBehavior": { + "AllowedMethods": [ "GET", "HEAD", "OPTIONS", @@ -2804,16 +2804,16 @@ sudo service iptables save", "POST", "DELETE", ], - "CachePolicyId": Object { + "CachePolicyId": { "Ref": "WebappSharedCachePolicy14FEE4A0", }, "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", "IncludeBody": true, - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "LookupVersionArnc8730278af02f875114ca902814c77b68f19b0087110E04D0A", "Parameter.Value", ], @@ -2827,33 +2827,33 @@ sudo service iptables save", "Enabled": true, "HttpVersion": "http2", "IPV6Enabled": true, - "Logging": Object { - "Bucket": Object { - "Fn::GetAtt": Array [ + "Logging": { + "Bucket": { + "Fn::GetAtt": [ "AccessLogBucketDA470295", "RegionalDomainName", ], }, "Prefix": "Webapp/", }, - "Origins": Array [ - Object { + "Origins": [ + { "ConnectionTimeout": 6, - "CustomOriginConfig": Object { + "CustomOriginConfig": { "OriginProtocolPolicy": "https-only", "OriginReadTimeout": 60, - "OriginSSLProtocols": Array [ + "OriginSSLProtocols": [ "TLSv1.2", ], }, - "DomainName": Object { - "Fn::Select": Array [ + "DomainName": { + "Fn::Select": [ 2, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappHandlerFunctionUrl7AEF8DEE", "FunctionUrl", ], @@ -2863,17 +2863,17 @@ sudo service iptables save", ], }, "Id": "ServerlessWebappStarterKitStackWebappOrigin1D7B867FF", - "OriginAccessControlId": Object { - "Fn::GetAtt": Array [ + "OriginAccessControlId": { + "Fn::GetAtt": [ "WebappOrigin1FunctionUrlOriginAccessControlEA98B600", "Id", ], }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "ExportsReader8B249524", "/cdk/exports/ServerlessWebappStarterKitStack/ServerlessWebappStarterKitUsEast1Stackuseast1RefCertificateV29EE77EAF5C85697F", ], @@ -2885,40 +2885,40 @@ sudo service iptables save", }, "Type": "AWS::CloudFront::Distribution", }, - "WebappBuild348806E3": Object { + "WebappBuild348806E3": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleDefaultPolicy2316728F", "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64RoleC5F7BBFE", ], - "Properties": Object { - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ "DeployTimeBuildCustomResourceHandlerdb740fd554364a848a09e6dfcd01f4f306AEFF37", "Arn", ], }, - "buildCommand": Object { - "Fn::Join": Array [ + "buildCommand": { + "Fn::Join": [ "", - Array [ + [ "docker buildx build --build-arg ALLOWED_ORIGIN_HOST=*.example.com --build-arg SKIP_TS_BUILD=true --build-arg NEXT_PUBLIC_EVENT_HTTP_ENDPOINT=https://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "EventBusApi6E8C7C94", "Dns.Http", ], }, " --build-arg NEXT_PUBLIC_AWS_REGION=us-west-2 --platform linux/arm64 --output type=image,name=", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 4, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -2928,14 +2928,14 @@ sudo service iptables save", ], }, ".dkr.ecr.", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 3, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -2945,32 +2945,32 @@ sudo service iptables save", ], }, ".", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "WebappBuildRepository4C93D48D", }, ":,push=true --provenance=false .", ], ], }, - "codeBuildProjectName": Object { + "codeBuildProjectName": { "Ref": "ContainerImageBuildArm64e83729feb1564e709bec452b15847a30amd64C13E3549", }, - "repositoryUri": Object { - "Fn::Join": Array [ + "repositoryUri": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::Select": Array [ + [ + { + "Fn::Select": [ 4, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -2980,14 +2980,14 @@ sudo service iptables save", ], }, ".dkr.ecr.", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 3, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -2997,11 +2997,11 @@ sudo service iptables save", ], }, ".", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "WebappBuildRepository4C93D48D", }, ], @@ -3014,20 +3014,20 @@ sudo service iptables save", "Type": "Custom::CDKContainerImageBuild", "UpdateReplacePolicy": "Delete", }, - "WebappBuildRepository4C93D48D": Object { + "WebappBuildRepository4C93D48D": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "EmptyOnDelete": true, - "RepositoryPolicyText": Object { - "Statement": Array [ - Object { - "Action": Array [ + "RepositoryPolicyText": { + "Statement": [ + { + "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ], "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, @@ -3038,23 +3038,23 @@ sudo service iptables save", "Type": "AWS::ECR::Repository", "UpdateReplacePolicy": "Delete", }, - "WebappCloudFrontInvalidation588CF152": Object { + "WebappCloudFrontInvalidation588CF152": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ + [ "{"service":"cloudfront","action":"createInvalidation","parameters":{"DistributionId":"", - Object { + { "Ref": "Webapp107041BD", }, "","InvalidationBatch":{"CallerReference":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappHandlerCurrentVersionREDACTED", "Version", ], @@ -3064,23 +3064,23 @@ sudo service iptables save", ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ + [ "{"service":"cloudfront","action":"createInvalidation","parameters":{"DistributionId":"", - Object { + { "Ref": "Webapp107041BD", }, "","InvalidationBatch":{"CallerReference":"", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappHandlerCurrentVersionREDACTED", "Version", ], @@ -3093,23 +3093,23 @@ sudo service iptables save", "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "cloudfront:CreateInvalidation", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":cloudfront::123456789012:distribution/", - Object { + { "Ref": "Webapp107041BD", }, ], @@ -3120,16 +3120,16 @@ sudo service iptables save", "Version": "2012-10-17", }, "PolicyName": "WebappCloudFrontInvalidationCustomResourcePolicy18C215D6", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "WebappHandler8DD158A3": Object { - "DependsOn": Array [ + "WebappHandler8DD158A3": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3139,23 +3139,23 @@ sudo service iptables save", "WebappHandlerServiceRoleDefaultPolicy7D06F4EA", "WebappHandlerServiceRole4F4D1ACD", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "ImageUri": Object { - "Fn::Join": Array [ + "Code": { + "ImageUri": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::Select": Array [ + [ + { + "Fn::Select": [ 4, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3165,14 +3165,14 @@ sudo service iptables save", ], }, ".dkr.ecr.", - Object { - "Fn::Select": Array [ + { + "Fn::Select": [ 3, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuildRepository4C93D48D", "Arn", ], @@ -3182,16 +3182,16 @@ sudo service iptables save", ], }, ".", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "WebappBuildRepository4C93D48D", }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "WebappBuild348806E3", "ImageTag", ], @@ -3200,80 +3200,80 @@ sudo service iptables save", ], }, }, - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AMPLIFY_APP_ORIGIN": "https://web.example.com", - "ASYNC_JOB_HANDLER_ARN": Object { - "Fn::GetAtt": Array [ + "ASYNC_JOB_HANDLER_ARN": { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, "COGNITO_DOMAIN": "auth.example.com", - "DATABASE_ENGINE": Object { - "Fn::Join": Array [ + "DATABASE_ENGINE": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}", ], ], }, - "DATABASE_HOST": Object { - "Fn::GetAtt": Array [ + "DATABASE_HOST": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, "DATABASE_NAME": "main", "DATABASE_OPTION": "?pool_timeout=20&connect_timeout=20", - "DATABASE_PASSWORD": Object { - "Fn::Join": Array [ + "DATABASE_PASSWORD": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}", ], ], }, - "DATABASE_PORT": Object { - "Fn::GetAtt": Array [ + "DATABASE_PORT": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "DATABASE_URL": Object { - "Fn::Join": Array [ + "DATABASE_URL": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}://{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}:{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}@", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -3282,52 +3282,52 @@ sudo service iptables save", ], ], }, - "DATABASE_USER": Object { - "Fn::Join": Array [ + "DATABASE_USER": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}", ], ], }, - "USER_POOL_CLIENT_ID": Object { + "USER_POOL_CLIENT_ID": { "Ref": "AuthUserPoolClientC635291F", }, - "USER_POOL_ID": Object { + "USER_POOL_ID": { "Ref": "AuthUserPool8115E87F", }, }, }, "MemorySize": 512, "PackageType": "Image", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "WebappHandlerServiceRole4F4D1ACD", "Arn", ], }, "Timeout": 180, - "VpcConfig": Object { - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "WebappHandlerSecurityGroup5451B519", "GroupId", ], }, ], - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], @@ -3335,8 +3335,8 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Function", }, - "WebappHandlerCurrentVersionREDACTED": Object { - "DependsOn": Array [ + "WebappHandlerCurrentVersionREDACTED": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3344,15 +3344,15 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "FunctionName": Object { + "Properties": { + "FunctionName": { "Ref": "WebappHandler8DD158A3", }, }, "Type": "AWS::Lambda::Version", }, - "WebappHandlerFunctionUrl7AEF8DEE": Object { - "DependsOn": Array [ + "WebappHandlerFunctionUrl7AEF8DEE": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3360,11 +3360,11 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "AuthType": "AWS_IAM", "InvokeMode": "RESPONSE_STREAM", - "TargetFunctionArn": Object { - "Fn::GetAtt": Array [ + "TargetFunctionArn": { + "Fn::GetAtt": [ "WebappHandler8DD158A3", "Arn", ], @@ -3372,8 +3372,8 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Url", }, - "WebappHandlerSecurityGroup5451B519": Object { - "DependsOn": Array [ + "WebappHandlerSecurityGroup5451B519": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3381,23 +3381,23 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "GroupDescription": "Automatic security group for Lambda Function ServerlessWebappStarterKitStackWebappHandlerF1A4ACC9", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "WebappHandlerServiceRole4F4D1ACD": Object { - "DependsOn": Array [ + "WebappHandlerServiceRole4F4D1ACD": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3405,38 +3405,38 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole", @@ -3447,8 +3447,8 @@ sudo service iptables save", }, "Type": "AWS::IAM::Role", }, - "WebappHandlerServiceRoleDefaultPolicy7D06F4EA": Object { - "DependsOn": Array [ + "WebappHandlerServiceRoleDefaultPolicy7D06F4EA": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3456,25 +3456,25 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "lambda:InvokeFunction", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "AsyncJobHandler438266BD", "Arn", ], @@ -3489,16 +3489,16 @@ sudo service iptables save", "Version": "2012-10-17", }, "PolicyName": "WebappHandlerServiceRoleDefaultPolicy7D06F4EA", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "WebappHandlerServiceRole4F4D1ACD", }, ], }, "Type": "AWS::IAM::Policy", }, - "WebappMigrationRunnerAC67C012": Object { - "DependsOn": Array [ + "WebappMigrationRunnerAC67C012": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3507,81 +3507,81 @@ sudo service iptables save", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", "WebappMigrationRunnerServiceRoleE27E1F7A", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "ImageUri": Object { + "Code": { + "ImageUri": { "Fn::Sub": "REDACTED", }, }, - "Environment": Object { - "Variables": Object { - "DATABASE_ENGINE": Object { - "Fn::Join": Array [ + "Environment": { + "Variables": { + "DATABASE_ENGINE": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}", ], ], }, - "DATABASE_HOST": Object { - "Fn::GetAtt": Array [ + "DATABASE_HOST": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, "DATABASE_NAME": "main", "DATABASE_OPTION": "?pool_timeout=20&connect_timeout=20", - "DATABASE_PASSWORD": Object { - "Fn::Join": Array [ + "DATABASE_PASSWORD": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}", ], ], }, - "DATABASE_PORT": Object { - "Fn::GetAtt": Array [ + "DATABASE_PORT": { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], }, - "DATABASE_URL": Object { - "Fn::Join": Array [ + "DATABASE_URL": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:engine::}}://{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}:{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:password::}}@", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Address", ], }, ":", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "DatabaseCluster5B53A178", "Endpoint.Port", ], @@ -3590,12 +3590,12 @@ sudo service iptables save", ], ], }, - "DATABASE_USER": Object { - "Fn::Join": Array [ + "DATABASE_USER": { + "Fn::Join": [ "", - Array [ + [ "{{resolve:secretsmanager:", - Object { + { "Ref": "DatabaseClusterSecretAttachmentDC8466C0", }, ":SecretString:username::}}", @@ -3604,37 +3604,37 @@ sudo service iptables save", }, }, }, - "ImageConfig": Object { - "Command": Array [ + "ImageConfig": { + "Command": [ "migration-runner.handler", ], }, "MemorySize": 256, "PackageType": "Image", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "WebappMigrationRunnerServiceRoleE27E1F7A", "Arn", ], }, "Timeout": 300, - "VpcConfig": Object { - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "VpcConfig": { + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "WebappMigrationRunnerSecurityGroup7F0DF264", "GroupId", ], }, ], - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, - Object { + { "Ref": "VpcPrivateSubnet3SubnetF258B56E", }, ], @@ -3642,8 +3642,8 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Function", }, - "WebappMigrationRunnerCurrentVersionREDACTED": Object { - "DependsOn": Array [ + "WebappMigrationRunnerCurrentVersionREDACTED": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3651,15 +3651,15 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "FunctionName": Object { + "Properties": { + "FunctionName": { "Ref": "WebappMigrationRunnerAC67C012", }, }, "Type": "AWS::Lambda::Version", }, - "WebappMigrationRunnerSecurityGroup7F0DF264": Object { - "DependsOn": Array [ + "WebappMigrationRunnerSecurityGroup7F0DF264": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3667,23 +3667,23 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { + "Properties": { "GroupDescription": "Automatic security group for Lambda Function ServerlessWebappStarterKitStackWebappMigrationRunner45EAC73E", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "WebappMigrationRunnerServiceRoleE27E1F7A": Object { - "DependsOn": Array [ + "WebappMigrationRunnerServiceRoleE27E1F7A": { + "DependsOn": [ "VpcPrivateSubnet1DefaultRouteBE02A9ED", "VpcPrivateSubnet1RouteTableAssociation70C59FA6", "VpcPrivateSubnet2DefaultRoute060D2087", @@ -3691,38 +3691,38 @@ sudo service iptables save", "VpcPrivateSubnet3DefaultRoute94B74F0D", "VpcPrivateSubnet3RouteTableAssociation16BDDC43", ], - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole", @@ -3733,9 +3733,9 @@ sudo service iptables save", }, "Type": "AWS::IAM::Role", }, - "WebappMigrationTrigger42AFC1D9": Object { + "WebappMigrationTrigger42AFC1D9": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "DatabaseCluster5B53A178", "DatabaseClusterSecretAttachmentDC8466C0", "DatabaseClusterSecretD1FB634F", @@ -3747,14 +3747,14 @@ sudo service iptables save", "DatabaseClusterSubnets5540150D", "DatabaseClusterWriterD43085C6", ], - "Properties": Object { + "Properties": { "ExecuteOnHandlerChange": true, - "HandlerArn": Object { + "HandlerArn": { "Ref": "WebappMigrationRunnerCurrentVersionREDACTED", }, "InvocationType": "RequestResponse", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWSCDKTriggerCustomResourceProviderCustomResourceProviderHandler97BECD91", "Arn", ], @@ -3764,9 +3764,9 @@ sudo service iptables save", "Type": "Custom::Trigger", "UpdateReplacePolicy": "Delete", }, - "WebappOrigin1FunctionUrlOriginAccessControlEA98B600": Object { - "Properties": Object { - "OriginAccessControlConfig": Object { + "WebappOrigin1FunctionUrlOriginAccessControlEA98B600": { + "Properties": { + "OriginAccessControlConfig": { "Name": "ServerlessWebappStarterKitStnctionUrlOriginAccessControl17EB4E66", "OriginAccessControlOriginType": "lambda", "SigningBehavior": "always", @@ -3775,30 +3775,30 @@ sudo service iptables save", }, "Type": "AWS::CloudFront::OriginAccessControl", }, - "WebappOrigin1InvokeFromApiForServerlessWebappStarterKitStackWebappOrigin1D7B867FF58DBB477": Object { - "Properties": Object { + "WebappOrigin1InvokeFromApiForServerlessWebappStarterKitStackWebappOrigin1D7B867FF58DBB477": { + "Properties": { "Action": "lambda:InvokeFunctionUrl", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "WebappHandlerFunctionUrl7AEF8DEE", "FunctionArn", ], }, "Principal": "cloudfront.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":cloudfront::", - Object { + { "Ref": "AWS::AccountId", }, ":distribution/", - Object { + { "Ref": "Webapp107041BD", }, ], @@ -3807,19 +3807,19 @@ sudo service iptables save", }, "Type": "AWS::Lambda::Permission", }, - "WebappRecord02DDD651": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "WebappRecord02DDD651": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "Webapp107041BD", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", @@ -3832,22 +3832,22 @@ sudo service iptables save", }, "Type": "AWS::Route53::RecordSet", }, - "WebappSharedCachePolicy14FEE4A0": Object { - "Properties": Object { - "CachePolicyConfig": Object { + "WebappSharedCachePolicy14FEE4A0": { + "Properties": { + "CachePolicyConfig": { "DefaultTTL": 0, "MaxTTL": 31536000, "MinTTL": 0, "Name": "ServerlessWebappStarterKitStackWebappSharedCachePolicy211E133B-us-west-2", - "ParametersInCacheKeyAndForwardedToOrigin": Object { - "CookiesConfig": Object { + "ParametersInCacheKeyAndForwardedToOrigin": { + "CookiesConfig": { "CookieBehavior": "all", }, "EnableAcceptEncodingBrotli": true, "EnableAcceptEncodingGzip": true, - "HeadersConfig": Object { + "HeadersConfig": { "HeaderBehavior": "whitelist", - "Headers": Array [ + "Headers": [ "authorization", "Origin", "X-HTTP-Method-Override", @@ -3855,7 +3855,7 @@ sudo service iptables save", "X-Method-Override", ], }, - "QueryStringsConfig": Object { + "QueryStringsConfig": { "QueryStringBehavior": "all", }, }, @@ -3864,22 +3864,22 @@ sudo service iptables save", "Type": "AWS::CloudFront::CachePolicy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ],