From 337f59ca866064be7f35732e94e556d7d917e81a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 23:06:40 +0000 Subject: [PATCH 1/9] Bump vite from 4.5.14 to 5.4.20 in /NovaSonicVoiceAssistant Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.14 to 5.4.20. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.20/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.20/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 5.4.20 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- NovaSonicVoiceAssistant/package-lock.json | 10145 +++++++++++--------- NovaSonicVoiceAssistant/ui/package.json | 2 +- 2 files changed, 5455 insertions(+), 4692 deletions(-) diff --git a/NovaSonicVoiceAssistant/package-lock.json b/NovaSonicVoiceAssistant/package-lock.json index 9e65598..952740b 100644 --- a/NovaSonicVoiceAssistant/package-lock.json +++ b/NovaSonicVoiceAssistant/package-lock.json @@ -7109,581 +7109,848 @@ "node": ">=12" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=12" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@floating-ui/core": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", - "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.9" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@floating-ui/dom": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", - "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.7.0", - "@floating-ui/utils": "^0.2.9" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", - "license": "MIT" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": ">=12" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=12" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "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==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "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" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@isaacs/cliui/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==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@isaacs/cliui/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==", + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "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==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping/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==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "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/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "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/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">= 8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 8" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">= 8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@opensearch-project/opensearch": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@opensearch-project/opensearch/-/opensearch-2.13.0.tgz", - "integrity": "sha512-Bu3jJ7pKzumbMMeefu7/npAWAvFu5W9SlbBow1ulhluqUpqc7QoXe0KidDrMy7Dy3BQrkI6llR3cWL4lQTZOFw==", - "license": "Apache-2.0", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "aws4": "^1.11.0", - "debug": "^4.3.1", - "hpagent": "^1.2.0", - "json11": "^2.0.0", - "ms": "^2.1.3", - "secure-json-parse": "^2.4.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=10", - "yarn": "^1.22.10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "license": "MIT", - "optional": true, "engines": { - "node": ">=14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@radix-ui/number": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", - "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", - "license": "MIT" + "node_modules/@floating-ui/core": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", + "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", - "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", - "license": "MIT" + "node_modules/@floating-ui/dom": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", + "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.0", + "@floating-ui/utils": "^0.2.9" + } }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.6.tgz", - "integrity": "sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==", + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.2" + "@floating-ui/dom": "^1.0.0" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.6.tgz", - "integrity": "sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==", - "license": "MIT", + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.2", - "@radix-ui/react-slot": "1.2.2" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "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" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=12" } }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.9.tgz", - "integrity": "sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "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/@isaacs/cliui/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": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.2", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.14.tgz", - "integrity": "sha512-lzuyNjoWOoaMFE/VC5FnAAYM16JmQA8ZmucOXtlhm2kKR5TSU95YLAueQ4JYuRmUJmBvSqXaVFGIfuukybwZJQ==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.14", - "@radix-ui/react-primitive": "2.1.2", - "@radix-ui/react-use-controllable-state": "1.2.2" + "ansi-regex": "^6.0.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", - "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "node_modules/@isaacs/cliui/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/@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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opensearch-project/opensearch": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@opensearch-project/opensearch/-/opensearch-2.13.0.tgz", + "integrity": "sha512-Bu3jJ7pKzumbMMeefu7/npAWAvFu5W9SlbBow1ulhluqUpqc7QoXe0KidDrMy7Dy3BQrkI6llR3cWL4lQTZOFw==", + "license": "Apache-2.0", + "dependencies": { + "aws4": "^1.11.0", + "debug": "^4.3.1", + "hpagent": "^1.2.0", + "json11": "^2.0.0", + "ms": "^2.1.3", + "secure-json-parse": "^2.4.0" + }, + "engines": { + "node": ">=10", + "yarn": "^1.22.10" + } + }, + "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/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.6.tgz", + "integrity": "sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==", "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.2" + }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true + }, + "@types/react-dom": { + "optional": true } } }, - "node_modules/@radix-ui/react-focus-scope": { + "node_modules/@radix-ui/react-collection": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.6.tgz", - "integrity": "sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.6.tgz", + "integrity": "sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.2", - "@radix-ui/react-use-callback-ref": "1.1.1" + "@radix-ui/react-slot": "1.2.2" }, "peerDependencies": { "@types/react": "*", @@ -7700,14 +7967,26 @@ } } }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -7718,30 +7997,32 @@ } } }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.14.tgz", - "integrity": "sha512-0zSiBAIFq9GSKoSH5PdEaQeRB3RnEGxC+H2P0egtnKoKKLNBH8VBHyVO6/jskhjAezhOIplyRUj7U2lds9A+Yg==", + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.9.tgz", + "integrity": "sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.6", "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.9", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.6", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.6", - "@radix-ui/react-portal": "1.1.8", - "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.2", - "@radix-ui/react-roving-focus": "1.1.9", - "@radix-ui/react-slot": "1.2.2", "@radix-ui/react-use-callback-ref": "1.1.1", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" + "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -7758,13 +8039,140 @@ } } }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.6.tgz", - "integrity": "sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==", + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.14.tgz", + "integrity": "sha512-lzuyNjoWOoaMFE/VC5FnAAYM16JmQA8ZmucOXtlhm2kKR5TSU95YLAueQ4JYuRmUJmBvSqXaVFGIfuukybwZJQ==", "license": "MIT", "dependencies": { - "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.14", + "@radix-ui/react-primitive": "2.1.2", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.6.tgz", + "integrity": "sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.2", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.14.tgz", + "integrity": "sha512-0zSiBAIFq9GSKoSH5PdEaQeRB3RnEGxC+H2P0egtnKoKKLNBH8VBHyVO6/jskhjAezhOIplyRUj7U2lds9A+Yg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.6", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.9", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.6", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.6", + "@radix-ui/react-portal": "1.1.8", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.2", + "@radix-ui/react-roving-focus": "1.1.9", + "@radix-ui/react-slot": "1.2.2", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.6.tgz", + "integrity": "sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.1.6", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", @@ -8085,85 +8493,379 @@ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", "license": "MIT" }, - "node_modules/@smart-todo-app/api": { - "resolved": "api", - "link": true + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", + "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@smart-todo-app/infra": { - "resolved": "infra", - "link": true + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", + "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@smart-todo-app/ui": { - "resolved": "ui", - "link": true + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz", + "integrity": "sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@smithy/abort-controller": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.2.tgz", - "integrity": "sha512-Sl/78VDtgqKxN2+1qduaVE140XF+Xg+TafkncspwM4jFP/LHr76ZHmIY/y3V1M0mMLNk+Je6IGbzxy23RSToMw==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", + "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@smithy/config-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.0.tgz", - "integrity": "sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^4.0.2", - "@smithy/types": "^4.2.0", - "@smithy/util-config-provider": "^4.0.0", - "@smithy/util-middleware": "^4.0.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", + "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@smithy/core": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.3.1.tgz", - "integrity": "sha512-W7AppgQD3fP1aBmo8wWo0id5zeR2/aYRy067vZsDVaa6v/mdhkg6DxXwEVuSPjZl+ZnvWAQbUMCd5ckw38+tHQ==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/middleware-serde": "^4.0.3", - "@smithy/protocol-http": "^5.1.0", - "@smithy/types": "^4.2.0", - "@smithy/util-body-length-browser": "^4.0.0", - "@smithy/util-middleware": "^4.0.2", - "@smithy/util-stream": "^4.2.0", - "@smithy/util-utf8": "^4.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", + "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@smithy/credential-provider-imds": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.2.tgz", - "integrity": "sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^4.0.2", - "@smithy/property-provider": "^4.0.2", - "@smithy/types": "^4.2.0", - "@smithy/url-parser": "^4.0.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", + "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@smithy/eventstream-codec": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.2.tgz", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", + "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", + "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", + "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", + "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", + "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", + "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", + "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", + "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", + "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", + "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", + "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", + "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", + "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", + "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@smart-todo-app/api": { + "resolved": "api", + "link": true + }, + "node_modules/@smart-todo-app/infra": { + "resolved": "infra", + "link": true + }, + "node_modules/@smart-todo-app/ui": { + "resolved": "ui", + "link": true + }, + "node_modules/@smithy/abort-controller": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.2.tgz", + "integrity": "sha512-Sl/78VDtgqKxN2+1qduaVE140XF+Xg+TafkncspwM4jFP/LHr76ZHmIY/y3V1M0mMLNk+Je6IGbzxy23RSToMw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.0.tgz", + "integrity": "sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.3.1.tgz", + "integrity": "sha512-W7AppgQD3fP1aBmo8wWo0id5zeR2/aYRy067vZsDVaa6v/mdhkg6DxXwEVuSPjZl+ZnvWAQbUMCd5ckw38+tHQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^4.0.3", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-stream": "^4.2.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.2.tgz", + "integrity": "sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.2", + "@smithy/property-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.2.tgz", "integrity": "sha512-p+f2kLSK7ZrXVfskU/f5dzksKTewZk8pJLPvER3aFHPt76C2MxD9vNatSfLzzQSQB4FNO96RK4PSXfhD1TTeMQ==", "license": "Apache-2.0", "dependencies": { @@ -8927,9 +9629,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, "node_modules/@types/estree-jsx": { @@ -11044,2315 +11746,2318 @@ "@esbuild/win32-x64": "0.23.1" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "peer": true, "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, + "optional": true, + "os": [ + "android" + ], + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "node": ">=18" } }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", - "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], "license": "MIT", - "peerDependencies": { - "eslint": ">=8.40" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", + "node_modules/esbuild/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, + "node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, "engines": { - "node": ">=10.13.0" + "node": ">=18" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "node_modules/esbuild/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, + "node_modules/esbuild/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=0.10" + "node": ">=18" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, + "node_modules/esbuild/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=4.0" + "node": ">=18" } }, - "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", + "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=4.0" + "node": ">=18" } }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "node_modules/esbuild/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" } }, - "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", + "node_modules/esbuild/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/esbuild/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/esbuild/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/esbuild/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=0.8.x" + "node": ">=18" } }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "node_modules/esbuild/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">=18" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/esbuild/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/fast-copy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", - "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", - "license": "MIT" + "node_modules/esbuild/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "node_modules/esbuild/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, + "node_modules/esbuild/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, + "optional": true, + "os": [ + "win32" + ], + "peer": true, "engines": { - "node": ">=8.6.0" + "node": ">=18" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" + "node_modules/esbuild/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "license": "MIT" - }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, - "node_modules/fast-xml-parser": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", - "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", - "dependencies": { - "strnum": "^1.0.5" + "engines": { + "node": ">=10" }, - "bin": { - "fxparser": "src/cli/cli.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "license": "MIT", "dependencies": { - "format": "^0.2.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://opencollective.com/eslint" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", "dev": true, "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "peerDependencies": { + "eslint": ">=8.40" } }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "is-glob": "^4.0.3" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10.13.0" } }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=4.0" + "node": ">=8" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "license": "MIT", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" + "estraverse": "^5.1.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node": ">=0.10" } }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/framer-motion": { - "version": "12.9.7", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.9.7.tgz", - "integrity": "sha512-Eo5TYU6sEPPy82GDx32PJm++G+AkBCrzxtEQOWLnpQX896Q3LFrsYhMZ5YO5ct4wL7wyHU6hqlrpYXeexKAevg==", - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "motion-dom": "^12.9.6", - "motion-utils": "^12.9.4", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" + "estraverse": "^5.2.0" }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "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, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "BSD-2-Clause", "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=4.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==", + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", "license": "MIT", "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "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": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", + "license": "BSD-2-Clause", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.10.0" } }, - "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==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "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": ">= 0.6" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "license": "MIT", "engines": { "node": ">=6" } }, - "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==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=0.8.x" } }, - "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": "ISC", + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "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" + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "engines": { - "node": "*" + "node": ">= 0.10.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "ms": "2.0.0" } }, - "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==", + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.6.0" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "license": "MIT" }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "node_modules/fast-xml-parser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], "license": "MIT", - "engines": { - "node": ">= 10.x" + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" } }, - "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==", + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" } }, - "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==", + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "format": "^0.2.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8" } }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/hast-util-sanitize": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", - "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "unist-util-position": "^5.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" + "engines": { + "node": ">=4.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "license": "MIT", + "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": "ISC", "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/hastscript/node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "license": "MIT", "dependencies": { - "@types/unist": "^2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/hastscript/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } }, - "node_modules/hastscript/node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">= 0.6" } }, - "node_modules/hastscript/node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" + "engines": { + "node": "*" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, - "node_modules/hastscript/node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "node_modules/framer-motion": { + "version": "12.9.7", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.9.7.tgz", + "integrity": "sha512-Eo5TYU6sEPPy82GDx32PJm++G+AkBCrzxtEQOWLnpQX896Q3LFrsYhMZ5YO5ct4wL7wyHU6hqlrpYXeexKAevg==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "motion-dom": "^12.9.6", + "motion-utils": "^12.9.4", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/help-me": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", - "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", - "license": "MIT" - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "license": "BSD-3-Clause", + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/highlightjs-vue": { + "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz", - "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==", - "license": "CC0-1.0" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, - "node_modules/hpagent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", - "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/html-url-attributes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", - "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "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==", "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, "engines": { - "node": ">= 0.8" + "node": ">=6.9.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==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/idb": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/idb/-/idb-5.0.6.tgz", - "integrity": "sha512-/PFvOWPzRcEPmlDt5jEvzVZVs0wyd/EvGvkDIcbBpGuMMLQKrTPG0TxvE2UJtgZtCQCmOtM2QD7yQJBVEjKGOw==", - "license": "ISC" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, + "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==", "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": ">= 4" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true, - "license": "ISC" - }, - "node_modules/immer": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", - "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==", - "license": "MIT", + "node": ">= 0.4" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, + "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==", "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">= 0.4" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "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": "ISC", "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", + "node": "*" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" + "is-glob": "^4.0.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">= 6" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "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", - "dependencies": { - "binary-extensions": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "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==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, + "license": "MIT" + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 10.x" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "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/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "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==", "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "license": "MIT", - "engines": { - "node": ">=0.12.0" + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", "license": "MIT", - "engines": { - "node": ">=12" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "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", + "node_modules/hast-util-sanitize": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", + "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", + "license": "MIT", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "unist-util-position": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", "license": "MIT", - "engines": { - "node": ">=14" + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, + "node_modules/hastscript/node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" + "dependencies": { + "@types/unist": "^2" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, + "node_modules/hastscript/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, - "node_modules/json11": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/json11/-/json11-2.0.2.tgz", - "integrity": "sha512-HIrd50UPYmP6sqLuLbFVm75g16o0oZrVfxrsY0EEys22klz8mRoWlX9KAEDOSOR9Q34rcxsyC8oDveGrCz5uLQ==", + "node_modules/hastscript/node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "license": "MIT", - "bin": { - "json11": "dist/cli.mjs" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, + "node_modules/hastscript/node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", "license": "MIT", - "bin": { - "json5": "lib/cli.js" + "dependencies": { + "xtend": "^4.0.0" }, - "engines": { - "node": ">=6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "node_modules/hastscript/node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", + "license": "MIT" + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", "engines": { - "node": ">=12", - "npm": ">=6" + "node": "*" } }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "node_modules/highlightjs-vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz", + "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==", + "license": "CC0-1.0" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "license": "MIT", "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/jwk-to-pem": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/jwk-to-pem/-/jwk-to-pem-2.0.7.tgz", - "integrity": "sha512-cSVphrmWr6reVchuKQZdfSs4U9c5Y4hwZggPoz6cbVnTpAVgGRpEuQng86IyqLeGZlhTh+c4MAreB6KbdQDKHQ==", - "license": "Apache-2.0", - "dependencies": { - "asn1.js": "^5.3.0", - "elliptic": "^6.6.1", - "safe-buffer": "^5.0.1" + "node_modules/hpagent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", + "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "license": "MIT", + "engines": { + "node": ">=14" } }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "node_modules/html-url-attributes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "node_modules/idb": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/idb/-/idb-5.0.6.tgz", + "integrity": "sha512-/PFvOWPzRcEPmlDt5jEvzVZVs0wyd/EvGvkDIcbBpGuMMLQKrTPG0TxvE2UJtgZtCQCmOtM2QD7yQJBVEjKGOw==", + "license": "ISC" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" + "node": ">= 4" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/immer": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", + "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", "license": "MIT" }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "binary-extensions": "^2.0.0" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/lowlight": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "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": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "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==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" + "is-extglob": "^2.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/mdast-util-mdx-expression": { + "node_modules/is-hexadecimal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.12.0" } }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-phrasing": { + "node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" + "@isaacs/cliui": "^8.0.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "jiti": "bin/jiti.js" } }, - "node_modules/mdast-util-to-string": { + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0" + "argparse": "^2.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json11": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/json11/-/json11-2.0.2.tgz", + "integrity": "sha512-HIrd50UPYmP6sqLuLbFVm75g16o0oZrVfxrsY0EEys22klz8mRoWlX9KAEDOSOR9Q34rcxsyC8oDveGrCz5uLQ==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "json11": "dist/cli.mjs" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": ">= 8" + "node": ">=6" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, "engines": { - "node": ">= 0.6" + "node": ">=12", + "npm": ">=6" } }, - "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "license": "MIT", "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "node_modules/jwk-to-pem": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/jwk-to-pem/-/jwk-to-pem-2.0.7.tgz", + "integrity": "sha512-cSVphrmWr6reVchuKQZdfSs4U9c5Y4hwZggPoz6cbVnTpAVgGRpEuQng86IyqLeGZlhTh+c4MAreB6KbdQDKHQ==", + "license": "Apache-2.0", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "asn1.js": "^5.3.0", + "elliptic": "^6.6.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "json-buffer": "3.0.1" } }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "license": "MIT", "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/lowlight": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-combine-extensions": { + "node_modules/mdast-util-mdx-expression": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "license": "MIT", "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-decode-string": { + "node_modules/mdast-util-mdxjs-esm": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", "license": "MIT", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -13365,32 +14070,29 @@ ], "license": "MIT", "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -13401,2255 +14103,2323 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, - "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": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mnemonist": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", - "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", - "license": "MIT", - "dependencies": { - "obliterator": "^1.6.1" - } - }, - "node_modules/motion-dom": { - "version": "12.9.6", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.9.6.tgz", - "integrity": "sha512-IK9pm5zU8BIp3FCoUGF3T7AHVLVOlXxlwco/bIbcnpBtyYb2gDQhdOzUh2KSDJVjYl1MZ9vdq8tnFTTahX2lfg==", "license": "MIT", "dependencies": { - "motion-utils": "^12.9.4" - } - }, - "node_modules/motion-utils": { - "version": "12.9.4", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.9.4.tgz", - "integrity": "sha512-BW3I65zeM76CMsfh3kHid9ansEJk9Qvl+K5cu4DVHKGsI52n76OJ4z2CUJUV+Mn3uEP9k1JJA3tClG0ggSrRcg==", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/nodemon": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", - "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", - "dev": true, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">= 6" + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/obliterator": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", - "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT" }, - "node_modules/on-exit-leak-free": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", - "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" + "micromark-util-types": "^2.0.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "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/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=6" + "node": ">=8.6" } }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" + "bin": { + "mime": "cli.js" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "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==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, + "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==", "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "license": "MIT" }, - "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==", + "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": "BlueOak-1.0.0", + "license": "ISC", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, - "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/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "license": "MIT", - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "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": "MIT", + "license": "ISC", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, + "node_modules/mnemonist": { + "version": "0.38.3", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", + "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "obliterator": "^1.6.1" } }, - "node_modules/pino": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", - "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", + "node_modules/motion-dom": { + "version": "12.9.6", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.9.6.tgz", + "integrity": "sha512-IK9pm5zU8BIp3FCoUGF3T7AHVLVOlXxlwco/bIbcnpBtyYb2gDQhdOzUh2KSDJVjYl1MZ9vdq8tnFTTahX2lfg==", "license": "MIT", "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.2.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^3.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.6.0" - }, - "bin": { - "pino": "bin.js" + "motion-utils": "^12.9.4" } }, - "node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "node_modules/motion-utils": { + "version": "12.9.4", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.9.4.tgz", + "integrity": "sha512-BW3I65zeM76CMsfh3kHid9ansEJk9Qvl+K5cu4DVHKGsI52n76OJ4z2CUJUV+Mn3uEP9k1JJA3tClG0ggSrRcg==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, "license": "MIT", "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node_modules/pino-http": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-8.6.1.tgz", - "integrity": "sha512-J0hiJgUExtBXP2BjrK4VB305tHXS31sCmWJ9XJo2wPkLHa1NFPuW4V9wjG27PAc2fmBCigiNhQKpvrx+kntBPA==", + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "license": "MIT", - "dependencies": { - "get-caller-file": "^2.0.5", - "pino": "^8.17.1", - "pino-std-serializers": "^6.2.2", - "process-warning": "^3.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/pino-pretty": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz", - "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", + "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", + "dev": true, "license": "MIT", "dependencies": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.2", - "fast-safe-stringify": "^2.1.1", - "help-me": "^5.0.0", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^2.0.0", - "pump": "^3.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^4.0.1", - "strip-json-comments": "^3.1.1" + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" }, "bin": { - "pino-pretty": "bin.js" + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "node_modules/pino-pretty/node_modules/pino-abstract-transport": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "license": "MIT", - "dependencies": { - "split2": "^4.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/pino-pretty/node_modules/sonic-boom": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", - "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "license": "MIT", "dependencies": { - "atomic-sleep": "^1.0.0" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", - "license": "MIT" - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=0.10.0" } }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" + "node": ">= 6" } }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, "engines": { - "node": "^12 || ^14 || >= 16" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/obliterator": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", + "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" + "ee-first": "1.1.1" }, "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.1.1" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" + "node": ">= 0.8.0" } }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", - "license": "MIT" + "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/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "license": "MIT", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/qrcode": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", - "integrity": "sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==", - "license": "MIT", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "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": "BlueOak-1.0.0", "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, - "bin": { - "qrcode": "bin/qrcode" + "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/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/qrcode/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/qrcode/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/qrcode/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/pino": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", + "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.6.0" }, - "engines": { - "node": ">=8" + "bin": { + "pino": "bin.js" } }, - "node_modules/qrcode/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==", + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "readable-stream": "^4.0.0", + "split2": "^4.0.0" } }, - "node_modules/qrcode/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/pino-http": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-8.6.1.tgz", + "integrity": "sha512-J0hiJgUExtBXP2BjrK4VB305tHXS31sCmWJ9XJo2wPkLHa1NFPuW4V9wjG27PAc2fmBCigiNhQKpvrx+kntBPA==", "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "get-caller-file": "^2.0.5", + "pino": "^8.17.1", + "pino-std-serializers": "^6.2.2", + "process-warning": "^3.0.0" } }, - "node_modules/qrcode/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/pino-pretty": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz", + "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.2", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pump": "^3.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^4.0.1", + "strip-json-comments": "^3.1.1" }, - "engines": { - "node": ">=8" + "bin": { + "pino-pretty": "bin.js" } }, - "node_modules/qrcode/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, - "node_modules/qrcode/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/pino-pretty/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "license": "MIT", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" + "split2": "^4.0.0" } }, - "node_modules/qrcode/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", + "node_modules/pino-pretty/node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", + "license": "MIT" + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.13.0" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT" - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" + "node": "^10 || ^12 || >=14" } }, - "node_modules/react-hook-form": { - "version": "7.56.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.2.tgz", - "integrity": "sha512-vpfuHuQMF/L6GpuQ4c3ZDo+pRYxIi40gQqsCmmfUBwm+oqvBhKhwghCuj2o00YCgSfU6bR9KC/xnQGWm3Gr08A==", + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=18.0.0" + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18 || ^19" + "postcss": "^8.0.0" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-markdown": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", - "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "html-url-attributes": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/postcss/" }, "peerDependencies": { - "@types/react": ">=18", - "react": ">=18" + "postcss": "^8.4.21" } }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { - "node": ">=10" + "node": ">= 14" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { - "@types/react": { + "postcss": { + "optional": true + }, + "ts-node": { "optional": true } } }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" + "postcss-selector-parser": "^6.1.1" }, "engines": { - "node": ">=10" + "node": ">=12.0" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "postcss": "^8.2.14" } }, - "node_modules/react-router": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.3.tgz", - "integrity": "sha512-3iUDM4/fZCQ89SXlDa+Ph3MevBrozBAI655OAfWQlTm9nBR0IKlrmNwFow5lPHttbwvITZfkeeeZFP6zt3F7pw==", + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } + "node": ">=4" } }, - "node_modules/react-router-dom": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.3.tgz", - "integrity": "sha512-cK0jSaTyW4jV9SRKAItMIQfWZ/D6WEZafgHuuCb9g+SjhLolY78qc+De4w/Cz9ybjvLzShAmaIMEXt8iF1Cm+A==", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", "dependencies": { - "react-router": "7.5.3" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" + "node": ">= 0.10" } }, - "node_modules/react-router/node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "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", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=6" } }, - "node_modules/react-syntax-highlighter": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.6.1.tgz", - "integrity": "sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==", + "node_modules/qrcode": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", + "integrity": "sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "highlightjs-vue": "^1.0.0", - "lowlight": "^1.17.0", - "prismjs": "^1.27.0", - "refractor": "^3.6.0" + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" + "bin": { + "qrcode": "bin/qrcode" }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", "dependencies": { - "pify": "^2.3.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "node_modules/qrcode/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "node_modules/qrcode/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=8" } }, - "node_modules/real-require": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "node_modules/qrcode/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==", "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">= 12.13.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "node_modules/qrcode/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" + "p-limit": "^2.2.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">=8" } }, - "node_modules/refractor/node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/refractor/node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, - "node_modules/refractor/node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/refractor/node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/refractor/node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "license": "MIT", + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/refractor/node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" }, - "node_modules/refractor/node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">= 0.6" } }, - "node_modules/refractor/node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "license": "MIT", "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">= 0.8" } }, - "node_modules/refractor/node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/rehype-sanitize": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-sanitize/-/rehype-sanitize-6.0.0.tgz", - "integrity": "sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==", + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-sanitize": "^5.0.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "react": "^18.3.1" } }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "node_modules/react-hook-form": { + "version": "7.56.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.2.tgz", + "integrity": "sha512-vpfuHuQMF/L6GpuQ4c3ZDo+pRYxIi40gQqsCmmfUBwm+oqvBhKhwghCuj2o00YCgSfU6bR9KC/xnQGWm3Gr08A==", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" + "engines": { + "node": ">=18.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" } }, - "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-markdown": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", + "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "license": "ISC" - }, - "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, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", "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" + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, + "node_modules/react-router": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.3.tgz", + "integrity": "sha512-3iUDM4/fZCQ89SXlDa+Ph3MevBrozBAI655OAfWQlTm9nBR0IKlrmNwFow5lPHttbwvITZfkeeeZFP6zt3F7pw==", "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, - "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", + "node_modules/react-router-dom": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.3.tgz", + "integrity": "sha512-cK0jSaTyW4jV9SRKAItMIQfWZ/D6WEZafgHuuCb9g+SjhLolY78qc+De4w/Cz9ybjvLzShAmaIMEXt8iF1Cm+A==", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "react-router": "7.5.3" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=20.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" } }, - "node_modules/rollup": { - "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", - "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", - "dev": true, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=10" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/react-syntax-highlighter": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.6.1.tgz", + "integrity": "sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==", "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "highlightjs-vue": "^1.0.0", + "lowlight": "^1.17.0", + "prismjs": "^1.27.0", + "refractor": "^3.6.0" + }, + "peerDependencies": { + "react": ">= 0.14.0" } }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "license": "Apache-2.0", + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", "dependencies": { - "tslib": "^2.1.0" + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "pify": "^2.3.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "license": "BSD-3-Clause" - }, - "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.10.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/refractor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "node_modules/refractor/node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/refractor/node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "license": "MIT", - "engines": { - "node": ">= 0.8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "node_modules/refractor/node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/serverless-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-3.2.0.tgz", - "integrity": "sha512-QvSyZXljRLIGqwcJ4xsKJXwkZnAVkse1OajepxfjkBXV0BMvRS5R546Z4kCBI8IygDzkQY0foNPC/rnipaE9pQ==", + "node_modules/refractor/node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "license": "MIT", - "engines": { - "node": ">=12.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, + "node_modules/refractor/node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, + "node_modules/refractor/node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "license": "MIT", - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "dev": true, + "node_modules/refractor/node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "license": "MIT", - "engines": { - "node": ">= 0.4" - }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "node_modules/refractor/node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "node_modules/refractor/node_modules/prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, "engines": { - "node": ">= 0.4" + "node": ">=6" + } + }, + "node_modules/rehype-sanitize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-sanitize/-/rehype-sanitize-6.0.0.tgz", + "integrity": "sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-sanitize": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/simple-update-notifier": { + "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "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": { - "semver": "^7.5.3" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/sonic-boom": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", - "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", "engines": { + "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "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": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/rollup": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.1.tgz", + "integrity": "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==", + "dev": true, "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.1", + "@rollup/rollup-android-arm64": "4.50.1", + "@rollup/rollup-darwin-arm64": "4.50.1", + "@rollup/rollup-darwin-x64": "4.50.1", + "@rollup/rollup-freebsd-arm64": "4.50.1", + "@rollup/rollup-freebsd-x64": "4.50.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", + "@rollup/rollup-linux-arm-musleabihf": "4.50.1", + "@rollup/rollup-linux-arm64-gnu": "4.50.1", + "@rollup/rollup-linux-arm64-musl": "4.50.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", + "@rollup/rollup-linux-ppc64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-musl": "4.50.1", + "@rollup/rollup-linux-s390x-gnu": "4.50.1", + "@rollup/rollup-linux-x64-gnu": "4.50.1", + "@rollup/rollup-linux-x64-musl": "4.50.1", + "@rollup/rollup-openharmony-arm64": "4.50.1", + "@rollup/rollup-win32-arm64-msvc": "4.50.1", + "@rollup/rollup-win32-ia32-msvc": "4.50.1", + "@rollup/rollup-win32-x64-msvc": "4.50.1", + "fsevents": "~2.3.2" } }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "license": "ISC", - "engines": { - "node": ">= 10.x" + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "loose-envify": "^1.1.0" } }, - "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==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "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==", - "dev": true, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "ms": "2.0.0" } }, - "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==", + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "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==", - "dev": true, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/serverless-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-3.2.0.tgz", + "integrity": "sha512-QvSyZXljRLIGqwcJ4xsKJXwkZnAVkse1OajepxfjkBXV0BMvRS5R546Z4kCBI8IygDzkQY0foNPC/rnipaE9pQ==", "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12.0" } }, - "node_modules/strnum": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", - "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT" + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" }, - "node_modules/style-to-js": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", - "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", - "license": "MIT", - "dependencies": { - "style-to-object": "1.0.8" - } + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true, - "license": "ISC", - "dependencies": { - "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" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sucrase/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": "ISC", + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, "engines": { "node": ">= 0.4" }, @@ -15657,1032 +16427,1009 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "license": "MIT", "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tailwindcss/node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "license": "MIT", "dependencies": { - "thenify": ">= 3.1.0 < 4" + "semver": "^7.5.3" }, "engines": { - "node": ">=0.8" + "node": ">=10" } }, - "node_modules/thread-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", - "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" + "engines": { + "node": ">=8" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "node_modules/sonic-boom": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "license": "MIT", "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "atomic-sleep": "^1.0.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { - "node": ">=0.6" + "node": ">=0.10.0" } }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "license": "MIT", - "bin": { - "tree-kill": "cli.js" + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" } }, - "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", - "dev": true, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "license": "MIT", "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" + "node": ">= 0.8" } }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/ts-retry": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/ts-retry/-/ts-retry-4.2.5.tgz", - "integrity": "sha512-dFBa4pxMBkt/bjzdBio8EwYfbAdycEAwe0KZgzlUKKwU9Wr1WErK7Hg9QLqJuDDYJXTW4KYZyXAyqYKOdO/ehA==", - "license": "MIT" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "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==", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "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==", "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "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==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=14.17" + "node": ">=8" } }, - "node_modules/ulid": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.4.0.tgz", - "integrity": "sha512-fIRiVTJNcSRmXKPZtGzFQv9WRrZ3M9eoptl/teFJvjOzmpU+/K/JH6HZ8deBfb5vMEpicJcLn7JmvdknlMq7Zg==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "license": "MIT", - "bin": { - "ulid": "bin/cli.js" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "node_modules/strnum": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT" }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "node_modules/style-to-js": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", + "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "style-to-object": "1.0.8" } }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "inline-style-parser": "0.2.4" } }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "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": { + "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" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", + "node_modules/sucrase/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": "ISC", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/unpipe": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { - "update-browserslist-db": "cli.js" + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/tailwindcss/node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } + "license": "MIT" }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "license": "MIT", + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", "dependencies": { - "tslib": "^2.0.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=10.13.0" } }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", - "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" } }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, "license": "MIT", "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" + "thenify": ">= 3.1.0 < 4" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=0.8" } }, - "node_modules/use-sync-external-store": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", - "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "node_modules/thread-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "dependencies": { + "real-require": "^0.2.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } }, - "node_modules/utils-merge": { + "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=0.6" } }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", "bin": { - "uuid": "dist/bin/uuid" + "nodetouch": "bin/nodetouch.js" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, - "license": "MIT" + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", "license": "MIT", - "engines": { - "node": ">= 0.8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "engines": { + "node": ">=16" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "node_modules/vite": { - "version": "4.5.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", - "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" }, "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { + "@swc/core": { "optional": true }, - "terser": { + "@swc/wasm": { "optional": true } } }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, + "node_modules/ts-retry": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/ts-retry/-/ts-retry-4.2.5.tgz", + "integrity": "sha512-dFBa4pxMBkt/bjzdBio8EwYfbAdycEAwe0KZgzlUKKwU9Wr1WErK7Hg9QLqJuDDYJXTW4KYZyXAyqYKOdO/ehA==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, "engines": { - "node": ">=12" + "node": ">= 0.6" } }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=12" + "node": ">=14.17" } }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/ulid": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.4.0.tgz", + "integrity": "sha512-fIRiVTJNcSRmXKPZtGzFQv9WRrZ3M9eoptl/teFJvjOzmpU+/K/JH6HZ8deBfb5vMEpicJcLn7JmvdknlMq7Zg==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "bin": { + "ulid": "bin/cli.js" } }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "tslib": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], "engines": { - "node": ">=12" + "node": ">= 0.4.0" } }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" ], - "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], + "node_modules/vite": { + "version": "5.4.20", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz", + "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, "engines": { - "node": ">=12" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -16693,28 +17440,44 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite/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/which": { @@ -16955,7 +17718,7 @@ "postcss": "^8.4.27", "tailwindcss": "^3.3.3", "typescript": "^5.0.2", - "vite": "^4.4.5" + "vite": "^5.4.20" } } } diff --git a/NovaSonicVoiceAssistant/ui/package.json b/NovaSonicVoiceAssistant/ui/package.json index b02bc5f..de0c0f8 100644 --- a/NovaSonicVoiceAssistant/ui/package.json +++ b/NovaSonicVoiceAssistant/ui/package.json @@ -38,6 +38,6 @@ "postcss": "^8.4.27", "tailwindcss": "^3.3.3", "typescript": "^5.0.2", - "vite": "^4.4.5" + "vite": "^5.4.20" } } From 9ca89115eec561b162d3b72adbc9b1b40c9a74f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Sep 2025 07:10:33 +0000 Subject: [PATCH 2/9] Bump vite from 4.5.14 to 7.1.5 in /BedrockAgentsProxy/ui Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.14 to 7.1.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 7.1.5 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- BedrockAgentsProxy/ui/package-lock.json | 794 +++++++++++++++++++----- BedrockAgentsProxy/ui/package.json | 2 +- 2 files changed, 655 insertions(+), 141 deletions(-) diff --git a/BedrockAgentsProxy/ui/package-lock.json b/BedrockAgentsProxy/ui/package-lock.json index d196bfd..df91984 100644 --- a/BedrockAgentsProxy/ui/package-lock.json +++ b/BedrockAgentsProxy/ui/package-lock.json @@ -35,7 +35,7 @@ "postcss": "^8.4.27", "tailwindcss": "^3.3.3", "typescript": "^5.0.2", - "vite": "^4.5.14" + "vite": "^7.1.5" } }, "node_modules/@alloc/quick-lru": { @@ -1773,356 +1773,446 @@ "node": ">=6.9.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -3051,6 +3141,300 @@ "node": ">=14.0.0" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", + "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", + "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz", + "integrity": "sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", + "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", + "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", + "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", + "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", + "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", + "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", + "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", + "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", + "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", + "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", + "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", + "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", + "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", + "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", + "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", + "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", + "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", + "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@smithy/abort-controller": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.9.tgz", @@ -3936,9 +4320,10 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -4999,40 +5384,45 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" } }, "node_modules/escalade": { @@ -7268,9 +7658,9 @@ } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -7286,8 +7676,9 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -7947,18 +8338,43 @@ } }, "node_modules/rollup": { - "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", - "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.1.tgz", + "integrity": "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.1", + "@rollup/rollup-android-arm64": "4.50.1", + "@rollup/rollup-darwin-arm64": "4.50.1", + "@rollup/rollup-darwin-x64": "4.50.1", + "@rollup/rollup-freebsd-arm64": "4.50.1", + "@rollup/rollup-freebsd-x64": "4.50.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", + "@rollup/rollup-linux-arm-musleabihf": "4.50.1", + "@rollup/rollup-linux-arm64-gnu": "4.50.1", + "@rollup/rollup-linux-arm64-musl": "4.50.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", + "@rollup/rollup-linux-ppc64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-musl": "4.50.1", + "@rollup/rollup-linux-s390x-gnu": "4.50.1", + "@rollup/rollup-linux-x64-gnu": "4.50.1", + "@rollup/rollup-linux-x64-musl": "4.50.1", + "@rollup/rollup-openharmony-arm64": "4.50.1", + "@rollup/rollup-win32-arm64-msvc": "4.50.1", + "@rollup/rollup-win32-ia32-msvc": "4.50.1", + "@rollup/rollup-win32-x64-msvc": "4.50.1", "fsevents": "~2.3.2" } }, @@ -8326,6 +8742,54 @@ "node": ">=0.8" } }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/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/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -8651,41 +9115,51 @@ } }, "node_modules/vite": { - "version": "4.5.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", - "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz", + "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", - "less": "*", + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -8695,6 +9169,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -8703,9 +9180,46 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/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/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/BedrockAgentsProxy/ui/package.json b/BedrockAgentsProxy/ui/package.json index 3e2f1f4..586055e 100644 --- a/BedrockAgentsProxy/ui/package.json +++ b/BedrockAgentsProxy/ui/package.json @@ -38,6 +38,6 @@ "postcss": "^8.4.27", "tailwindcss": "^3.3.3", "typescript": "^5.0.2", - "vite": "^4.5.14" + "vite": "^7.1.5" } } From 319516ba2dee842669fd9fec978ceab6126b9261 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 20:49:38 +0000 Subject: [PATCH 3/9] Bump python-multipart in /MusicLibraryServerlessApplication/backend Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.6 to 0.0.18. - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.6...0.0.18) --- updated-dependencies: - dependency-name: python-multipart dependency-version: 0.0.18 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- MusicLibraryServerlessApplication/backend/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MusicLibraryServerlessApplication/backend/requirements.txt b/MusicLibraryServerlessApplication/backend/requirements.txt index 8d9110c..75b6409 100644 --- a/MusicLibraryServerlessApplication/backend/requirements.txt +++ b/MusicLibraryServerlessApplication/backend/requirements.txt @@ -4,4 +4,4 @@ boto3==1.34.0 pydantic==2.5.0 python-jose[cryptography]==3.3.0 passlib[bcrypt]==1.7.4 -python-multipart==0.0.6 \ No newline at end of file +python-multipart==0.0.18 \ No newline at end of file From 9c0d07e904f49fc129fb6ce3d64427be9dec4680 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 20:49:50 +0000 Subject: [PATCH 4/9] Bump axios from 1.9.0 to 1.12.0 in /NovaSonicVoiceAssistant Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.9.0...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- NovaSonicVoiceAssistant/api/package.json | 2 +- NovaSonicVoiceAssistant/package-lock.json | 19 ++++++++++--------- NovaSonicVoiceAssistant/ui/package.json | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/NovaSonicVoiceAssistant/api/package.json b/NovaSonicVoiceAssistant/api/package.json index bc4046e..467d83a 100644 --- a/NovaSonicVoiceAssistant/api/package.json +++ b/NovaSonicVoiceAssistant/api/package.json @@ -20,7 +20,7 @@ "@smithy/types": "^4.2.0", "@types/jsonwebtoken": "^9.0.9", "@types/ws": "^8.18.1", - "axios": "^1.8.4", + "axios": "^1.12.0", "chalk": "^5.4.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/NovaSonicVoiceAssistant/package-lock.json b/NovaSonicVoiceAssistant/package-lock.json index 9e65598..c2a58c4 100644 --- a/NovaSonicVoiceAssistant/package-lock.json +++ b/NovaSonicVoiceAssistant/package-lock.json @@ -29,7 +29,7 @@ "@smithy/types": "^4.2.0", "@types/jsonwebtoken": "^9.0.9", "@types/ws": "^8.18.1", - "axios": "^1.8.4", + "axios": "^1.12.0", "chalk": "^5.4.1", "cors": "^2.8.5", "dotenv": "^16.4.5", @@ -10030,13 +10030,13 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.0.tgz", + "integrity": "sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -11620,14 +11620,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -16932,7 +16933,7 @@ "@aws-amplify/core": "^6.10.6", "@aws-amplify/ui-react": "^6.9.4", "aws-amplify": "^6.13.6", - "axios": "^1.8.4", + "axios": "^1.12.0", "framer-motion": "^12.6.3", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/NovaSonicVoiceAssistant/ui/package.json b/NovaSonicVoiceAssistant/ui/package.json index b02bc5f..86441d0 100644 --- a/NovaSonicVoiceAssistant/ui/package.json +++ b/NovaSonicVoiceAssistant/ui/package.json @@ -15,7 +15,7 @@ "@aws-amplify/core": "^6.10.6", "@aws-amplify/ui-react": "^6.9.4", "aws-amplify": "^6.13.6", - "axios": "^1.8.4", + "axios": "^1.12.0", "framer-motion": "^12.6.3", "react": "^18.2.0", "react-dom": "^18.2.0", From 29d77692119621c0b01c15c7940affeb6fbccae5 Mon Sep 17 00:00:00 2001 From: heymanu Date: Tue, 16 Sep 2025 00:23:29 -0500 Subject: [PATCH 5/9] Adding new MSK Express Broker Workload Simulation Workbench --- MskWorkloadSimulationWorkbench/.gitignore | 47 + MskWorkloadSimulationWorkbench/README.md | 1005 ++++ .../app/.dockerignore | 54 + MskWorkloadSimulationWorkbench/app/.gitignore | 15 + MskWorkloadSimulationWorkbench/app/Dockerfile | 54 + .../app/package.json | 41 + .../app/src/index.ts | 18 + .../app/src/kafka/kafka-config.ts | 168 + .../app/src/kafka/multi-topic-consumer.ts | 309 + .../app/src/kafka/multi-topic-manager.ts | 273 + .../app/src/kafka/multi-topic-producer.ts | 338 ++ .../app/src/services/config-service.ts | 38 + .../app/src/services/health-service.ts | 82 + .../app/src/services/metrics-service.ts | 436 ++ .../app/src/services/routes-service.ts | 53 + .../services/workbench-application-service.ts | 418 ++ .../src/services/workbench-config-service.ts | 216 + .../app/tsconfig.json | 9 + MskWorkloadSimulationWorkbench/cdk/.gitignore | 19 + MskWorkloadSimulationWorkbench/cdk/.npmignore | 6 + MskWorkloadSimulationWorkbench/cdk/README.md | 14 + MskWorkloadSimulationWorkbench/cdk/bin/cdk.ts | 30 + .../cdk/cdk.context.json | 18 + MskWorkloadSimulationWorkbench/cdk/cdk.json | 90 + .../constructs/dashboard-widgets/README.md | 189 + .../application-widgets-broken.ts | 293 + .../application-widgets-complex.ts | 320 ++ .../dashboard-widgets/application-widgets.ts | 333 ++ .../application-widgets.ts.bak | 292 + .../dashboard-widgets/consumer-lag-widgets.ts | 62 + .../dashboard-widgets/dashboard-layout.ts | 121 + .../cdk/constructs/dashboard-widgets/index.ts | 9 + .../working-cluster-widgets.ts | 243 + .../cdk/constructs/ecr-construct.ts | 102 + .../cdk/constructs/ecs-cluster-construct.ts | 86 + .../cdk/constructs/ecs-workbench-construct.ts | 335 ++ .../cdk/constructs/msk-construct.ts | 160 + .../constructs/retention-policy-construct.ts | 60 + .../cdk/constructs/tags-construct.ts | 20 + .../cdk/constructs/vpc-construct.ts | 45 + .../cdk/constructs/vpc-endpoints-construct.ts | 187 + .../workbench-dashboard-construct.ts | 88 + .../cdk/lib/app-stack.ts | 153 + .../cdk/lib/config-types-and-helpers.ts | 227 + .../cdk/lib/config.ts | 96 + .../cdk/nag-suppressions.ts | 110 + .../cdk/package-lock.json | 4148 ++++++++++++++ .../cdk/package.json | 27 + .../cdk/tsconfig.json | 37 + .../eslint.config.mjs | 118 + .../img/ArchitectureDiagram.png | Bin 0 -> 411716 bytes ...KWorkBenchDashboard-ApplicationMetrics.png | Bin 0 -> 306773 bytes ...SKWorkBenchDashboard-ClusterMonitoring.png | Bin 0 -> 263274 bytes ...MSKWorkBenchDashboard-DeploymentConfig.png | Bin 0 -> 54861 bytes .../package-lock.json | 5013 +++++++++++++++++ MskWorkloadSimulationWorkbench/package.json | 45 + MskWorkloadSimulationWorkbench/tsconfig.json | 32 + README.md | 1 + 58 files changed, 16703 insertions(+) create mode 100644 MskWorkloadSimulationWorkbench/.gitignore create mode 100644 MskWorkloadSimulationWorkbench/README.md create mode 100644 MskWorkloadSimulationWorkbench/app/.dockerignore create mode 100644 MskWorkloadSimulationWorkbench/app/.gitignore create mode 100644 MskWorkloadSimulationWorkbench/app/Dockerfile create mode 100644 MskWorkloadSimulationWorkbench/app/package.json create mode 100644 MskWorkloadSimulationWorkbench/app/src/index.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/kafka/kafka-config.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-consumer.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-manager.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-producer.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/services/config-service.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/services/health-service.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/services/metrics-service.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/services/routes-service.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/services/workbench-application-service.ts create mode 100644 MskWorkloadSimulationWorkbench/app/src/services/workbench-config-service.ts create mode 100644 MskWorkloadSimulationWorkbench/app/tsconfig.json create mode 100644 MskWorkloadSimulationWorkbench/cdk/.gitignore create mode 100644 MskWorkloadSimulationWorkbench/cdk/.npmignore create mode 100644 MskWorkloadSimulationWorkbench/cdk/README.md create mode 100644 MskWorkloadSimulationWorkbench/cdk/bin/cdk.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/cdk.context.json create mode 100644 MskWorkloadSimulationWorkbench/cdk/cdk.json create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/README.md create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-broken.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-complex.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts.bak create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/consumer-lag-widgets.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/dashboard-layout.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/index.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/working-cluster-widgets.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/ecr-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/ecs-cluster-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/ecs-workbench-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/msk-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/retention-policy-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/tags-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/vpc-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/vpc-endpoints-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/constructs/workbench-dashboard-construct.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/lib/app-stack.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/lib/config-types-and-helpers.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/lib/config.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/nag-suppressions.ts create mode 100644 MskWorkloadSimulationWorkbench/cdk/package-lock.json create mode 100644 MskWorkloadSimulationWorkbench/cdk/package.json create mode 100644 MskWorkloadSimulationWorkbench/cdk/tsconfig.json create mode 100644 MskWorkloadSimulationWorkbench/eslint.config.mjs create mode 100644 MskWorkloadSimulationWorkbench/img/ArchitectureDiagram.png create mode 100644 MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-ApplicationMetrics.png create mode 100644 MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-ClusterMonitoring.png create mode 100644 MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-DeploymentConfig.png create mode 100644 MskWorkloadSimulationWorkbench/package-lock.json create mode 100644 MskWorkloadSimulationWorkbench/package.json create mode 100644 MskWorkloadSimulationWorkbench/tsconfig.json diff --git a/MskWorkloadSimulationWorkbench/.gitignore b/MskWorkloadSimulationWorkbench/.gitignore new file mode 100644 index 0000000..c0031bf --- /dev/null +++ b/MskWorkloadSimulationWorkbench/.gitignore @@ -0,0 +1,47 @@ +# Dependencies +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Build outputs +dist/ +build/ +*.tsbuildinfo + +# Environment files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# IDE files +.vscode/ +.idea/ +*.swp +*.swo + +# OS files +.DS_Store +Thumbs.db + +# Logs +logs/ +*.log + +# Runtime data +pids/ +*.pid +*.seed +*.pid.lock + +# Coverage directory used by tools like istanbul +coverage/ +*.lcov + +# AWS +.aws/ + +# CDK +cdk.out/ diff --git a/MskWorkloadSimulationWorkbench/README.md b/MskWorkloadSimulationWorkbench/README.md new file mode 100644 index 0000000..2347c75 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/README.md @@ -0,0 +1,1005 @@ +# MSK Express Broker Workload Simulation Workbench + +A configurable workload simulation platform for learning and preparing MSK Express production deployments, featuring customizable workloads, real-time monitoring, and hands-on experience with MSK Express broker capabilities. + +## 🚀 **Quick Start** + +```bash +# 1. Install dependencies +npm install + +# 2. Build the project +npm run build + +# 3. Deploy to AWS +npm run deploy:stack +``` + +**Dashboard URL**: Check your deployment output for the CloudWatch dashboard link. + + +## 🎯 **Configurable Workbench Architecture** + +![Alt text](/img/ArchitectureDiagram.png "Architecture Diagram") + +The workbench allows you to run **multiple concurrent services** with different configurations to test various Kafka performance scenarios. You can customize: + +### **Service Configuration Options:** +- **Number of Services**: 1 to N concurrent services +- **Topics per Service**: 1 to multiple topics per service +- **Partitions per Topic**: Configurable partition strategy +- **Instances per Service**: Auto-scaling instance counts +- **Message Size**: 1 byte to 1MB per message (configurable payload size) +- **Resource Allocation**: CPU/memory per service type + +### **Example Configuration:** +```typescript +// Customize in cdk/lib/config-types.ts +const deploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // 1KB messages + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 512 }, // 512B messages + { topics: 3, partitionsPerTopic: 4, instances: 2, messageSizeBytes: 4096 }, // 4KB messages + // Add more services as needed for your testing + ] +}; +``` + +### **Flexible Resource Allocation:** +- **Variable Topics**: 1-10+ topics per service +- **Configurable Partitions**: 1-20+ partitions per topic +- **Scalable Instances**: 1-20+ instances per service +- **Mixed Workloads**: Different configurations running simultaneously + +## 📁 **Project Structure** + +``` +├── README.md # This comprehensive guide +├── package.json # Workspace configuration +├── app/ # Configurable workbench application +│ ├── src/ +│ │ ├── index.ts # Application entry point +│ │ ├── services/ # Core services (workbench, health, metrics, config) +│ │ └── kafka/ # Multi-topic Kafka streaming layer +│ ├── Dockerfile # Multi-platform container +│ └── package.json +└── cdk/ # AWS infrastructure as code + ├── bin/cdk.ts # CDK app with compliance checks + ├── lib/ + │ ├── app-stack.ts # Main application stack + │ └── config-types.ts # Configuration definitions + └── constructs/ # Reusable infrastructure components +``` + +## 🎯 **Key Features** + +### **Configurable Workload Simulation** +- **Multi-Service Architecture**: Run 1-N services with different configurations to simulate various scenarios +- **Comparative Analysis**: Real-time performance comparison between different configurations +- **A/B Testing**: Test different topics/partitions/instances combinations for learning +- **Load Simulation**: Configurable throughput and latency simulation scenarios + +### **Advanced Kafka Streaming** +- **Dynamic Topic Management**: Automatic topic creation based on configuration +- **Flexible Message Distribution**: Round-robin, partition-specific, or custom strategies +- **Multi-Topic Consumption**: Parallel consumption from configurable topic sets +- **End-to-End Latency Tracking**: Configurable monitoring and measurement + +### **Production-Ready Infrastructure** +- **MSK Express**: Cost-optimized Kafka cluster for learning and preparation +- **VPC Architecture**: 3-AZ setup with private subnets +- **Container Platform**: ECS Fargate with configurable scaling +- **Dynamic Dashboard**: Auto-adapts to your service configuration +- **Compliance**: CDK NAG validation with AWS Solutions checks + +### **Developer Experience** +- **TypeScript**: Full type safety and modern development +- **Configuration-Driven**: Easy to modify test scenarios +- **One-Command Deployment**: Automated AWS setup +- **Clean Architecture**: Modular, testable workbench codebase +- **Comprehensive Logging**: Structured JSON logs to CloudWatch + +## 🛠️ **Prerequisites** + +- **Node.js** 20.9+ (22+ recommended) +- **AWS CLI** configured with appropriate credentials +- **AWS CDK CLI** installed globally (`npm install -g aws-cdk`) +- **Docker** (for container builds) + +**Supported Platforms**: Windows, macOS, Linux + +## ⚡ **Quick Commands** + +```bash +# Development +npm run build # Build all projects +npm run lint # Code quality checks +npm run format # Auto-format code + +# Deployment +npm run deploy:stack # Build and deploy to AWS +npm run destroy:stack # Clean up AWS resources + +# Configuration +npm run nag-check # Compliance validation +``` + +## 🎯 **What You Get** + +After deployment, you'll have: + +1. **🚀 Configurable Workbench**: N concurrent Kafka workload simulations +2. **📊 Dynamic Dashboard**: Auto-adapts to your service configuration +3. **🔄 Auto-scaling**: ECS tasks scale based on your configuration and load +4. **⏱️ Latency Tracking**: End-to-end performance monitoring per service +5. **💰 Cost Optimization**: MSK Express for 90% cost savings +6. **🛡️ Production Security**: VPC isolation, IAM roles, compliance checks + +## 🌟 **Workbench Highlights** + +- **Configuration-Driven**: Easy to modify for different test scenarios +- **Performance Comparison**: Side-by-side analysis of different configurations +- **Cost-Optimized Kafka**: MSK Express for development/testing workloads +- **Multi-AZ Resilience**: 3 availability zones for high availability +- **Private Networking**: Isolated subnets with VPC endpoints +- **Adaptive Monitoring**: Dashboard adjusts to your configuration + +## 📈 **Dynamic Dashboard** + +Your deployment includes a CloudWatch dashboard that automatically adapts to your configuration: + +- **Service Throughput Comparison**: Producer vs Consumer rates per configured service +- **Service Performance Summary**: Individual service throughput widgets +- **Latency Comparison**: Average and P95 latency across all configured services +- **Configuration Analysis**: Impact of your topics/partitions/instances choices + +## ⚠️ **Important Disclaimer** + +The MSK Express Broker Workload Simulation Workbench is designed as an **educational and sizing estimation tool** to help teams prepare for MSK Express production deployments. While it provides valuable insights into performance characteristics, results may vary based on your specific use cases, network conditions, and configurations. + +**Use workbench results as guidance for initial sizing and planning. Always conduct comprehensive performance validation with your actual workloads in production-like environments before final deployment.** + +**Recommended Usage:** +- **Production readiness and team training** for MSK Express capabilities +- **Understanding MSK Express advantages**: 3× throughput, 20× faster scaling, 90% faster recovery +- **Architecture validation** leveraging MSK Express simplified operations +- **Capacity planning** using MSK Express enhanced performance characteristics +- **Preparing teams** for production Kafka implementations with MSK Express + +# 🏗️ Architecture + +## 🎛️ **Configuration System** + +### **Service Configuration Interface** +```typescript +interface ServiceConfig { + topics: number; // Number of topics per service + partitionsPerTopic: number; // Partitions per topic + instances: number; // Desired instance count + messageSizeBytes: number; // Message payload size in bytes (1-1048576) +} + +interface DeploymentConfig { + services: ServiceConfig[]; // Array of service configurations +} +``` + +### **Configuration Examples** + +#### **Single Service Configuration** +```typescript +const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 3, partitionsPerTopic: 8, instances: 1, messageSizeBytes: 2048 } + ] +}; +// Result: 1 service, 3 topics, 24 partitions, 1 instances, 2KB messages +``` + +#### **Comparative Testing Configuration** +```typescript +const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 1, instances: 1, messageSizeBytes: 1024 }, // Baseline + { topics: 1, partitionsPerTopic: 10, instances: 1, messageSizeBytes: 1024 }, // Partition impact + { topics: 1, partitionsPerTopic: 1, instances: 10, messageSizeBytes: 1024 }, // Instance impact + { topics: 10, partitionsPerTopic: 1, instances: 1, messageSizeBytes: 1024 }, // Topic impact + ] +}; +// Result: 4 services for A/B/C/D testing +``` + +#### **Message Size Analysis Configuration** +```typescript +const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 256 }, // Small messages + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // Medium messages + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 8192 }, // Large messages + ] +}; +// Result: 3 services with different message sizes for impact analysis +``` + +#### **Load Testing Configuration** +```typescript +const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 5, partitionsPerTopic: 20, instances: 15, messageSizeBytes: 1024 }, // High load + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 1024 }, // Control group + ] +}; +// Result: High-load vs control comparison +``` + +## 🏛️ **Application Architecture** + +### **Dynamic Service Generation** + +``` +┌─────────────────────────────────────────────────────────────┐ +│ Configuration Parser │ +├─────────────────────────────────────────────────────────────┤ +│ DeploymentConfig → ServiceConfig[] → ECS Services │ +│ - Reads configuration │ +│ - Generates service definitions │ +│ - Creates infrastructure resources │ +└─────────────────────────────────────────────────────────────┘ + │ +┌─────────────────────────────────────────────────────────────┐ +│ Application Layer │ +├─────────────────────────────────────────────────────────────┤ +│ WorkbenchApplicationService │ Health & Metrics Services │ +│ - Service orchestration │ - Health monitoring │ +│ - Configuration management │ - CloudWatch metrics │ +│ - Graceful shutdown │ - HTTP endpoints │ +└─────────────────────────────────────────────────────────────┘ + │ +┌─────────────────────────────────────────────────────────────┐ +│ Kafka Layer │ +├─────────────────────────────────────────────────────────────┤ +│ MultiTopicManager │ MultiTopicProducer │ MultiTopicConsumer │ +│ - Dynamic topic │ - Configurable │ - Flexible │ +│ creation │ round-robin │ subscription │ +│ - Replication setup │ - Load balancing │ - Parallel │ +│ - Health checks │ - Error handling │ processing │ +└─────────────────────────────────────────────────────────────┘ +``` + +### **File Structure** +``` +app/src/ +├── index.ts # Application entry point +├── services/ +│ ├── workbench-application-service.ts # Main orchestrator +│ ├── workbench-config-service.ts # Configuration parser +│ ├── health-service.ts # Health monitoring +│ ├── metrics-service.ts # CloudWatch metrics +│ ├── routes-service.ts # HTTP endpoints +│ └── config-service.ts # Basic configuration +└── kafka/ + ├── multi-topic-manager.ts # Dynamic topic management + ├── multi-topic-producer.ts # Configurable producer + ├── multi-topic-consumer.ts # Flexible consumer + └── kafka-config.ts # MSK connection config +``` + +## 🏗️ **Infrastructure Architecture** + +### **Dynamic AWS Components** + +``` +┌─────────────────────────────────────────────────────────────┐ +│ VPC (3 AZs) │ +├─────────────────────────────────────────────────────────────┤ +│ Private Subnets │ MSK Express │ ECS Fargate │ +│ - 3 AZ coverage │ - 3 Brokers │ - N Services │ +│ - NAT Gateways │ - Auto-scaling │ - Auto-scaling │ +│ - VPC Endpoints │ - Monitoring │ - Health checks │ +└─────────────────────────────────────────────────────────────┘ + │ +┌─────────────────────────────────────────────────────────────┐ +│ Configuration-Aware Monitoring │ +├─────────────────────────────────────────────────────────────┤ +│ CloudWatch │ CloudWatch │ CloudWatch │ +│ - Dynamic │ - Per-service │ - Adaptive │ +│ metrics │ logs │ dashboard │ +│ - Configurable │ - Structured │ - Auto-layout │ +│ dimensions │ - Searchable │ - Real-time │ +└─────────────────────────────────────────────────────────────┘ +``` + +### **CDK Constructs for Configuration** + +``` +cdk/constructs/ +├── ecs-workbench-construct.ts # Dynamic multi-service deployment +├── workbench-dashboard-construct.ts # Configuration-aware dashboard +├── msk-construct.ts # MSK Express cluster +├── vpc-construct.ts # VPC with 3 AZs +├── vpc-endpoints-construct.ts # VPC endpoints +└── retention-policy-construct.ts # Log retention +``` +# 🛠️ Development Guide + +## 🔧 **Development Setup** + +### **Prerequisites** +- **Node.js** 20.9+ (22+ recommended) +- **npm** 9+ (comes with Node.js) +- **AWS CLI** configured with appropriate credentials +- **AWS CDK CLI** installed globally: `npm install -g aws-cdk` +- **Docker** (for container builds) +- **Git** for version control + +### **Initial Setup** +```bash +# Clone the repository +git clone +cd MskExpress + +# Install dependencies +npm install + +# Build all projects +npm run build + +# Verify setup +npm run lint +``` + +## 🎛️ **Configuration Management** + +### **Primary Configuration File** +```typescript +// cdk/lib/config-types.ts +export interface ServiceConfig { + topics: number; // Number of topics per service + partitionsPerTopic: number; // Partitions per topic + instances: number; // Desired instance count + messageSizeBytes: number; // Message payload size in bytes (1-1048576) +} + +export interface DeploymentConfig { + services: ServiceConfig[]; // Array of service configurations +} + +// 🎯 CUSTOMIZE THIS FOR YOUR TESTING NEEDS +export const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // Service 0 + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 512 }, // Service 1 + { topics: 3, partitionsPerTopic: 4, instances: 2, messageSizeBytes: 4096 }, // Service 2 + // Add more services as needed for your tests + ] +}; +``` + +### **Configuration Examples for Different Test Scenarios** + +#### **Single Service Testing** +```typescript +export const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 3, partitionsPerTopic: 8, instances: 4, messageSizeBytes: 2048 } + ] +}; +// Use case: Simple performance baseline +``` + +#### **Partition Impact Testing** +```typescript +export const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 1, instances: 2, messageSizeBytes: 1024 }, // Low partitions + { topics: 1, partitionsPerTopic: 10, instances: 2, messageSizeBytes: 1024 }, // High partitions + { topics: 1, partitionsPerTopic: 20, instances: 2, messageSizeBytes: 1024 }, // Very high partitions + ] +}; +// Use case: Analyze partition count impact on performance +``` + +#### **Instance Scaling Testing** +```typescript +export const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 1, messageSizeBytes: 1024 }, // Minimal instances + { topics: 2, partitionsPerTopic: 6, instances: 5, messageSizeBytes: 1024 }, // Medium instances + { topics: 2, partitionsPerTopic: 6, instances: 10, messageSizeBytes: 1024 }, // High instances + ] +}; +// Use case: Analyze instance scaling impact +``` + +## 🔄 **Development Workflow** + +### **Configuration-First Development** +```bash +# 1. Modify configuration for your test scenario +vim cdk/lib/config-types.ts + +# 2. Validate configuration +npm run build +npm run lint + +# 3. Deploy with new configuration +npm run deploy:stack + +# 4. Monitor results +# Check dashboard, logs, and metrics + +# 5. Iterate +# Modify configuration and repeat +``` + +### **Testing Different Configurations** +```bash +# Save current configuration +cp cdk/lib/config-types.ts cdk/lib/config-types.ts.backup + +# Test configuration A +cat > cdk/lib/config-types.ts << 'EOF' +export const deploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 10, instances: 5, messageSizeBytes: 1024 } + ] +}; +EOF +npm run deploy:stack +# Monitor and record results + +# Test configuration B +cat > cdk/lib/config-types.ts << 'EOF' +export const deploymentConfig = { + services: [ + { topics: 10, partitionsPerTopic: 1, instances: 5, messageSizeBytes: 1024 } + ] +}; +EOF +npm run deploy:stack +# Monitor and record results + +# Restore original +mv cdk/lib/config-types.ts.backup cdk/lib/config-types.ts +``` +# 🚀 Deployment Guide + +## 🎛️ **Configuration-First Deployment** + +### **Step 1: Define Your Test Configuration** +```typescript +// Edit: cdk/lib/config-types.ts +export const deploymentConfig: DeploymentConfig = { + services: [ + // Customize these for your testing needs: + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // High-throughput test + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 512 }, // Latency test + { topics: 3, partitionsPerTopic: 4, instances: 2, messageSizeBytes: 4096 }, // Multi-topic test + // Add more services as needed + ] +}; +``` + +### **Step 2: Validate Configuration** +```bash +# Validate your configuration before deployment +npm run build +node -e " +const { ConfigurationHelper } = require('./cdk/dist/lib/config-helpers'); +const { deploymentConfig } = require('./cdk/dist/lib/config-types'); +const result = ConfigurationHelper.validateConfiguration(deploymentConfig); +if (!result.valid) { + console.error('❌ Configuration errors:'); + result.errors.forEach(error => console.error(' -', error)); + process.exit(1); +} +console.log('✅ Configuration is valid'); +console.log('📊 Deployment Summary:'); +console.log(' Services:', deploymentConfig.services.length); +console.log(' Total Instances:', ConfigurationHelper.getTotalInstances(deploymentConfig)); +console.log(' Total Topics:', ConfigurationHelper.getTotalTopics(deploymentConfig)); +console.log(' Total Partitions:', ConfigurationHelper.getTotalPartitions(deploymentConfig)); +" +``` + +### **Step 3: Deploy** +```bash +# Deploy your configuration +npm run deploy:stack +``` + +## 📋 **Configuration Examples and Deployment Scenarios** + +### **Single Service Testing** +```typescript +// Simple baseline testing +export const deploymentConfig = { + services: [ + { topics: 3, partitionsPerTopic: 8, instances: 4, messageSizeBytes: 2048 } + ] +}; +// Deploys: 1 service, 3 topics, 24 partitions, 4 instances, 2KB messages +// Use case: Establish performance baseline +``` + +### **A/B Testing Configuration** +```typescript +// Compare different approaches +export const deploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 12, instances: 3, messageSizeBytes: 1024 }, // Single topic approach + { topics: 4, partitionsPerTopic: 3, instances: 3, messageSizeBytes: 1024 }, // Multi-topic approach + { topics: 12, partitionsPerTopic: 1, instances: 3, messageSizeBytes: 1024 }, // Many topics approach + ] +}; +// Deploys: 3 services for comparative analysis +// Use case: Topic distribution strategy testing +``` + +### **Message Size Analysis Configuration** +```typescript +// Test message size impact +export const deploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 256 }, // Small messages + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // Medium messages + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 8192 }, // Large messages + ] +}; +// Deploys: 3 services with different message sizes +// Use case: Message size impact analysis +``` + +### **Scaling Analysis Configuration** +```typescript +// Test scaling impact +export const deploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 1, messageSizeBytes: 1024 }, // Minimal scaling + { topics: 2, partitionsPerTopic: 6, instances: 5, messageSizeBytes: 1024 }, // Medium scaling + { topics: 2, partitionsPerTopic: 6, instances: 10, messageSizeBytes: 1024 }, // High scaling + ] +}; +// Deploys: 3 services with different instance counts +// Use case: Instance scaling impact analysis +``` + +### **Load Testing Configuration** +```typescript +// Maximum load testing +export const deploymentConfig = { + services: [ + { topics: 10, partitionsPerTopic: 20, instances: 15, messageSizeBytes: 1024 }, // High load + { topics: 1, partitionsPerTopic: 1, instances: 1, messageSizeBytes: 1024 }, // Control + ] +}; +// Deploys: High-load service + control group +// Use case: Stress testing and limits discovery +``` + +## 🔄 **Configuration Updates and Scaling** + +### **Updating Your Configuration** +```bash +# 1. Modify configuration +vim cdk/lib/config-types.ts + +# 2. Validate new configuration +npm run build +node -e "/* validation script from above */" + +# 3. Deploy changes +npm run deploy:stack + +# 4. Monitor transition +watch -n 30 'aws ecs describe-services --cluster dev-mske-cluster --services $(aws ecs list-services --cluster dev-mske-cluster --query "serviceArns[]" --output text) --query "services[].{name:serviceName,desired:desiredCount,running:runningCount,pending:pendingCount}"' +``` + +## 💰 **Cost Management by Configuration** + +### **Cost Estimation** +```bash +# Estimate costs based on your configuration +node -e " +const { ConfigurationHelper } = require('./cdk/dist/lib/config-helpers'); +const { deploymentConfig } = require('./cdk/dist/lib/config-types'); + +const totalInstances = ConfigurationHelper.getTotalInstances(deploymentConfig); +const fargateHourlyCost = totalInstances * 0.04048; // 1 vCPU + 2GB memory +const mskHourlyCost = 0.75; // MSK Express +const totalHourly = fargateHourlyCost + mskHourlyCost; + +console.log('💰 Cost Estimation:'); +console.log(\` ECS Fargate: \${totalInstances} instances × $0.04048/hour = $\${fargateHourlyCost.toFixed(2)}/hour\`); +console.log(\` MSK Express: $\${mskHourlyCost.toFixed(2)}/hour\`); +console.log(\` Total: $\${totalHourly.toFixed(2)}/hour\`); +console.log(\` Daily: $\${(totalHourly * 24).toFixed(2)}\`); +console.log(\` Monthly: $\${(totalHourly * 24 * 30).toFixed(2)}\`); +" +``` + +## 🧹 **Cleanup and Resource Management** + +### **Complete Cleanup** +```bash +# Destroy all resources +npm run destroy:stack + +# Or manually +cd cdk +npx cdk destroy --force +``` +# 📊 Monitoring Guide + +## 🎯 **Dashboard Overview** + +The workbench includes a dynamic CloudWatch dashboard that automatically adapts to your configuration: +```typescript +// From config.ts +export const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // 1KB messages + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 512 }, // 512B messages + { topics: 3, partitionsPerTopic: 4, instances: 2, messageSizeBytes: 4096 }, // 4KB messages + ], +}; +``` + +## ⚡ **Critical Metrics Understanding** + +### **Application Metrics (What the App Sends):** +The application calculates and sends **rate metrics** every 5 seconds: + +```typescript +// From metrics-service.ts +const messagesSentPerSecond = this.messagesSentCount / intervalSeconds; +const messagesReceivedPerSecond = this.messagesReceivedCount / intervalSeconds; + +// Sent to CloudWatch as: +{ + MetricName: 'MessagesSentPerSecond', + Value: messagesSentPerSecond, // Already calculated as per-second + Unit: 'Count/Second', + Dimensions: [ + { Name: 'Service', Value: 'dev-mske-service-0' }, + { Name: 'Environment', Value: process.env.NODE_ENV || 'development' } + ] +} +``` + +### **Dashboard Display (Environment-Agnostic):** +- **Statistic**: `AVERAGE` (not SUM) - because values are already rates +- **Period**: 1 minute aggregation +- **Units**: Messages/Second, Milliseconds +- **Environment**: **REMOVED** - works with any environment (dev/prod/test) + +## 📈 **Dashboard Sections** + +### **1. MSK Express Cluster Health** +- **Broker Status**: Per-broker health metrics +- **Network Throughput**: Bytes in/out per broker (MSK native metrics) +- **CPU & Memory**: Resource utilization per broker +- **Connection Count**: Active connections per broker + +### **2. Service Performance (Application Metrics)** +- **Throughput Comparison**: Side-by-side service performance +- **Message Rates**: Producer and consumer rates (Messages/Second) +- **Latency Analysis**: End-to-end message delivery times (Milliseconds) +- **Message Size Impact**: Performance by payload size + +### **3. Topic & Partition Metrics** +- **Topic Throughput**: Messages per topic +- **Partition Balance**: Load distribution +- **Consumer Group Lag**: Message backlog tracking + +### **4. Resource Utilization** +- **ECS Task Metrics**: CPU, memory, network +- **Container Insights**: Task-level performance +- **Network Metrics**: VPC endpoint usage + +## 🔍 **Available Metrics** + +### **MSK Express Metrics (AWS Native):** +```plaintext +BytesInPerSec - Incoming bytes rate (per broker) +BytesOutPerSec - Outgoing bytes rate (per broker) +MessagesInPerSec - Message ingestion rate (per broker) +CpuUser - CPU utilization (user) (per broker) +CpuSystem - CPU utilization (system) (per broker) +CpuIdle - CPU idle percentage (per broker) +MemoryUsed - Memory consumption (per broker) +NetworkRxPackets - Network packets received (per broker) +NetworkTxPackets - Network packets sent (per broker) +``` + +### **Application Metrics (Custom):** +```plaintext +MessagesSentPerSecond - Producer rate (per service) - Unit: Count/Second +MessagesReceivedPerSecond - Consumer rate (per service) - Unit: Count/Second +MessageLatencyAverage - Average latency (per service) - Unit: Milliseconds +MessageLatencyP95 - P95 latency (per service) - Unit: Milliseconds +MessageLatencyP99 - P99 latency (per service) - Unit: Milliseconds +TotalMessagesSent - Cumulative count (per service) - Unit: Count +TotalMessagesReceived - Cumulative count (per service) - Unit: Count +``` + +### **ECS Service Metrics (AWS Native):** +```plaintext +CPUUtilization - Task CPU usage (per service) +MemoryUtilization - Task memory usage (per service) +NetworkRxBytes - Network bytes received (per service) +NetworkTxBytes - Network bytes transmitted (per service) +RunningTaskCount - Active tasks (per service) +PendingTaskCount - Tasks waiting to start (per service) +``` + +## ⚡ **Real-time Monitoring** + +### **1. Service Health Check:** +```bash +# Check ECS service status +aws ecs describe-services \ + --cluster dev-mske-cluster \ + --services dev-mske-service-0 dev-mske-service-1 dev-mske-service-2 +``` + +### **2. Broker Health Check:** +```bash +# Check MSK broker status +aws kafka list-nodes \ + --cluster-arn "arn:aws:kafka:us-east-1:878004393455:cluster/dev-mske-express-cluster/*" +``` + +### **3. CloudWatch Logs:** +```plaintext +/aws/ecs/workbench/dev-mske-service-0 - Service 0 logs +/aws/ecs/workbench/dev-mske-service-1 - Service 1 logs +/aws/ecs/workbench/dev-mske-service-2 - Service 2 logs +``` + +### **4. Live Metrics Query:** +```bash +# Get current throughput metrics +aws cloudwatch get-metric-statistics \ + --namespace "MSKExpress/Kafka" \ + --metric-name "MessagesSentPerSecond" \ + --dimensions Name=Service,Value=dev-mske-service-0 Name=Environment,Value=development \ + --start-time $(date -u -d '5 minutes ago' +%Y-%m-%dT%H:%M:%S) \ + --end-time $(date -u +%Y-%m-%dT%H:%M:%S) \ + --period 60 \ + --statistics Average +``` + +## 📊 **Performance Analysis** + +### **1. Throughput Analysis:** +- **Expected Range**: 100-10,000 messages/second per service +- **Factors**: Message size, partition count, instance count +- **Optimization**: Increase partitions for higher throughput + +### **2. Latency Analysis:** +- **Expected Range**: 1-50ms end-to-end latency +- **Factors**: Message size, network conditions, processing time +- **Optimization**: Reduce message size, increase instances + +### **3. Resource Analysis:** +- **CPU**: Should be < 70% average +- **Memory**: Should be < 80% average +- **Network**: Monitor for bottlenecks + +## 🚨 **Alerting** + +### **Recommended Alarms:** +1. **High Latency**: MessageLatencyAverage > 100ms +2. **Low Throughput**: MessagesSentPerSecond < expected baseline +3. **High CPU**: ECS CPU > 80% +4. **Task Failures**: RunningTaskCount < DesiredCount +# 📏 Message Size Configuration Guide + +## 🎯 **Message Size Configuration Overview** + +The workbench supports configurable message sizes from **1 byte to 1MB** per message, allowing you to: + +- **Test throughput impact** of different message sizes +- **Analyze latency variations** across payload sizes +- **Compare network efficiency** of small vs large messages +- **Optimize for your use case** based on real performance data + +## 📊 **Message Size Testing Scenarios** + +### **1. Message Size Impact Analysis** +Test how message size affects performance with identical configurations: + +```typescript +export const deploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 100 }, // 100B - Tiny + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1024 }, // 1KB - Small + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 10240 }, // 10KB - Medium + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 102400 }, // 100KB - Large + ] +}; +``` + +**Expected Results:** +- **Tiny messages (100B)**: Highest throughput (msg/sec), lowest latency +- **Small messages (1KB)**: Balanced throughput and latency +- **Medium messages (10KB)**: Moderate throughput, increased latency +- **Large messages (100KB)**: Lowest throughput, highest latency + +### **2. Throughput vs Message Size** +Find the optimal message size for maximum throughput: + +```typescript +export const deploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 10, instances: 5, messageSizeBytes: 64 }, // 64B + { topics: 1, partitionsPerTopic: 10, instances: 5, messageSizeBytes: 256 }, // 256B + { topics: 1, partitionsPerTopic: 10, instances: 5, messageSizeBytes: 1024 }, // 1KB + { topics: 1, partitionsPerTopic: 10, instances: 5, messageSizeBytes: 4096 }, // 4KB + { topics: 1, partitionsPerTopic: 10, instances: 5, messageSizeBytes: 16384 }, // 16KB + ] +}; +``` + +### **3. Network Efficiency Testing** +Compare network utilization of different message size strategies: + +```typescript +export const deploymentConfig = { + services: [ + { topics: 10, partitionsPerTopic: 2, instances: 3, messageSizeBytes: 512 }, // Many small messages + { topics: 2, partitionsPerTopic: 2, instances: 3, messageSizeBytes: 2560 }, // Few large messages (same total data) + ] +}; +``` + +### **4. Latency Optimization** +Find the message size that minimizes end-to-end latency: + +```typescript +export const deploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 32 }, // Ultra-small + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 128 }, // Very small + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 512 }, // Small + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 2048 }, // Medium + ] +}; +``` + +### **5. Real-World Payload Testing** +Test with message sizes that match your actual use case: + +```typescript +export const deploymentConfig = { + services: [ + { topics: 3, partitionsPerTopic: 4, instances: 2, messageSizeBytes: 256 }, // IoT sensor data + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 2048 }, // User events + { topics: 1, partitionsPerTopic: 8, instances: 4, messageSizeBytes: 8192 }, // Log entries + { topics: 1, partitionsPerTopic: 4, instances: 2, messageSizeBytes: 32768 }, // File chunks + ] +}; +``` + +## 🎯 **Message Size Limits and Validation** + +### **Supported Range** +- **Minimum**: 1 byte +- **Maximum**: 1,048,576 bytes (1MB) +- **Recommended**: 1KB - 64KB for most use cases + +### **Validation Rules** +The system validates message size configuration: + +```typescript +// Automatic validation during deployment +if (messageSizeBytes < 1 || messageSizeBytes > 1048576) { + throw new Error('Message size must be between 1 and 1,048,576 bytes (1MB)'); +} +``` + +## 📈 **Performance Characteristics by Message Size** + +### **Expected Performance Patterns** + +#### **Small Messages (< 1KB)** +- **Throughput**: Very high (messages/second) +- **Latency**: Very low (< 10ms) +- **Network**: High packet overhead +- **CPU**: Higher serialization overhead per byte +- **Use Cases**: IoT sensors, simple events, counters + +#### **Medium Messages (1KB - 10KB)** +- **Throughput**: High (balanced) +- **Latency**: Low (10-50ms) +- **Network**: Balanced efficiency +- **CPU**: Optimal serialization efficiency +- **Use Cases**: User events, API payloads, structured data + +#### **Large Messages (10KB - 100KB)** +- **Throughput**: Moderate (fewer messages/second) +- **Latency**: Moderate (50-200ms) +- **Network**: High efficiency per message +- **CPU**: Lower overhead per byte +- **Use Cases**: Document processing, batch data, file transfers + +#### **Very Large Messages (100KB - 1MB)** +- **Throughput**: Low (limited by network/disk) +- **Latency**: High (200ms+) +- **Network**: Maximum efficiency per message +- **CPU**: Minimal overhead per byte +- **Use Cases**: File chunks, images, large documents + +## 🎯 **Best Practices** + +### **Message Size Selection** +1. **Start with 1KB**: Good baseline for most applications +2. **Test your actual payloads**: Use realistic message sizes +3. **Consider network constraints**: Smaller messages for high-latency networks +4. **Balance throughput vs latency**: Optimize for your primary metric + +### **Testing Strategy** +1. **Baseline testing**: Single message size across all services +2. **Comparative analysis**: Multiple sizes with identical configurations +3. **Real-world simulation**: Mix of sizes matching your use case +4. **Edge case testing**: Very small and very large messages + +### **Configuration Tips** +```typescript +// Good: Clear message size progression +const deploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 512 }, // 0.5KB + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 2048 }, // 2KB + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 8192 }, // 8KB + ] +}; + +// Avoid: Random message sizes without clear testing purpose +const deploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 3, messageSizeBytes: 1337 }, // Unclear purpose + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 9999 }, // Random size + ] +}; +``` + +## 🚀 **Getting Started** + +### **1. Define Your Test Scenario** +```typescript +// Example: Test message size impact on latency +export const deploymentConfig = { + services: [ + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 256 }, // Small + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 1024 }, // Medium + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 4096 }, // Large + ] +}; +``` + +### **2. Deploy and Monitor** +```bash +# Deploy your configuration +npm run deploy:stack + +# Monitor results in dashboard +# Compare latency metrics across services +``` + +### **3. Analyze Results** +- Compare throughput (messages/second) across services +- Analyze latency patterns (average, P95, P99) +- Monitor resource utilization (CPU, memory, network) +- Document findings for your use case + +### **4. Iterate and Optimize** +- Adjust message sizes based on results +- Test edge cases and boundary conditions +- Validate with production-like workloads +- Document optimal configurations for your use case + +--- + +The message size configuration feature enables comprehensive testing of how payload size impacts Kafka performance, helping you optimize your streaming applications for your specific requirements. diff --git a/MskWorkloadSimulationWorkbench/app/.dockerignore b/MskWorkloadSimulationWorkbench/app/.dockerignore new file mode 100644 index 0000000..8139c79 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/.dockerignore @@ -0,0 +1,54 @@ +# Node.js +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# TypeScript +*.tsbuildinfo + +# Source files (we use pre-built dist/) +src/ +tsconfig.json +.eslintrc* +.prettierrc* + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# IDE files +.vscode/ +.idea/ +*.swp +*.swo + +# Logs +logs/ +*.log + +# Runtime data +pids/ +*.pid +*.seed +*.pid.lock + +# Coverage directory used by tools like istanbul +coverage/ +*.lcov + +# Environment variables +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Temporary folders +tmp/ +temp/ diff --git a/MskWorkloadSimulationWorkbench/app/.gitignore b/MskWorkloadSimulationWorkbench/app/.gitignore new file mode 100644 index 0000000..1042ec8 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/.gitignore @@ -0,0 +1,15 @@ +# Dependencies +node_modules/ + +# Build outputs +dist/ +build/ +*.tsbuildinfo + +# Environment files +.env +.env.local + +# Logs +*.log +logs/ diff --git a/MskWorkloadSimulationWorkbench/app/Dockerfile b/MskWorkloadSimulationWorkbench/app/Dockerfile new file mode 100644 index 0000000..795d9be --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/Dockerfile @@ -0,0 +1,54 @@ +# Multi-platform Node.js Dockerfile for MSK Express App +# Compatible with both Apple Silicon (M1/M2) and AWS x86_64 + +# Use Node.js 20 LTS with Alpine for smaller image size +# Support both arm64 (Apple Silicon) and amd64 (AWS/Intel) +FROM --platform=$BUILDPLATFORM node:22-alpine AS base + +# Set working directory +WORKDIR /app + +# Install build dependencies for native modules +RUN apk add --no-cache \ + python3 \ + make \ + g++ \ + && ln -sf python3 /usr/bin/python + +# Copy package files +COPY package*.json ./ + +# Install dependencies (use install instead of ci for workspace compatibility) +RUN npm install --only=production && npm cache clean --force + +# Production stage - multi-platform support +FROM --platform=$TARGETPLATFORM node:22-alpine AS production + +# Create non-root user for security +RUN addgroup -g 1001 -S nodejs && \ + adduser -S nodejs -u 1001 + +# Set working directory +WORKDIR /app + +# Copy built application and dependencies from base stage +COPY --from=base --chown=nodejs:nodejs /app/node_modules ./node_modules +COPY --chown=nodejs:nodejs dist ./dist +COPY --chown=nodejs:nodejs package*.json ./ + +# Switch to non-root user +USER nodejs + +# Expose the application port +EXPOSE 3000 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1 + +# Set environment variables +ENV NODE_ENV=production +ENV PORT=3000 + +# Start the application +CMD ["node", "dist/index.js"] diff --git a/MskWorkloadSimulationWorkbench/app/package.json b/MskWorkloadSimulationWorkbench/app/package.json new file mode 100644 index 0000000..e35a85d --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/package.json @@ -0,0 +1,41 @@ +{ + "name": "@workspace/app", + "version": "1.0.0", + "description": "MSK Express Kafka Application - Simplified", + "main": "dist/index.js", + "scripts": { + "build": "tsc", + "start": "node dist/index.js", + "dev": "ts-node src/index.ts", + "clean": "rm -rf dist", + "lint": "eslint src --ext .ts", + "lint:fix": "eslint src --ext .ts --fix", + "format": "prettier --write src", + "format:check": "prettier --check src" + }, + "engines": { + "node": ">=22.0.0" + }, + "dependencies": { + "@aws-sdk/client-cloudwatch": "^3.658.1", + "@aws-sdk/client-kafka": "^3.658.1", + "aws-msk-iam-sasl-signer-js": "^1.0.0", + "express": "^4.19.2", + "kafkajs": "^2.2.4", + "pino": "^8.17.2" + }, + "devDependencies": { + "@types/express": "^4.17.21", + "@types/node": "^22.7.4", + "ts-node": "^10.9.2" + }, + "keywords": [ + "nodejs", + "typescript", + "kafka", + "msk", + "aws" + ], + "author": "", + "license": "ISC" +} diff --git a/MskWorkloadSimulationWorkbench/app/src/index.ts b/MskWorkloadSimulationWorkbench/app/src/index.ts new file mode 100644 index 0000000..9a944d2 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/index.ts @@ -0,0 +1,18 @@ +/** + * MSK Express Workbench Application - Main Entry Point + * Multi-topic Kafka performance testing workbench + */ + +import { WorkbenchApplicationService } from './services/workbench-application-service'; + +// Initialize and start the workbench application +const app = new WorkbenchApplicationService(); + +// Start the application +app.start().catch((error) => { + process.stderr.write(`Failed to start workbench application: ${error}\n`); + process.exit(1); +}); + +// Export the Express app for testing purposes +export default app.getApp(); diff --git a/MskWorkloadSimulationWorkbench/app/src/kafka/kafka-config.ts b/MskWorkloadSimulationWorkbench/app/src/kafka/kafka-config.ts new file mode 100644 index 0000000..502b624 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/kafka/kafka-config.ts @@ -0,0 +1,168 @@ +/** + * Kafka Configuration Class + * Handles MSK cluster connection configuration with IAM authentication + */ + +import { KafkaClient, GetBootstrapBrokersCommand } from '@aws-sdk/client-kafka'; +import { generateAuthToken } from 'aws-msk-iam-sasl-signer-js'; +import { Kafka, KafkaConfig, SASLOptions } from 'kafkajs'; +import pino from 'pino'; + +export interface MskConfig { + clusterArn: string; + clusterName: string; + region: string; + topicName: string; + clientId: string; +} + +export class KafkaConfigManager { + private logger: pino.Logger; + private kafkaClient: KafkaClient; + private config: MskConfig; + private bootstrapServers: string[] = []; + + constructor(config: MskConfig, logger: pino.Logger) { + this.config = config; + this.logger = logger.child({ component: 'KafkaConfigManager' }); + this.kafkaClient = new KafkaClient({ region: config.region }); + } + + /** + * Get bootstrap servers from environment variable or MSK cluster + */ + async getBootstrapServers(): Promise { + if (this.bootstrapServers.length > 0) { + return this.bootstrapServers; + } + + try { + // First try to get from environment variable (preferred method) + const envBootstrapServers = process.env.MSK_BOOTSTRAP_SERVERS; + + if (envBootstrapServers && envBootstrapServers !== 'RUNTIME_RESOLVED' && envBootstrapServers !== 'NOT_AVAILABLE') { + this.bootstrapServers = envBootstrapServers.split(',').map(broker => broker.trim()); + + this.logger.info({ + bootstrapServers: this.bootstrapServers, + count: this.bootstrapServers.length, + source: 'environment_variable', + action: 'get_bootstrap_servers', + }, 'Successfully retrieved bootstrap servers from environment'); + + return this.bootstrapServers; + } + + // Fallback to API call (requires VPC endpoint) + this.logger.info({ + clusterArn: this.config.clusterArn, + action: 'get_bootstrap_servers', + }, 'Environment variable not available, fetching bootstrap servers from MSK cluster API'); + + const command = new GetBootstrapBrokersCommand({ + ClusterArn: this.config.clusterArn, + }); + + const response = await this.kafkaClient.send(command); + + if (!response.BootstrapBrokerStringSaslIam) { + throw new Error('No SASL/IAM bootstrap brokers found in MSK cluster response'); + } + + this.bootstrapServers = response.BootstrapBrokerStringSaslIam.split(',').map(broker => broker.trim()); + + this.logger.info({ + bootstrapServers: this.bootstrapServers, + count: this.bootstrapServers.length, + source: 'msk_api', + action: 'get_bootstrap_servers', + }, 'Successfully retrieved bootstrap servers from MSK API'); + + return this.bootstrapServers; + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + clusterArn: this.config.clusterArn, + envBootstrapServers: process.env.MSK_BOOTSTRAP_SERVERS, + action: 'get_bootstrap_servers', + }, 'Failed to get bootstrap servers'); + throw error; + } + } + + /** + * Create SASL configuration for IAM authentication + */ + private async createSaslConfig(): Promise { + return { + mechanism: 'oauthbearer', + oauthBearerProvider: async () => { + try { + const authTokenResponse = await generateAuthToken({ + region: this.config.region, + }); + + return { + value: authTokenResponse.token, + }; + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'generate_auth_token', + }, 'Failed to generate MSK IAM auth token'); + throw error; + } + }, + }; + } + + /** + * Create Kafka client instance with MSK IAM authentication + */ + async createKafkaClient(): Promise { + try { + const bootstrapServers = await this.getBootstrapServers(); + const saslConfig = await this.createSaslConfig(); + + const kafkaConfig: KafkaConfig = { + clientId: this.config.clientId, + brokers: bootstrapServers, + ssl: true, + sasl: saslConfig, + connectionTimeout: 10000, + requestTimeout: 30000, + retry: { + initialRetryTime: 100, + retries: 8, + }, + logLevel: 2, // INFO level + }; + + const kafka = new Kafka(kafkaConfig); + + this.logger.info({ + clientId: this.config.clientId, + brokers: bootstrapServers, + clusterName: this.config.clusterName, + action: 'create_kafka_client', + }, 'Kafka client created successfully'); + + return kafka; + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'create_kafka_client', + }, 'Failed to create Kafka client'); + throw error; + } + } + + /** + * Get configuration details + */ + getConfig(): MskConfig { + return { ...this.config }; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-consumer.ts b/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-consumer.ts new file mode 100644 index 0000000..120f0e9 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-consumer.ts @@ -0,0 +1,309 @@ +/** + * Multi-Topic Consumer + * Handles message consumption from multiple topics with aggregated metrics + */ + +import { Consumer, EachMessagePayload } from 'kafkajs'; +import pino from 'pino'; +import { WorkbenchServiceConfig } from '../services/workbench-config-service'; +import { MetricsService } from '../services/metrics-service'; + +export interface ConsumedMessage { + topic: string; + partition: number; + offset: string; + key: string | null; + value: string | null; + headers: Record; + timestamp: string; +} + +export interface MultiTopicConsumerStats { + totalMessagesReceived: number; + messagesPerTopic: Map; + messagesPerPartition: Map; + isRunning: boolean; + consumerGroupId: string; +} + +export class MultiTopicConsumer { + private logger: pino.Logger; + private consumer: Consumer; + private config: WorkbenchServiceConfig; + private metricsService: MetricsService | undefined; + + // State + private isRunning = false; + + // Statistics + private totalMessagesReceived = 0; + private messagesPerTopic: Map = new Map(); + private messagesPerPartition: Map = new Map(); + + constructor( + consumer: Consumer, + config: WorkbenchServiceConfig, + logger: pino.Logger, + metricsService?: MetricsService + ) { + this.consumer = consumer; + this.config = config; + this.metricsService = metricsService; + this.logger = logger.child({ + component: 'MultiTopicConsumer', + serviceIndex: config.serviceIndex, + serviceName: config.serviceName, + consumerGroupId: `${config.serviceName}-consumer-group`, + }); + + // Initialize per-topic counters + this.config.topics.forEach(topic => { + this.messagesPerTopic.set(topic, 0); + }); + + this.logger.info({ + topics: this.config.topics, + topicCount: this.config.topics.length, + consumerGroupId: `${this.config.serviceName}-consumer-group`, + action: 'consumer_initialized', + }, 'Multi-topic consumer initialized'); + } + + /** + * Start consuming messages from all assigned topics + */ + async start(): Promise { + if (this.isRunning) { + this.logger.warn({ action: 'start_already_running' }, 'Consumer is already running'); + return; + } + + try { + await this.consumer.connect(); + + // Subscribe to all topics assigned to this service + await this.consumer.subscribe({ + topics: this.config.topics, + fromBeginning: false, // Start from latest messages + }); + + this.isRunning = true; + + this.logger.info({ + topics: this.config.topics, + consumerGroupId: `${this.config.serviceName}-consumer-group`, + action: 'consumer_start', + }, 'Starting multi-topic message consumption'); + + // Start consuming messages + await this.consumer.run({ + partitionsConsumedConcurrently: this.config.topics.length * this.config.partitionsPerTopic, + eachMessage: async (payload: EachMessagePayload) => { + await this.handleMessage(payload); + }, + }); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'consumer_start_error', + }, 'Failed to start consumer'); + throw error; + } + } + + /** + * Stop message consumption + */ + async stop(): Promise { + if (!this.isRunning) { + this.logger.warn({ action: 'stop_not_running' }, 'Consumer is not running'); + return; + } + + this.logger.info({ action: 'consumer_stop' }, 'Stopping multi-topic consumer'); + + this.isRunning = false; + + try { + await this.consumer.disconnect(); + + this.logger.info({ + totalMessagesReceived: this.totalMessagesReceived, + messagesPerTopic: Object.fromEntries(this.messagesPerTopic), + action: 'consumer_stopped', + }, 'Multi-topic consumer stopped'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'consumer_stop_error', + }, 'Error stopping consumer'); + } + } + + /** + * Handle individual message from any topic + */ + private async handleMessage(payload: EachMessagePayload): Promise { + const { topic, partition, message } = payload; + + try { + // Update statistics + this.totalMessagesReceived++; + + const topicCount = this.messagesPerTopic.get(topic) || 0; + this.messagesPerTopic.set(topic, topicCount + 1); + + const partitionKey = `${topic}-${partition}`; + const partitionCount = this.messagesPerPartition.get(partitionKey) || 0; + this.messagesPerPartition.set(partitionKey, partitionCount + 1); + + // Update metrics service + if (this.metricsService) { + this.metricsService.incrementMessagesReceived(1); + } + + // Convert headers to string record + const headers: Record = {}; + if (message.headers) { + Object.entries(message.headers).forEach(([key, value]) => { + headers[key] = value?.toString() || ''; + }); + } + + const consumedMessage: ConsumedMessage = { + topic, + partition, + offset: message.offset, + key: message.key?.toString() || null, + value: message.value?.toString() || null, + headers, + timestamp: message.timestamp || new Date().toISOString(), + }; + + // Calculate and record latency if we have timestamp information + if (this.metricsService && consumedMessage.value) { + try { + const messageData = JSON.parse(consumedMessage.value); + if (messageData.timestamp && typeof messageData.timestamp === 'number') { + const currentTime = Date.now(); + const latencyMs = currentTime - messageData.timestamp; + + // Only record positive latencies (in case of clock skew) + if (latencyMs >= 0 && latencyMs < 60000) { // Max 60 seconds to filter out invalid timestamps + this.metricsService.recordLatency(latencyMs); + } + } + } catch { + // Ignore JSON parsing errors for latency calculation + } + } + + // Process the message + await this.processMessage(consumedMessage); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + topic, + partition, + offset: message.offset, + action: 'handle_message_error', + }, 'Failed to handle consumed message'); + + // Don't throw error to avoid stopping the consumer + } + } + + /** + * Process consumed message (can be overridden for custom processing) + */ + private async processMessage(message: ConsumedMessage): Promise { + // For performance testing, we just log occasionally + if (this.totalMessagesReceived % 1000 === 0) { + this.logger.debug({ + topic: message.topic, + partition: message.partition, + offset: message.offset, + totalReceived: this.totalMessagesReceived, + action: 'message_processed', + }, 'Message processed (periodic log)'); + } + + // Simulate minimal processing time + // In a real application, this would contain business logic + await Promise.resolve(); + } + + /** + * Get current consumer statistics + */ + getStats(): MultiTopicConsumerStats { + return { + totalMessagesReceived: this.totalMessagesReceived, + messagesPerTopic: new Map(this.messagesPerTopic), + messagesPerPartition: new Map(this.messagesPerPartition), + isRunning: this.isRunning, + consumerGroupId: `${this.config.serviceName}-consumer-group`, + }; + } + + /** + * Get consumer status for health checks + */ + getStatus(): Record { + return { + isRunning: this.isRunning, + totalMessagesReceived: this.totalMessagesReceived, + messagesPerTopic: Object.fromEntries(this.messagesPerTopic), + messagesPerPartition: Object.fromEntries(this.messagesPerPartition), + subscribedTopics: this.config.topics, + topicCount: this.config.topics.length, + consumerGroupId: `${this.config.serviceName}-consumer-group`, + serviceIndex: this.config.serviceIndex, + serviceName: this.config.serviceName, + }; + } + + /** + * Get partition distribution statistics + */ + getPartitionStats(): Record { + const partitionStats: Record = {}; + + this.config.topics.forEach(topic => { + const topicStats: Record = {}; + let topicTotal = 0; + + for (let partition = 0; partition < this.config.partitionsPerTopic; partition++) { + const partitionKey = `${topic}-${partition}`; + const count = this.messagesPerPartition.get(partitionKey) || 0; + topicStats[`partition-${partition}`] = count; + topicTotal += count; + } + + partitionStats[topic] = { + ...topicStats, + total: topicTotal, + }; + }); + + return partitionStats; + } + + /** + * Reset statistics (useful for testing) + */ + resetStats(): void { + this.totalMessagesReceived = 0; + this.messagesPerTopic.clear(); + this.messagesPerPartition.clear(); + + this.config.topics.forEach(topic => { + this.messagesPerTopic.set(topic, 0); + }); + + this.logger.info({ action: 'stats_reset' }, 'Consumer statistics reset'); + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-manager.ts b/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-manager.ts new file mode 100644 index 0000000..8639ccd --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-manager.ts @@ -0,0 +1,273 @@ +/** + * Multi-Topic Manager + * Handles creation and management of multiple Kafka topics + */ + +import { Admin, ITopicConfig } from 'kafkajs'; +import pino from 'pino'; +import { WorkbenchServiceConfig } from '../services/workbench-config-service'; + +export interface TopicCreationResult { + topic: string; + created: boolean; + partitions: number; + error?: string; +} + +export class MultiTopicManager { + private logger: pino.Logger; + private admin: Admin; + private config: WorkbenchServiceConfig; + + constructor(admin: Admin, config: WorkbenchServiceConfig, logger: pino.Logger) { + this.admin = admin; + this.config = config; + this.logger = logger.child({ component: 'MultiTopicManager' }); + } + + /** + * Ensure all topics exist with correct partition counts + */ + async ensureTopicsExist(): Promise { + this.logger.info({ + topics: this.config.topics, + partitionsPerTopic: this.config.partitionsPerTopic, + action: 'ensure_topics_start', + }, 'Starting topic creation/verification process'); + + const results: TopicCreationResult[] = []; + + try { + // Connect to admin client + await this.admin.connect(); + + // Get existing topics + const existingTopics = await this.admin.listTopics(); + this.logger.debug({ + existingTopics: existingTopics.length, + action: 'list_topics', + }, 'Retrieved existing topics list'); + + // Get detailed metadata for existing topics + const existingMetadata = await this.admin.fetchTopicMetadata({ + topics: this.config.topics.filter(topic => existingTopics.includes(topic)), + }); + + // Process each topic + for (const topic of this.config.topics) { + const result = await this.processTopicCreation( + topic, + existingTopics, + existingMetadata.topics + ); + results.push(result); + } + + // Log summary + const created = results.filter(r => r.created).length; + const verified = results.filter(r => !r.created && !r.error).length; + const errors = results.filter(r => r.error).length; + + this.logger.info({ + totalTopics: results.length, + created, + verified, + errors, + results, + action: 'ensure_topics_complete', + }, 'Topic creation/verification process completed'); + + return results; + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + topics: this.config.topics, + action: 'ensure_topics_error', + }, 'Failed to ensure topics exist'); + + // Return error results for all topics + return this.config.topics.map(topic => ({ + topic, + created: false, + partitions: 0, + error: error instanceof Error ? error.message : 'Unknown error', + })); + + } finally { + try { + await this.admin.disconnect(); + } catch (disconnectError) { + this.logger.warn({ + error: disconnectError instanceof Error ? disconnectError.message : 'Unknown error', + action: 'admin_disconnect_error', + }, 'Error disconnecting admin client'); + } + } + } + + /** + * Process creation/verification for a single topic + */ + private async processTopicCreation( + topic: string, + existingTopics: string[], + existingMetadata: any[] + ): Promise { + try { + if (existingTopics.includes(topic)) { + // Topic exists, verify partition count + return await this.verifyExistingTopic(topic, existingMetadata); + } else { + // Topic doesn't exist, create it + return await this.createNewTopic(topic); + } + } catch (error) { + this.logger.error({ + topic, + error: error instanceof Error ? error.message : 'Unknown error', + action: 'process_topic_error', + }, 'Error processing topic'); + + return { + topic, + created: false, + partitions: 0, + error: error instanceof Error ? error.message : 'Unknown error', + }; + } + } + + /** + * Verify existing topic has correct partition count + */ + private async verifyExistingTopic( + topic: string, + existingMetadata: any[] + ): Promise { + const topicMetadata = existingMetadata.find(t => t.name === topic); + + if (!topicMetadata) { + this.logger.warn({ + topic, + action: 'topic_metadata_missing', + }, 'Topic exists but metadata not found'); + + return { + topic, + created: false, + partitions: 0, + error: 'Topic metadata not found', + }; + } + + const actualPartitions = topicMetadata.partitions.length; + const expectedPartitions = this.config.partitionsPerTopic; + + if (actualPartitions !== expectedPartitions) { + this.logger.warn({ + topic, + actualPartitions, + expectedPartitions, + action: 'partition_count_mismatch', + }, 'Topic exists but partition count does not match configuration'); + + return { + topic, + created: false, + partitions: actualPartitions, + error: `Partition count mismatch: expected ${expectedPartitions}, found ${actualPartitions}`, + }; + } + + this.logger.debug({ + topic, + partitions: actualPartitions, + action: 'topic_verified', + }, 'Topic verified successfully'); + + return { + topic, + created: false, + partitions: actualPartitions, + }; + } + + /** + * Create a new topic + */ + private async createNewTopic(topic: string): Promise { + const topicConfig: ITopicConfig = { + topic, + numPartitions: this.config.partitionsPerTopic, + replicationFactor: 3, // MSK Express default + configEntries: [ + { + name: 'retention.ms', + value: '86400000', // 24 hours + }, + { + name: 'compression.type', + value: 'gzip', + }, + ], + }; + + this.logger.info({ + topic, + partitions: this.config.partitionsPerTopic, + replicationFactor: 3, + action: 'create_topic_start', + }, 'Creating new topic'); + + await this.admin.createTopics({ + topics: [topicConfig], + waitForLeaders: true, + timeout: 30000, // 30 seconds + }); + + this.logger.info({ + topic, + partitions: this.config.partitionsPerTopic, + action: 'create_topic_success', + }, 'Topic created successfully'); + + return { + topic, + created: true, + partitions: this.config.partitionsPerTopic, + }; + } + + /** + * Get topic creation summary + */ + getTopicSummary(): Record { + return { + serviceIndex: this.config.serviceIndex, + serviceName: this.config.serviceName, + topics: this.config.topics, + partitionsPerTopic: this.config.partitionsPerTopic, + totalTopics: this.config.topics.length, + totalPartitions: this.config.topics.length * this.config.partitionsPerTopic, + }; + } + + /** + * Validate topic creation results + */ + validateResults(results: TopicCreationResult[]): void { + const errors = results.filter(r => r.error); + + if (errors.length > 0) { + const errorMessages = errors.map(e => `${e.topic}: ${e.error}`).join(', '); + throw new Error(`Topic creation/verification failed for: ${errorMessages}`); + } + + this.logger.info({ + totalTopics: results.length, + successfulTopics: results.filter(r => !r.error).length, + action: 'topic_validation_success', + }, 'All topics validated successfully'); + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-producer.ts b/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-producer.ts new file mode 100644 index 0000000..6812f69 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/kafka/multi-topic-producer.ts @@ -0,0 +1,338 @@ +/** + * Multi-Topic Producer + * Handles message production across multiple topics with round-robin selection + */ + +import { Producer, ProducerRecord, RecordMetadata } from 'kafkajs'; +import { randomBytes } from 'crypto'; +import pino from 'pino'; +import { WorkbenchServiceConfig } from '../services/workbench-config-service'; +import { MetricsService } from '../services/metrics-service'; + +export interface ProducerMessage { + key?: string; + value: any; + headers?: Record; +} + +export interface MultiTopicProducerStats { + totalMessagesSent: number; + messagesPerTopic: Map; + currentTopicIndex: number; + isRunning: boolean; +} + +export class MultiTopicProducer { + private logger: pino.Logger; + private producer: Producer; + private config: WorkbenchServiceConfig; + private metricsService: MetricsService | undefined; + + // Round-robin state + private currentTopicIndex = 0; + private isRunning = false; + private productionInterval: ReturnType | undefined; + + // Statistics + private totalMessagesSent = 0; + private messagesPerTopic: Map = new Map(); + + constructor( + producer: Producer, + config: WorkbenchServiceConfig, + logger: pino.Logger, + metricsService?: MetricsService + ) { + this.producer = producer; + this.config = config; + this.metricsService = metricsService; + this.logger = logger.child({ + component: 'MultiTopicProducer', + serviceIndex: config.serviceIndex, + serviceName: config.serviceName, + }); + + // Initialize per-topic counters + this.config.topics.forEach(topic => { + this.messagesPerTopic.set(topic, 0); + }); + + this.logger.info({ + topics: this.config.topics, + topicCount: this.config.topics.length, + action: 'producer_initialized', + }, 'Multi-topic producer initialized'); + } + + /** + * Start continuous message production + */ + async start(): Promise { + if (this.isRunning) { + this.logger.warn({ action: 'start_already_running' }, 'Producer is already running'); + return; + } + + try { + await this.producer.connect(); + this.isRunning = true; + + this.logger.info({ + topics: this.config.topics, + action: 'producer_start', + }, 'Starting multi-topic message production'); + + // Start continuous production + this.startContinuousProduction(); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'producer_start_error', + }, 'Failed to start producer'); + throw error; + } + } + + /** + * Stop message production + */ + async stop(): Promise { + if (!this.isRunning) { + this.logger.warn({ action: 'stop_not_running' }, 'Producer is not running'); + return; + } + + this.logger.info({ action: 'producer_stop' }, 'Stopping multi-topic producer'); + + this.isRunning = false; + + // Clear production interval + if (this.productionInterval) { + clearInterval(this.productionInterval); + this.productionInterval = undefined; + } + + try { + await this.producer.disconnect(); + + this.logger.info({ + totalMessagesSent: this.totalMessagesSent, + messagesPerTopic: Object.fromEntries(this.messagesPerTopic), + action: 'producer_stopped', + }, 'Multi-topic producer stopped'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'producer_stop_error', + }, 'Error stopping producer'); + } + } + + /** + * Start continuous message production using setImmediate for maximum throughput + */ + private startContinuousProduction(): void { + const produceNext = () => { + if (!this.isRunning) { + return; + } + + // Send message immediately + this.sendMessage() + .then(() => { + // Schedule next message production + setImmediate(produceNext); + }) + .catch((error) => { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'continuous_production_error', + }, 'Error in continuous production'); + + // Continue production after a short delay on error + setTimeout(produceNext, 100); + }); + }; + + // Start the production loop + setImmediate(produceNext); + } + + /** + * Send a single message using round-robin topic selection + */ + async sendMessage(): Promise { + const topic = this.selectNextTopic(); + const message = this.generateMessage(topic); + + const producerRecord: ProducerRecord = { + topic, + messages: [ + { + key: message.key || null, + value: JSON.stringify(message.value), + headers: { + 'content-type': 'application/json', + 'created-at': new Date().toISOString(), + 'service-name': this.config.serviceName, + 'service-index': this.config.serviceIndex.toString(), + 'topic-name': topic, + ...message.headers, + }, + }, + ], + }; + + try { + const metadata = await this.producer.send(producerRecord); + + // Update statistics + this.totalMessagesSent++; + const currentCount = this.messagesPerTopic.get(topic) || 0; + this.messagesPerTopic.set(topic, currentCount + 1); + + // Update metrics service + if (this.metricsService) { + this.metricsService.incrementMessagesSent(1); + } + + return metadata; + + } catch (error) { + this.logger.error({ + topic, + error: error instanceof Error ? error.message : 'Unknown error', + action: 'send_message_error', + }, 'Failed to send message'); + throw error; + } + } + + /** + * Select next topic using round-robin algorithm + */ + private selectNextTopic(): string { + if (this.config.topics.length === 0) { + throw new Error('No topics configured for producer'); + } + + // Ensure currentTopicIndex is within bounds + if (this.currentTopicIndex >= this.config.topics.length) { + this.currentTopicIndex = 0; + } + + const topic = this.config.topics[this.currentTopicIndex]!; // Non-null assertion since we checked length + this.currentTopicIndex = (this.currentTopicIndex + 1) % this.config.topics.length; + return topic; + } + + /** + * Generate message payload for a specific topic + */ + private generateMessage(topic: string): ProducerMessage { + const messageId = `${this.config.serviceName}-${Date.now()}-${randomBytes(4).toString('hex')}`; + + // Create base message structure + const baseMessage = { + messageId, + timestamp: Date.now(), // For latency calculation + serviceIndex: this.config.serviceIndex, + serviceName: this.config.serviceName, + topic, + sequenceNumber: this.totalMessagesSent + 1, + messageSizeBytes: this.config.messageSizeBytes, + }; + + // Calculate how much space we need for padding + const baseMessageJson = JSON.stringify(baseMessage); + const baseSize = Buffer.byteLength(baseMessageJson, 'utf8'); + const targetSize = this.config.messageSizeBytes; + + // If base message is already larger than target, just return it + if (baseSize >= targetSize) { + this.logger.warn({ + baseSize, + targetSize, + messageId, + action: 'message_size_warning' + }, 'Base message size exceeds target size'); + + return { + key: messageId, + value: baseMessage, + headers: { + 'message-type': 'performance-test', + 'topic-target': topic, + 'actual-size': baseSize.toString(), + }, + }; + } + + // Calculate padding needed + const paddingNeeded = targetSize - baseSize - 20; // Reserve some space for JSON structure + const padding = paddingNeeded > 0 ? 'x'.repeat(Math.max(0, paddingNeeded)) : ''; + + const finalMessage = { + ...baseMessage, + payload: { + testData: `Message for topic ${topic}`, + randomValue: randomBytes(4).readUInt32BE(0) / 0xFFFFFFFF, + generatedAt: new Date().toISOString(), + padding: padding, // This will pad the message to the desired size + }, + }; + + return { + key: messageId, + value: finalMessage, + headers: { + 'message-type': 'performance-test', + 'topic-target': topic, + 'target-size': targetSize.toString(), + }, + }; + } + + /** + * Get current producer statistics + */ + getStats(): MultiTopicProducerStats { + return { + totalMessagesSent: this.totalMessagesSent, + messagesPerTopic: new Map(this.messagesPerTopic), + currentTopicIndex: this.currentTopicIndex, + isRunning: this.isRunning, + }; + } + + /** + * Get producer status for health checks + */ + getStatus(): Record { + return { + isRunning: this.isRunning, + totalMessagesSent: this.totalMessagesSent, + messagesPerTopic: Object.fromEntries(this.messagesPerTopic), + currentTopic: this.config.topics.length > 0 ? this.config.topics[this.currentTopicIndex] : 'no-topics', + topicCount: this.config.topics.length, + serviceIndex: this.config.serviceIndex, + serviceName: this.config.serviceName, + }; + } + + /** + * Reset statistics (useful for testing) + */ + resetStats(): void { + this.totalMessagesSent = 0; + this.messagesPerTopic.clear(); + this.config.topics.forEach(topic => { + this.messagesPerTopic.set(topic, 0); + }); + this.currentTopicIndex = 0; + + this.logger.info({ action: 'stats_reset' }, 'Producer statistics reset'); + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/services/config-service.ts b/MskWorkloadSimulationWorkbench/app/src/services/config-service.ts new file mode 100644 index 0000000..a3e2ef2 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/services/config-service.ts @@ -0,0 +1,38 @@ +import { MskConfig } from '../kafka/kafka-config'; + +export class ConfigService { + // Essential application constants + static readonly APP_NAME = 'msk-express-app'; + static readonly DEFAULT_PORT = 3000; + static readonly DEFAULT_REGION = 'us-east-1'; + static readonly DEFAULT_TOPIC_NAME = 'testTopic'; + + static getPort(): number { + return parseInt(process.env.PORT || String(ConfigService.DEFAULT_PORT), 10); + } + + static getRegion(): string { + return process.env.AWS_REGION || ConfigService.DEFAULT_REGION; + } + + static getMskConfig(): MskConfig | null { + const clusterArn = process.env.MSK_CLUSTER_ARN; + const clusterName = process.env.MSK_CLUSTER_NAME; + + if (!clusterArn || !clusterName) { + return null; + } + + return { + clusterArn, + clusterName, + region: ConfigService.getRegion(), + topicName: process.env.MSK_TOPIC_NAME || ConfigService.DEFAULT_TOPIC_NAME, + clientId: `${ConfigService.APP_NAME}-client`, + }; + } + + static getRequiredMskEnvVars(): string[] { + return ['MSK_CLUSTER_ARN', 'MSK_CLUSTER_NAME']; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/services/health-service.ts b/MskWorkloadSimulationWorkbench/app/src/services/health-service.ts new file mode 100644 index 0000000..d059f6c --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/services/health-service.ts @@ -0,0 +1,82 @@ +import { ConfigService } from './config-service'; +import { Logger } from 'pino'; + +export class HealthService { + constructor( + private _logger: Logger, + private _workbenchApp?: any + ) {} + + async checkHealth() { + try { + let kafkaStatus = null; + let isHealthy = true; + + // Check workbench application status if available + if (this._workbenchApp) { + const workbenchReady = this._workbenchApp.isReady(); + const config = this._workbenchApp.getConfig(); + + kafkaStatus = { + workbench: { + ready: workbenchReady, + serviceIndex: config.getServiceIndex(), + serviceName: config.getServiceName(), + topics: config.getTopics(), + topicCount: config.getTopicCount(), + partitionsPerTopic: config.getPartitionsPerTopic(), + } + }; + + isHealthy = workbenchReady; + } + + this._logger.info({ + endpoint: '/health', + status: isHealthy ? 'healthy' : 'unhealthy', + kafkaStatus, + timestamp: new Date().toISOString(), + }, 'Health check completed'); + + return { + status: isHealthy ? 'healthy' : 'unhealthy', + timestamp: new Date().toISOString(), + service: ConfigService.APP_NAME, + uptime: process.uptime(), + kafka: kafkaStatus, + }; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Unknown error'; + + this._logger.error({ + endpoint: '/health', + status: 'unhealthy', + error: errorMessage, + timestamp: new Date().toISOString(), + }, 'Health check failed'); + + return { + status: 'unhealthy', + timestamp: new Date().toISOString(), + service: ConfigService.APP_NAME, + kafka: null, + error: errorMessage, + }; + } + } + + checkReadiness() { + return { + status: 'ready', + timestamp: new Date().toISOString(), + service: ConfigService.APP_NAME, + }; + } + + /** + * Set workbench application reference for health checks + */ + setWorkbenchApp(workbenchApp: any): void { + this._workbenchApp = workbenchApp; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/services/metrics-service.ts b/MskWorkloadSimulationWorkbench/app/src/services/metrics-service.ts new file mode 100644 index 0000000..530db63 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/services/metrics-service.ts @@ -0,0 +1,436 @@ +/** + * CloudWatch Metrics Service + * Tracks and publishes Kafka message throughput metrics to CloudWatch + */ + +import { CloudWatchClient, PutMetricDataCommand, MetricDatum } from '@aws-sdk/client-cloudwatch'; +import pino from 'pino'; + +export interface MetricsConfig { + namespace: string; + region?: string; + flushIntervalMs: number; + serviceName?: string; + serviceIndex?: number; +} + +export class MetricsService { + private logger: pino.Logger; + private cloudWatch: CloudWatchClient; + private config: MetricsConfig; + + // Counters for tracking messages per second + private messagesSentCount = 0; + private messagesReceivedCount = 0; + + // Latency tracking + private latencyMeasurements: number[] = []; + private maxLatencyMeasurements = 1000; // Keep last 1000 measurements + + // Timers for periodic metric publishing + private metricsTimer: ReturnType | null = null; + private isRunning = false; + + constructor(config: MetricsConfig, logger: pino.Logger) { + this.config = config; + this.logger = logger.child({ component: 'MetricsService' }); + + this.cloudWatch = new CloudWatchClient({ + region: config.region || process.env.AWS_REGION || 'us-east-1', + }); + + this.logger.info({ + namespace: config.namespace, + region: config.region, + flushInterval: config.flushIntervalMs, + action: 'initialize', + }, 'CloudWatch metrics service initialized'); + } + + /** + * Start metrics collection and publishing + */ + start(): void { + if (this.isRunning) { + this.logger.warn({ action: 'start' }, 'Metrics service is already running'); + return; + } + + this.logger.info({ + flushInterval: this.config.flushIntervalMs, + action: 'start' + }, 'Starting metrics collection'); + + // Reset counters + this.messagesSentCount = 0; + this.messagesReceivedCount = 0; + this.latencyMeasurements = []; + + // Start periodic metrics publishing + this.metricsTimer = setInterval(() => { + this.publishMetrics(); + }, this.config.flushIntervalMs); + + this.isRunning = true; + + this.logger.info({ action: 'start' }, 'Metrics collection started'); + } + + /** + * Stop metrics collection + */ + stop(): void { + if (!this.isRunning) { + this.logger.warn({ action: 'stop' }, 'Metrics service is not running'); + return; + } + + this.logger.info({ action: 'stop' }, 'Stopping metrics collection'); + + if (this.metricsTimer) { + clearInterval(this.metricsTimer); + this.metricsTimer = null; + } + + // Publish final metrics before stopping + this.publishMetrics(); + + this.isRunning = false; + + this.logger.info({ action: 'stop' }, 'Metrics collection stopped'); + } + + /** + * Increment messages sent counter + */ + incrementMessagesSent(count = 1): void { + this.messagesSentCount += count; + } + + /** + * Increment messages received counter + */ + incrementMessagesReceived(count = 1): void { + this.messagesReceivedCount += count; + } + + /** + * Record message latency (time from creation to consumption) + */ + recordLatency(latencyMs: number): void { + // Add new latency measurement + this.latencyMeasurements.push(latencyMs); + + // Keep only the most recent measurements to prevent memory growth + if (this.latencyMeasurements.length > this.maxLatencyMeasurements) { + this.latencyMeasurements = this.latencyMeasurements.slice(-this.maxLatencyMeasurements); + } + } + + /** + * Get standard dimensions for metrics + */ + private getStandardDimensions(): Array<{ Name: string; Value: string }> { + const dimensions = [ + { + Name: 'Service', + Value: this.config.serviceName || this.config.serviceName || 'MSKExpressApp', + }, + ]; + + // Add service-specific dimensions if available + if (this.config.serviceName) { + dimensions.push({ + Name: 'ServiceName', + Value: this.config.serviceName, + }); + } + + if (this.config.serviceIndex !== undefined) { + dimensions.push({ + Name: 'ServiceIndex', + Value: this.config.serviceIndex.toString(), + }); + } + + return dimensions; + } + + /** + * Get environment-specific dimensions + */ + private getEnvironmentDimensions(): Array<{ Name: string; Value: string }> { + return [ + ...this.getStandardDimensions(), + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ]; + } + private async publishMetrics(): Promise { + try { + const currentTime = new Date(); + const intervalSeconds = this.config.flushIntervalMs / 1000; + + // Calculate messages per second + const messagesSentPerSecond = this.messagesSentCount / intervalSeconds; + const messagesReceivedPerSecond = this.messagesReceivedCount / intervalSeconds; + + // Calculate latency statistics + let avgLatency = 0; + let minLatency = 0; + let maxLatency = 0; + let p95Latency = 0; + let p99Latency = 0; + + if (this.latencyMeasurements.length > 0) { + // Sort latencies for percentile calculations + const sortedLatencies = [...this.latencyMeasurements].sort((a, b) => a - b); + + // Calculate statistics + avgLatency = sortedLatencies.reduce((sum, lat) => sum + lat, 0) / sortedLatencies.length; + minLatency = sortedLatencies[0] ?? 0; + maxLatency = sortedLatencies[sortedLatencies.length - 1] ?? 0; + + // Calculate percentiles + const p95Index = Math.floor(sortedLatencies.length * 0.95); + const p99Index = Math.floor(sortedLatencies.length * 0.99); + p95Latency = sortedLatencies[Math.min(p95Index, sortedLatencies.length - 1)] ?? 0; + p99Latency = sortedLatencies[Math.min(p99Index, sortedLatencies.length - 1)] ?? 0; + } + + const metricData: MetricDatum[] = [ + { + MetricName: 'MessagesSentPerSecond', + Value: messagesSentPerSecond, + Unit: 'Count/Second', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'MessagesReceivedPerSecond', + Value: messagesReceivedPerSecond, + Unit: 'Count/Second', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'TotalMessagesSent', + Value: this.messagesSentCount, + Unit: 'Count', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + ], + }, + { + MetricName: 'TotalMessagesReceived', + Value: this.messagesReceivedCount, + Unit: 'Count', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + ], + }, + ]; + + // Add latency metrics only if we have measurements + if (this.latencyMeasurements.length > 0) { + metricData.push( + { + MetricName: 'MessageLatencyAverage', + Value: avgLatency, + Unit: 'Milliseconds', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'MessageLatencyMin', + Value: minLatency, + Unit: 'Milliseconds', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'MessageLatencyMax', + Value: maxLatency, + Unit: 'Milliseconds', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'MessageLatencyP95', + Value: p95Latency, + Unit: 'Milliseconds', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'MessageLatencyP99', + Value: p99Latency, + Unit: 'Milliseconds', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + } + ); + } + + // Add instance count metrics (each task reports 1 active producer and 1 active consumer) + metricData.push( + { + MetricName: 'ActiveProducers', + Value: 1, // Each task has 1 producer + Unit: 'Count', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + }, + { + MetricName: 'ActiveConsumers', + Value: 1, // Each task has 1 consumer + Unit: 'Count', + Timestamp: currentTime, + Dimensions: [ + { + Name: 'Service', + Value: this.config.serviceName || 'MSKExpressApp', + }, + { + Name: 'Environment', + Value: process.env.NODE_ENV || 'development', + }, + ], + } + ); + + const command = new PutMetricDataCommand({ + Namespace: this.config.namespace, + MetricData: metricData, + }); + + await this.cloudWatch.send(command); + + this.logger.info({ + messagesSentPerSecond: messagesSentPerSecond.toFixed(2), + messagesReceivedPerSecond: messagesReceivedPerSecond.toFixed(2), + totalSent: this.messagesSentCount, + totalReceived: this.messagesReceivedCount, + avgLatency: avgLatency.toFixed(2), + p95Latency: p95Latency.toFixed(2), + p99Latency: p99Latency.toFixed(2), + latencySamples: this.latencyMeasurements.length, + intervalSeconds, + action: 'publish_metrics', + }, 'Metrics published to CloudWatch'); + + // Reset counters for next interval + this.messagesSentCount = 0; + this.messagesReceivedCount = 0; + this.latencyMeasurements = []; // Reset latency measurements + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'publish_metrics', + }, 'Failed to publish metrics to CloudWatch'); + } + } + /** + * Get current metrics status + */ + getStatus(): { + isRunning: boolean; + messagesSentCount: number; + messagesReceivedCount: number; + latencySamples: number; + namespace: string; + flushIntervalMs: number; + } { + return { + isRunning: this.isRunning, + messagesSentCount: this.messagesSentCount, + messagesReceivedCount: this.messagesReceivedCount, + latencySamples: this.latencyMeasurements.length, + namespace: this.config.namespace, + flushIntervalMs: this.config.flushIntervalMs, + }; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/services/routes-service.ts b/MskWorkloadSimulationWorkbench/app/src/services/routes-service.ts new file mode 100644 index 0000000..88a24e5 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/services/routes-service.ts @@ -0,0 +1,53 @@ +import { Router, Request, Response } from 'express'; +import { Logger } from 'pino'; +import { HealthService } from './health-service'; + +export class RoutesService { + private router: Router; + + constructor( + private _logger: Logger, + private _healthService: HealthService + ) { + this.router = Router(); + this.setupRoutes(); + } + + private setupRoutes(): void { + // Health check endpoint + this.router.get('/health', async (req: Request, res: Response) => { + try { + const healthResult = await this._healthService.checkHealth(); + + if (healthResult.status === 'healthy') { + res.status(200).json(healthResult); + } else { + res.status(503).json(healthResult); + } + } catch (error) { + this._logger.error({ + endpoint: '/health', + error: error instanceof Error ? error.message : 'Unknown error', + timestamp: new Date().toISOString(), + }, 'Health check endpoint error'); + + res.status(503).json({ + status: 'unhealthy', + timestamp: new Date().toISOString(), + service: 'msk-express-app', + error: error instanceof Error ? error.message : 'Unknown error', + }); + } + }); + + // Readiness check endpoint + this.router.get('/ready', (req: Request, res: Response) => { + const readinessResult = this._healthService.checkReadiness(); + res.status(200).json(readinessResult); + }); + } + + getRouter(): Router { + return this.router; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/services/workbench-application-service.ts b/MskWorkloadSimulationWorkbench/app/src/services/workbench-application-service.ts new file mode 100644 index 0000000..4755566 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/services/workbench-application-service.ts @@ -0,0 +1,418 @@ +/** + * Workbench Application Service + * Main orchestrator for multi-topic Kafka performance testing workbench + */ + +import express, { Application } from 'express'; +import { Server } from 'http'; +import pino from 'pino'; +import { Kafka } from 'kafkajs'; +import { WorkbenchConfigService } from './workbench-config-service'; +import { MultiTopicManager } from '../kafka/multi-topic-manager'; +import { MultiTopicProducer } from '../kafka/multi-topic-producer'; +import { MultiTopicConsumer } from '../kafka/multi-topic-consumer'; +import { MetricsService } from './metrics-service'; +import { HealthService } from './health-service'; +import { RoutesService } from './routes-service'; +import { ConfigService } from './config-service'; +import { KafkaConfigManager } from '../kafka/kafka-config'; + +export class WorkbenchApplicationService { + private app: Application; + private server: Server | null = null; + private logger: pino.Logger; + + // Configuration + private workbenchConfig: WorkbenchConfigService; + + // Kafka components + private kafka: Kafka | null = null; + private topicManager: MultiTopicManager | null = null; + private producer: MultiTopicProducer | null = null; + private consumer: MultiTopicConsumer | null = null; + + // Services + private metricsService: MetricsService | null = null; + private healthService!: HealthService; + private routesService!: RoutesService; + + // State + private isInitialized = false; + private isRunning = false; + + constructor() { + // Setup logger + this.logger = pino({ + level: process.env.LOG_LEVEL || 'info', + name: 'WorkbenchApp', + }); + + this.app = express(); + + try { + // Parse workbench configuration from environment + this.workbenchConfig = new WorkbenchConfigService(this.logger); + + this.logger.info({ + config: this.workbenchConfig.getConfigSummary(), + action: 'workbench_config_loaded', + }, 'Workbench configuration loaded successfully'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'workbench_config_error', + }, 'Failed to load workbench configuration'); + throw error; + } + + // Initialize services + this.initializeServices(); + this.setupRoutes(); + this.setupGracefulShutdown(); + } + + /** + * Initialize all services + */ + private initializeServices(): void { + // Initialize metrics service + this.metricsService = new MetricsService( + { + namespace: 'MSKExpress/Kafka', + flushIntervalMs: 5000, + region: process.env.AWS_REGION || 'us-east-1', + serviceName: this.workbenchConfig.getServiceName(), + serviceIndex: this.workbenchConfig.getServiceIndex(), + }, + this.logger + ); + + // Initialize health service + this.healthService = new HealthService(this.logger); + + // Set workbench app reference for health checks + this.healthService.setWorkbenchApp(this); + + // Initialize routes service + this.routesService = new RoutesService(this.logger, this.healthService); + } + + /** + * Initialize Kafka components + */ + private async initializeKafkaComponents(): Promise { + try { + // Get MSK configuration + const mskConfig = ConfigService.getMskConfig(); + if (!mskConfig) { + throw new Error('MSK configuration not found'); + } + + this.logger.info({ + clusterArn: mskConfig.clusterArn, + clusterName: mskConfig.clusterName, + action: 'kafka_init_start', + }, 'Initializing Kafka components'); + + // Create Kafka client + const kafkaConfigManager = new KafkaConfigManager(mskConfig, this.logger); + this.kafka = await kafkaConfigManager.createKafkaClient(); + + // Initialize topic manager + const admin = this.kafka.admin(); + this.topicManager = new MultiTopicManager( + admin, + this.workbenchConfig.getConfig(), + this.logger + ); + + // Ensure all topics exist + const topicResults = await this.topicManager.ensureTopicsExist(); + this.topicManager.validateResults(topicResults); + + this.logger.info({ + topicResults, + action: 'topics_ensured', + }, 'All topics created/verified successfully'); + + // Initialize producer with moderate optimization + const kafkaProducer = this.kafka.producer({ + maxInFlightRequests: 20, // Increased from 5 to 20 for better throughput + idempotent: true, + transactionTimeout: 30000, + }); + + this.producer = new MultiTopicProducer( + kafkaProducer, + this.workbenchConfig.getConfig(), + this.logger, + this.metricsService || undefined + ); + + // Initialize consumer with stable settings + const kafkaConsumer = this.kafka.consumer({ + groupId: this.workbenchConfig.getConsumerGroupId(), + sessionTimeout: 30000, + rebalanceTimeout: 60000, + heartbeatInterval: 3000, + }); + + this.consumer = new MultiTopicConsumer( + kafkaConsumer, + this.workbenchConfig.getConfig(), + this.logger, + this.metricsService || undefined + ); + + this.isInitialized = true; + + this.logger.info({ + serviceIndex: this.workbenchConfig.getServiceIndex(), + serviceName: this.workbenchConfig.getServiceName(), + topics: this.workbenchConfig.getTopics(), + action: 'kafka_init_complete', + }, 'Kafka components initialized successfully'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'kafka_init_error', + }, 'Failed to initialize Kafka components'); + throw error; + } + } + + /** + * Start all Kafka services + */ + private async startKafkaServices(): Promise { + if (!this.isInitialized || !this.producer || !this.consumer || !this.metricsService) { + throw new Error('Kafka components not initialized'); + } + + try { + this.logger.info({ action: 'kafka_services_start' }, 'Starting Kafka services'); + + // Start metrics service first + this.metricsService.start(); + + // Start producer and consumer in parallel + await Promise.all([ + this.producer.start(), + this.consumer.start(), + ]); + + this.isRunning = true; + + this.logger.info({ + producerStatus: this.producer.getStatus(), + consumerStatus: this.consumer.getStatus(), + metricsStatus: this.metricsService.getStatus(), + action: 'kafka_services_started', + }, 'All Kafka services started successfully'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'kafka_services_start_error', + }, 'Failed to start Kafka services'); + throw error; + } + } + + /** + * Stop all Kafka services + */ + private async stopKafkaServices(): Promise { + if (!this.isRunning) { + this.logger.info({ action: 'kafka_services_stop_skip' }, 'Kafka services not running'); + return; + } + + try { + this.logger.info({ action: 'kafka_services_stop' }, 'Stopping Kafka services'); + + // Stop producer and consumer in parallel + const stopPromises: Promise[] = []; + + if (this.producer) { + stopPromises.push(this.producer.stop()); + } + + if (this.consumer) { + stopPromises.push(this.consumer.stop()); + } + + await Promise.all(stopPromises); + + // Stop metrics service last + if (this.metricsService) { + this.metricsService.stop(); + } + + this.isRunning = false; + + this.logger.info({ action: 'kafka_services_stopped' }, 'All Kafka services stopped'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'kafka_services_stop_error', + }, 'Error stopping Kafka services'); + } + } + + /** + * Setup Express routes + */ + private setupRoutes(): void { + // Add workbench-specific routes + this.app.get('/workbench/status', (req, res) => { + const status = { + service: { + index: this.workbenchConfig.getServiceIndex(), + name: this.workbenchConfig.getServiceName(), + topics: this.workbenchConfig.getTopics(), + partitionsPerTopic: this.workbenchConfig.getPartitionsPerTopic(), + }, + kafka: { + initialized: this.isInitialized, + running: this.isRunning, + producer: this.producer?.getStatus() || null, + consumer: this.consumer?.getStatus() || null, + metrics: this.metricsService?.getStatus() || null, + }, + timestamp: new Date().toISOString(), + }; + + res.json(status); + }); + + // Add workbench statistics route + this.app.get('/workbench/stats', (req, res) => { + const stats = { + producer: this.producer?.getStats() || null, + consumer: this.consumer?.getStats() || null, + consumerPartitions: this.consumer?.getPartitionStats() || null, + topicManager: this.topicManager?.getTopicSummary() || null, + timestamp: new Date().toISOString(), + }; + + res.json(stats); + }); + + // Use existing routes service for health checks + this.app.use('/', this.routesService.getRouter()); + } + + /** + * Setup graceful shutdown + */ + private setupGracefulShutdown(): void { + const shutdown = async (signal: string) => { + this.logger.info({ signal }, 'Received shutdown signal, starting graceful shutdown'); + + try { + // Stop accepting new requests + if (this.server) { + this.server.close(() => { + this.logger.info('HTTP server closed'); + }); + } + + // Stop Kafka services + await this.stopKafkaServices(); + + this.logger.info('Graceful shutdown completed'); + process.exit(0); + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + }, 'Error during graceful shutdown'); + process.exit(1); + } + }; + + // Handle shutdown signals + process.on('SIGTERM', () => shutdown('SIGTERM')); + process.on('SIGINT', () => shutdown('SIGINT')); + + // Handle uncaught exceptions + process.on('uncaughtException', (error) => { + this.logger.fatal({ + error: error.message, + stack: error.stack, + }, 'Uncaught exception'); + process.exit(1); + }); + + process.on('unhandledRejection', (reason, promise) => { + this.logger.fatal({ + reason, + promise, + }, 'Unhandled promise rejection'); + process.exit(1); + }); + } + + /** + * Start the workbench application + */ + async start(): Promise { + const port = ConfigService.getPort(); + + this.server = this.app.listen(port, async () => { + this.logger.info({ + service: 'WorkbenchApp', + serviceIndex: this.workbenchConfig.getServiceIndex(), + serviceName: this.workbenchConfig.getServiceName(), + port, + nodeVersion: process.version, + config: this.workbenchConfig.getConfigSummary(), + action: 'startup', + timestamp: new Date().toISOString(), + }, `Workbench application started on port ${port}`); + + try { + // Initialize and start Kafka services + await this.initializeKafkaComponents(); + await this.startKafkaServices(); + + this.logger.info({ + action: 'workbench_ready', + timestamp: new Date().toISOString(), + }, 'Workbench application is ready and processing messages'); + + } catch (error) { + this.logger.error({ + error: error instanceof Error ? error.message : 'Unknown error', + action: 'workbench_startup_error', + }, 'Failed to start workbench services'); + + // Don't exit - let the app run for health checks even if Kafka fails + } + }); + } + + /** + * Get Express application + */ + getApp(): Application { + return this.app; + } + + /** + * Get workbench configuration + */ + getConfig(): WorkbenchConfigService { + return this.workbenchConfig; + } + + /** + * Check if workbench is ready + */ + isReady(): boolean { + return this.isInitialized && this.isRunning; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/src/services/workbench-config-service.ts b/MskWorkloadSimulationWorkbench/app/src/services/workbench-config-service.ts new file mode 100644 index 0000000..4a9e98c --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/src/services/workbench-config-service.ts @@ -0,0 +1,216 @@ +/** + * Workbench Configuration Service + * Parses service-specific configuration from environment variables + */ + +import pino from 'pino'; + +export interface WorkbenchServiceConfig { + serviceIndex: number; + serviceName: string; + topics: string[]; + partitionsPerTopic: number; + messageSizeBytes: number; +} + +export class WorkbenchConfigService { + private logger: pino.Logger; + private config: WorkbenchServiceConfig; + + constructor(logger: pino.Logger) { + this.logger = logger.child({ component: 'WorkbenchConfigService' }); + this.config = this.parseConfiguration(); + + this.logger.info({ + config: this.config, + action: 'configuration_parsed', + }, 'Workbench service configuration loaded'); + } + + /** + * Parse service configuration from environment variables + */ + private parseConfiguration(): WorkbenchServiceConfig { + // Get service-specific environment variables + const serviceIndex = this.getRequiredEnvVar('SERVICE_INDEX'); + const serviceName = this.getRequiredEnvVar('SERVICE_NAME'); + const kafkaTopics = this.getRequiredEnvVar('KAFKA_TOPICS'); + const partitionsPerTopic = this.getRequiredEnvVar('PARTITIONS_PER_TOPIC'); + const messageSizeBytes = this.getRequiredEnvVar('MESSAGE_SIZE_BYTES'); + + // Parse topics from comma-separated string + const topics = kafkaTopics.split(',').map(topic => topic.trim()).filter(topic => topic.length > 0); + + if (topics.length === 0) { + throw new Error('No valid topics found in KAFKA_TOPICS environment variable'); + } + + const config: WorkbenchServiceConfig = { + serviceIndex: parseInt(serviceIndex, 10), + serviceName, + topics, + partitionsPerTopic: parseInt(partitionsPerTopic, 10), + messageSizeBytes: parseInt(messageSizeBytes, 10), + }; + + // Validate configuration + this.validateConfiguration(config); + + return config; + } + + /** + * Get required environment variable or throw error + */ + private getRequiredEnvVar(name: string): string { + const value = process.env[name]; + if (!value) { + throw new Error(`Required environment variable ${name} is not set`); + } + return value; + } + + /** + * Validate parsed configuration + */ + private validateConfiguration(config: WorkbenchServiceConfig): void { + const errors: string[] = []; + + if (isNaN(config.serviceIndex) || config.serviceIndex < 0) { + errors.push('SERVICE_INDEX must be a non-negative integer'); + } + + if (!config.serviceName || config.serviceName.trim().length === 0) { + errors.push('SERVICE_NAME must be a non-empty string'); + } + + if (config.topics.length === 0) { + errors.push('At least one topic must be specified in KAFKA_TOPICS'); + } + + // Validate topic names + config.topics.forEach((topic, index) => { + if (!topic || topic.trim().length === 0) { + errors.push(`Topic at index ${index} is empty or invalid`); + } + + // Basic topic name validation (Kafka naming rules) - ReDoS safe + if (topic.length === 0 || topic.length > 249) { + errors.push(`Topic '${topic}' length must be between 1 and 249 characters`); + } else { + // Check each character individually to avoid ReDoS + const validChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-'; + const hasInvalidChar = [...topic].some(char => !validChars.includes(char)); + if (hasInvalidChar) { + errors.push(`Topic '${topic}' contains invalid characters. Use only alphanumeric, dots, underscores, and hyphens`); + } + } + }); + + if (isNaN(config.partitionsPerTopic) || config.partitionsPerTopic < 1) { + errors.push('PARTITIONS_PER_TOPIC must be a positive integer'); + } + + if (isNaN(config.messageSizeBytes) || config.messageSizeBytes < 1 || config.messageSizeBytes > 1048576) { + errors.push('MESSAGE_SIZE_BYTES must be between 1 and 1,048,576 bytes (1MB)'); + } + + if (errors.length > 0) { + throw new Error(`Configuration validation failed:\n${errors.join('\n')}`); + } + } + + /** + * Get the parsed configuration + */ + public getConfig(): WorkbenchServiceConfig { + return { ...this.config }; // Return a copy to prevent mutation + } + + /** + * Get service index + */ + public getServiceIndex(): number { + return this.config.serviceIndex; + } + + /** + * Get service name + */ + public getServiceName(): string { + return this.config.serviceName; + } + + /** + * Get all topics for this service + */ + public getTopics(): string[] { + return [...this.config.topics]; // Return a copy + } + + /** + * Get number of partitions per topic + */ + public getPartitionsPerTopic(): number { + return this.config.partitionsPerTopic; + } + + /** + * Get total number of topics + */ + public getTopicCount(): number { + return this.config.topics.length; + } + + /** + * Check if this service handles a specific topic + */ + public handlesTopic(topic: string): boolean { + return this.config.topics.includes(topic); + } + + /** + * Get consumer group ID for this service + */ + public getConsumerGroupId(): string { + return `${this.config.serviceName}-consumer-group`; + } + + /** + * Get message size in bytes + */ + public getMessageSizeBytes(): number { + return this.config.messageSizeBytes; + } + + /** + * Get formatted message size for display + */ + public getMessageSizeFormatted(): string { + const bytes = this.config.messageSizeBytes; + if (bytes < 1024) { + return `${bytes}B`; + } else if (bytes < 1024 * 1024) { + return `${(bytes / 1024).toFixed(1)}KB`; + } else { + return `${(bytes / (1024 * 1024)).toFixed(1)}MB`; + } + } + + /** + * Get configuration summary for logging + */ + public getConfigSummary(): Record { + return { + serviceIndex: this.config.serviceIndex, + serviceName: this.config.serviceName, + topicCount: this.config.topics.length, + topics: this.config.topics, + partitionsPerTopic: this.config.partitionsPerTopic, + totalPartitions: this.config.topics.length * this.config.partitionsPerTopic, + messageSizeBytes: this.config.messageSizeBytes, + messageSizeFormatted: this.getMessageSizeFormatted(), + consumerGroupId: this.getConsumerGroupId(), + }; + } +} diff --git a/MskWorkloadSimulationWorkbench/app/tsconfig.json b/MskWorkloadSimulationWorkbench/app/tsconfig.json new file mode 100644 index 0000000..e30d804 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/app/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts", "**/test/**"] +} diff --git a/MskWorkloadSimulationWorkbench/cdk/.gitignore b/MskWorkloadSimulationWorkbench/cdk/.gitignore new file mode 100644 index 0000000..65b95b4 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/.gitignore @@ -0,0 +1,19 @@ +*.js +!jest.config.js +*.d.ts +node_modules +dist/ + +# CDK asset staging directory +.cdk.staging +cdk.out + +# IDE files +.idea/ +.vscode/ +*.swp +*.swo + +# OS files +.DS_Store +Thumbs.db diff --git a/MskWorkloadSimulationWorkbench/cdk/.npmignore b/MskWorkloadSimulationWorkbench/cdk/.npmignore new file mode 100644 index 0000000..c1d6d45 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/.npmignore @@ -0,0 +1,6 @@ +*.ts +!*.d.ts + +# CDK asset staging directory +.cdk.staging +cdk.out diff --git a/MskWorkloadSimulationWorkbench/cdk/README.md b/MskWorkloadSimulationWorkbench/cdk/README.md new file mode 100644 index 0000000..80c3df3 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/README.md @@ -0,0 +1,14 @@ +# Welcome to your CDK TypeScript project + +This is a blank project for CDK development with TypeScript. + +The `cdk.json` file tells the CDK Toolkit how to execute your app. + +## Useful commands + +- `npm run build` compile typescript to js +- `npm run watch` watch for changes and compile +- `npm run test` perform the jest unit tests +- `npx cdk deploy` deploy this stack to your default AWS account/region +- `npx cdk diff` compare deployed stack with current state +- `npx cdk synth` emits the synthesized CloudFormation template diff --git a/MskWorkloadSimulationWorkbench/cdk/bin/cdk.ts b/MskWorkloadSimulationWorkbench/cdk/bin/cdk.ts new file mode 100644 index 0000000..3d89f13 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/bin/cdk.ts @@ -0,0 +1,30 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { Aspects } from 'aws-cdk-lib'; +import { AwsSolutionsChecks } from 'cdk-nag'; +import { AppStack } from '../lib/app-stack'; +import { Config } from '../lib/config'; + +const app = new cdk.App(); + +// Create the main application stack +new AppStack(app, Config.stackName, { + /* Environment configuration - uses AWS CLI detected account and region */ + env: { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION + }, + + /* Alternative static configuration (uncomment if needed): + * env: { account: '123456789012', region: 'us-east-1' }, + */ + + /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */ +}); + +// Apply AWS Solutions compliance checks to the entire app +// This will check all stacks in the app for compliance violations +Aspects.of(app).add(new AwsSolutionsChecks({ + verbose: true, + logIgnores: false +})); diff --git a/MskWorkloadSimulationWorkbench/cdk/cdk.context.json b/MskWorkloadSimulationWorkbench/cdk/cdk.context.json new file mode 100644 index 0000000..bd38cbe --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/cdk.context.json @@ -0,0 +1,18 @@ +{ + "availability-zones:account=878004393455:region=us-east-1": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ], + "availability-zones:account=166165479772:region=us-east-1": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ] +} diff --git a/MskWorkloadSimulationWorkbench/cdk/cdk.json b/MskWorkloadSimulationWorkbench/cdk/cdk.json new file mode 100644 index 0000000..990757b --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/cdk.json @@ -0,0 +1,90 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/cdk.ts", + "watch": { + "include": ["**"], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules" + ] + }, + "context": { + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, + "@aws-cdk/core:checkSecretUsage": true, + "@aws-cdk/core:target-partitions": ["aws", "aws-cn"], + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true, + "@aws-cdk/aws-iam:minimizePolicies": true, + "@aws-cdk/core:validateSnapshotRemovalPolicy": true, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": true, + "@aws-cdk/core:enablePartitionLiterals": true, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true, + "@aws-cdk/aws-route53-patters:useCertificate": true, + "@aws-cdk/customresources:installLatestAwsSdkDefault": false, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true, + "@aws-cdk/aws-redshift:columnId": true, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true, + "@aws-cdk/aws-kms:aliasNameRef": true, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": true, + "@aws-cdk/aws-efs:denyAnonymousAccess": true, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true, + "@aws-cdk/aws-eks:nodegroupNameAttribute": true, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": false, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": true, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": true, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": true, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": true, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": true, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": true, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": true, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": true, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": true, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": true, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true, + "@aws-cdk/core:enableAdditionalMetadataCollection": true, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": false, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": true, + "@aws-cdk/aws-events:requireEventBusPolicySid": true, + "@aws-cdk/core:aspectPrioritiesMutating": true, + "@aws-cdk/aws-dynamodb:retainTableReplica": true, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": true, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": true, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": true, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": true + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/README.md b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/README.md new file mode 100644 index 0000000..353ff4e --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/README.md @@ -0,0 +1,189 @@ +# Dashboard Widgets Module + +This directory contains modular dashboard widget components for the MSK Express Kafka Performance Workbench monitoring dashboard. + +## 📁 File Structure + +``` +dashboard-widgets/ +├── README.md # This documentation +├── index.ts # Module exports +├── msk-cluster-widgets.ts # MSK Express cluster infrastructure widgets +├── application-widgets.ts # Application performance monitoring widgets +├── advanced-metrics-widgets.ts # Consumer lag and advanced Kafka metrics +└── dashboard-layout.ts # Headers, footers, and layout components +``` + +## 🏗️ Architecture + +### **Modular Design Benefits** +- **Maintainability**: Each widget type is in its own file +- **Reusability**: Widgets can be reused across different dashboards +- **Testability**: Individual widget modules can be tested independently +- **Scalability**: Easy to add new widget types without affecting existing ones + +### **Widget Categories** + +#### 1. **MSK Cluster Widgets** (`msk-cluster-widgets.ts`) +Infrastructure monitoring for MSK Express cluster: +- **Cluster Overview**: Throughput, message rates, cluster status +- **Broker Resources**: CPU usage (user/system), memory usage (used/free) +- **Broker Details**: Partition distribution, leader balance, client connections +- **Network I/O**: Packet rates, network errors, dropped packets + +#### 2. **Application Widgets** (`application-widgets.ts`) +Workbench application performance monitoring: +- **Service Throughput**: Producer/consumer rates comparison +- **Individual Performance**: Per-service detailed metrics +- **Latency Analysis**: Average and P95 latency across services +- **Message Size Impact**: Performance analysis by payload size +- **Consumer Health**: Lag monitoring and processing efficiency + +#### 3. **Advanced Metrics Widgets** (`advanced-metrics-widgets.ts`) +Deep Kafka metrics and consumer health: +- **Consumer Lag**: Offset lag and time lag monitoring +- **Broker Performance**: Request handlers, network processors, queue sizes +- **Replication Metrics**: Inter-broker replication throughput +- **Connection Management**: Connection creation/close rates, TCP connections +- **Storage Monitoring**: Disk usage and partition health + +#### 4. **Dashboard Layout** (`dashboard-layout.ts`) +Layout and informational components: +- **Headers**: Main dashboard header with summary statistics +- **Footers**: Comprehensive documentation and configuration details +- **Section Dividers**: Visual separation between dashboard sections +- **Performance Summary**: Configuration overview and expected performance + +## 🎯 **Dashboard Structure** + +The complete dashboard is organized into these sections: + +### **1. Header Section** +- Dashboard title and last updated timestamp +- Service count, instance count, topic count summary +- Region and refresh interval information + +### **2. MSK Express Cluster Infrastructure** +- **Row 1**: Cluster throughput, message rates, cluster status +- **Row 2**: Per-broker CPU and memory usage +- **Row 3**: Partition distribution, leader balance, client connections +- **Row 4**: Network I/O monitoring and error tracking + +### **3. Application Performance Metrics** +- **Performance Summary**: Configuration overview +- **Row 1**: Service throughput comparison (all services) +- **Row 2**: Individual service performance widgets +- **Row 3**: Service latency comparison (average and P95) +- **Row 4**: Message size impact analysis + +### **4. Advanced Kafka Metrics** +- **Row 1**: Consumer lag monitoring per service +- **Row 2**: Time lag analysis per service +- **Row 3**: Broker performance (handlers, processors, queues) +- **Row 4**: Replication and connection management +- **Row 5**: Storage usage and partition health + +### **5. Footer Section** +- Comprehensive configuration summary +- Performance targets and thresholds +- Monitoring and alerting information +- Architecture and technology stack details + +## 🔧 **Usage Examples** + +### **Adding a New Widget** +```typescript +// In your widget file (e.g., custom-widgets.ts) +export class CustomWidgets { + static createMyCustomWidget(): GraphWidget { + return new GraphWidget({ + title: 'My Custom Metric', + // ... widget configuration + }); + } +} + +// In the main dashboard construct +import { CustomWidgets } from './dashboard-widgets/custom-widgets'; + +// Add to dashboard +this.dashboard.addWidgets(CustomWidgets.createMyCustomWidget()); +``` + +### **Modifying Existing Widgets** +```typescript +// Edit the appropriate widget file +// For MSK metrics: msk-cluster-widgets.ts +// For app metrics: application-widgets.ts +// For advanced metrics: advanced-metrics-widgets.ts +// For layout: dashboard-layout.ts +``` + +### **Creating Widget Variations** +```typescript +// Example: Create a simplified cluster overview +static createSimplifiedClusterOverview(): Row { + return new Row( + // Simplified widgets with fewer metrics + ); +} +``` + +## 📊 **Metrics Coverage** + +### **MSK Express Cluster Metrics** +- **Throughput**: `BytesInPerSec`, `BytesOutPerSec`, `MessagesInPerSec` +- **Resource Usage**: `CpuUser`, `CpuSystem`, `MemoryUsed`, `MemoryFree` +- **Cluster Health**: `GlobalTopicCount`, `GlobalPartitionCount`, `ActiveControllerCount` +- **Broker Details**: `PartitionCount`, `LeaderCount`, `ClientConnectionCount` +- **Network**: `NetworkRxPackets`, `NetworkTxPackets`, `NetworkRxErrors`, `NetworkTxErrors` + +### **Application Metrics** +- **Throughput**: `MessagesSentPerSecond`, `MessagesReceivedPerSecond` +- **Latency**: `MessageLatencyAverage`, `MessageLatencyP95` +- **Custom Metrics**: Service-specific performance indicators + +### **Advanced Kafka Metrics** +- **Consumer Lag**: `MaxOffsetLag`, `SumOffsetLag`, `EstimatedMaxTimeLag` +- **Broker Performance**: `RequestHandlerAvgIdlePercent`, `NetworkProcessorAvgIdlePercent` +- **Queue Sizes**: `RequestThrottleQueueSize`, `ProduceThrottleQueueSize`, `FetchThrottleQueueSize` +- **Replication**: `ReplicationBytesInPerSec`, `ReplicationBytesOutPerSec` +- **Storage**: `StorageUsed`, `UserPartitionExists` + +## 🚀 **Best Practices** + +### **Widget Development** +1. **Single Responsibility**: Each widget should focus on one specific metric or related group +2. **Consistent Styling**: Use consistent colors and formatting across widgets +3. **Meaningful Labels**: Provide clear, descriptive labels for all metrics +4. **Appropriate Aggregation**: Choose the right statistic (SUM, AVERAGE, MAX) for each metric + +### **Performance Considerations** +1. **Metric Periods**: Use appropriate time periods (1 min for real-time, 5 min for trends) +2. **Widget Sizing**: Balance information density with readability +3. **Color Coding**: Use consistent color schemes for related metrics +4. **Update Frequency**: Set reasonable refresh intervals to balance freshness with cost + +### **Maintenance** +1. **Documentation**: Keep widget documentation up to date +2. **Testing**: Test widgets with different data scenarios +3. **Monitoring**: Monitor dashboard performance and loading times +4. **Feedback**: Collect user feedback for continuous improvement + +## 🔍 **Troubleshooting** + +### **Common Issues** +1. **Missing Metrics**: Ensure MSK Enhanced Monitoring is enabled +2. **No Data**: Check that services are running and producing metrics +3. **Permission Errors**: Verify CloudWatch permissions for metric access +4. **Widget Errors**: Check metric names and dimension mappings + +### **Debug Steps** +1. Check CloudWatch Logs for application errors +2. Verify metric availability in CloudWatch console +3. Test individual widgets in isolation +4. Review IAM permissions for CloudWatch access + +--- + +**Built with AWS CDK, CloudWatch, and TypeScript for the MSK Express Kafka Performance Workbench** diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-broken.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-broken.ts new file mode 100644 index 0000000..bb86547 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-broken.ts @@ -0,0 +1,293 @@ +/** + * Application Performance Widgets - ENVIRONMENT AGNOSTIC VERSION + * Multi-service Kafka streaming performance monitoring + * + * FIXES APPLIED: + * 1. Rate metrics use AVERAGE statistic (not SUM) because app sends pre-calculated rates + * 2. REMOVED Environment dimension to make it environment-agnostic + * 3. Proper units and titles for all metrics + */ + +import { Duration } from 'aws-cdk-lib'; +import { + GraphWidget, + Metric, + Unit, + Statistic, + TextWidget, + Row, + GraphWidgetView, +} from 'aws-cdk-lib/aws-cloudwatch'; +import { DeploymentConfig, NamingHelper } from '../../lib/config-types-and-helpers'; + +export class ApplicationWidgets { + + /** + * Create application performance section header + */ + static createSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 🚀 Application Performance Metrics`, + width: 24, + height: 1, + }); + } + + /** + * Create service throughput comparison widget + */ + static createServiceThroughputComparison(region: string, deploymentConfig: DeploymentConfig): Row { + const metrics: Metric[] = []; + + // Add producer metrics for each service + deploymentConfig.services.forEach((service, index) => { + const serviceLabel = `Service-${index} (${service.topics}T/${service.partitionsPerTopic}P/${service.instances}I/${NamingHelper.formatMessageSize(service.messageSizeBytes)})`; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + // Producer metric - Use AVERAGE because app sends rate values + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Producer`, + color: colors[index % colors.length], + }) + ); + + // Consumer metric - Use AVERAGE because app sends rate values + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Consumer`, + color: colors[index % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Service Throughput Comparison (Messages/Second)', + width: 24, + height: 8, + left: metrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ); + } + + /** + * Create individual service performance widgets + */ + static createServicePerformanceRow(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + const serviceLabel = `Service-${index} (${service.topics}T/${service.partitionsPerTopic}P/${service.instances}I)`; + + return new GraphWidget({ + title: `${serviceLabel} Performance`, + width: 8, + height: 6, + left: [ + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: 'Producer Rate', + color: '#1f77b4', + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: 'Consumer Rate', + color: '#ff7f0e', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } + + /** + * Create service latency comparison widget + */ + static createServiceLatencyComparison(region: string, deploymentConfig: DeploymentConfig): Row { + const metrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + // Add average latency metrics for each service + deploymentConfig.services.forEach((service, index) => { + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Latency averages should use AVERAGE + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} Avg Latency`, + color: colors[index % colors.length], + }) + ); + }); + + // Add P95 latency metrics for each service + deploymentConfig.services.forEach((service, index) => { + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyP95', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // P95 values should use AVERAGE + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} P95 Latency`, + color: colors[(index + 3) % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Service Latency Comparison (Milliseconds)', + width: 24, + height: 8, + left: metrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ); + } + + /** + * Create message size impact analysis widget + */ + static createMessageSizeAnalysis(region: string, deploymentConfig: DeploymentConfig): Row { + const throughputMetrics: Metric[] = []; + const latencyMetrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + deploymentConfig.services.forEach((service, index) => { + const messageSize = NamingHelper.formatMessageSize(service.messageSizeBytes); + + throughputMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${messageSize} Messages`, + color: colors[index % colors.length], + }) + ); + + latencyMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Latency averages should use AVERAGE + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `${messageSize} Latency`, + color: colors[index % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Message Size Impact - Throughput (Messages/Second)', + width: 12, + height: 6, + left: throughputMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }), + new GraphWidget({ + title: 'Message Size Impact - Latency (Milliseconds)', + width: 12, + height: 6, + left: latencyMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }) + ); + } + + /** + * Create consumer lag monitoring widget + */ + static createConsumerLagMonitoring(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + return new GraphWidget({ + title: `Service-${index} Consumer Lag`, + width: 8, + height: 6, + left: [ + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'ConsumerLag', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + // Removed Environment dimension to make it environment-agnostic + }, + statistic: Statistic.AVERAGE, // Lag values should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT, + label: 'Consumer Lag', + color: '#d62728', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-complex.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-complex.ts new file mode 100644 index 0000000..a11ddb4 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets-complex.ts @@ -0,0 +1,320 @@ +/** + * Application Performance Widgets - SIMPLIFIED CORRECTED VERSION + * Multi-service Kafka streaming performance monitoring + */ + +import { Duration } from 'aws-cdk-lib'; +import { + GraphWidget, + Metric, + Unit, + Statistic, + TextWidget, + Row, + GraphWidgetView, +} from 'aws-cdk-lib/aws-cloudwatch'; +import { DeploymentConfig, NamingHelper } from '../../lib/config-types-and-helpers'; + +export class ApplicationWidgets { + + static createSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 🚀 Application Performance Metrics`, + width: 24, + height: 1, + }); + } + + /** + * Create service throughput comparison widgets - both total and per-instance + */ + static createServiceThroughputComparison(region: string, deploymentConfig: DeploymentConfig): Row[] { + const totalMetrics: Metric[] = []; + const perInstanceMetrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + // Add metrics for each service + deploymentConfig.services.forEach((service, index) => { + const serviceLabel = `Service-${index} (${service.topics}T/${service.partitionsPerTopic}P/${service.instances}I/${NamingHelper.formatMessageSize(service.messageSizeBytes)})`; + + // Total throughput metrics - multiply by instances to get total + totalMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Get per-instance average + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Producer`, + color: colors[index % colors.length], + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Get per-instance average + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Consumer`, + color: colors[(index + 3) % colors.length], + }) + ); + + // Per-instance throughput metrics (AVERAGE) + perInstanceMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Producer (Per Instance)`, + color: colors[index % colors.length], + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Consumer (Per Instance)`, + color: colors[(index + 3) % colors.length], + }) + ); + }); + + return [ + new Row( + new GraphWidget({ + title: 'Service Throughput Comparison (Per-Instance Average)', + width: 24, + height: 8, + left: totalMetrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ), + new Row( + new GraphWidget({ + title: 'Per-Instance Service Throughput (Individual Instance Performance)', + width: 24, + height: 8, + left: perInstanceMetrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ) + ]; + } + + /** + * Create individual service performance widgets + */ + static createServicePerformanceRow(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + const serviceLabel = `Service-${index} (${service.instances}I)`; + + return new GraphWidget({ + title: `${serviceLabel} Performance`, + width: 8, + height: 8, + left: [ + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: 'Producer Rate (Per Instance)', + color: '#1f77b4', + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: 'Consumer Rate (Per Instance)', + color: '#ff7f0e', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } + + /** + * Create service latency comparison widget (always uses AVERAGE) + */ + static createServiceLatencyComparison(region: string, deploymentConfig: DeploymentConfig): Row { + const metrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + deploymentConfig.services.forEach((service, index) => { + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} Avg Latency`, + color: colors[index % colors.length], + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyP95', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} P95 Latency`, + color: colors[(index + 3) % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Service Latency Comparison (Average Across Instances)', + width: 24, + height: 8, + left: metrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ); + } + + /** + * Create message size impact analysis widgets + */ + static createMessageSizeAnalysis(region: string, deploymentConfig: DeploymentConfig): Row[] { + const throughputMetrics: Metric[] = []; + const latencyMetrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + deploymentConfig.services.forEach((service, index) => { + const messageSize = NamingHelper.formatMessageSize(service.messageSizeBytes); + + throughputMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${messageSize} Messages (Per Instance)`, + color: colors[index % colors.length], + }) + ); + + latencyMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `${messageSize} Latency`, + color: colors[index % colors.length], + }) + ); + }); + + return [ + new Row( + new GraphWidget({ + title: 'Message Size Impact - Throughput (Per Instance)', + width: 12, + height: 6, + left: throughputMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }), + new GraphWidget({ + title: 'Message Size Impact - Average Latency', + width: 12, + height: 6, + left: latencyMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }) + ) + ]; + } + + /** + * Create consumer lag monitoring widget (always uses AVERAGE) + */ + static createConsumerLagMonitoring(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + return new GraphWidget({ + title: `Service-${index} Consumer Lag (Average Per Instance)`, + width: 8, + height: 6, + left: [ + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'ConsumerLag', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT, + label: 'Consumer Lag', + color: '#d62728', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts new file mode 100644 index 0000000..7134ef1 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts @@ -0,0 +1,333 @@ +/** + * Application Performance Widgets - FIXED TOTAL AGGREGATION + */ + +import { Duration } from 'aws-cdk-lib'; +import { + GraphWidget, + Metric, + Unit, + Statistic, + TextWidget, + Row, + GraphWidgetView, + MathExpression, +} from 'aws-cdk-lib/aws-cloudwatch'; +import { DeploymentConfig, NamingHelper } from '../../lib/config-types-and-helpers'; + +export class ApplicationWidgets { + + static createSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 🚀 Application Performance Metrics`, + width: 24, + height: 1, + }); + } + + /** + * Create section header for individual service performance + */ + static createIndividualServicesSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 📊 Individual Service Performance (Total Throughput) + +Shows total messages per second across all instances for each service`, + width: 24, + height: 1, + }); + } + + /** + * Create section header for message size analysis + */ + static createMessageSizeAnalysisSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 📏 Message Size Performance Analysis`, + width: 24, + height: 1, + }); + } + + /** + * Create service throughput comparison - per-instance rates and total system throughput + */ + static createServiceThroughputComparison(region: string, deploymentConfig: DeploymentConfig): Row[] { + const perInstanceMetrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + // Individual service metrics for per-instance view + deploymentConfig.services.forEach((service, index) => { + const serviceLabel = `Service-${index} (${service.instances}I/${NamingHelper.formatMessageSize(service.messageSizeBytes)})`; + + perInstanceMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Producer`, + color: colors[index % colors.length], + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Consumer`, + color: colors[(index + 3) % colors.length], + }) + ); + }); + + // Create metrics for math expressions + const producerMetrics: { [key: string]: Metric } = {}; + const consumerMetrics: { [key: string]: Metric } = {}; + + deploymentConfig.services.forEach((service, index) => { + producerMetrics[`p${index}`] = new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Use AVERAGE to get per-second rates + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + }); + + consumerMetrics[`c${index}`] = new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Use AVERAGE to get per-second rates + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + }); + }); + + // Create math expressions to sum all services (now using AVERAGE rates × instance counts) + const totalProducerExpression = new MathExpression({ + expression: Object.keys(producerMetrics).map(key => `${key} * ${deploymentConfig.services[parseInt(key.substring(1))].instances}`).join(' + '), + usingMetrics: producerMetrics, + label: 'Total Messages Produced per Second', + color: '#e74c3c', + }); + + const totalConsumerExpression = new MathExpression({ + expression: Object.keys(consumerMetrics).map(key => `${key} * ${deploymentConfig.services[parseInt(key.substring(1))].instances}`).join(' + '), + usingMetrics: consumerMetrics, + label: 'Total Messages Consumed per Second', + color: '#3498db', + }); + + return [ + new Row( + new GraphWidget({ + title: 'Total System Throughput (Messages per Second)', + width: 8, + height: 8, + left: [totalProducerExpression, totalConsumerExpression], + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }), + new GraphWidget({ + title: 'Service Throughput (Per-Instance Average)', + width: 8, + height: 8, + left: perInstanceMetrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }), + new GraphWidget({ + title: 'Service Latency Comparison (Average Across Instances)', + width: 8, + height: 8, + left: this.createServiceLatencyMetrics(region, deploymentConfig), + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ) + ]; + } + + static createServicePerformanceRow(deploymentConfig: DeploymentConfig): Row[] { + const rows: Row[] = []; + const servicesPerRow = 3; // 3 widgets per row for better layout + + // Group services into rows of 3 + for (let i = 0; i < deploymentConfig.services.length; i += servicesPerRow) { + const servicesInThisRow = deploymentConfig.services.slice(i, i + servicesPerRow); + + const widgets = servicesInThisRow.map((service, indexInRow) => { + const serviceIndex = i + indexInRow; + const serviceLabel = `Service-${serviceIndex} (${service.instances} instances)`; + + // Create base metrics for math expressions + const producerMetric = new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${serviceIndex}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + }); + + const consumerMetric = new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${serviceIndex}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + }); + + // Create math expressions for total throughput + const totalProducerExpression = new MathExpression({ + expression: `m1 * ${service.instances}`, + usingMetrics: { m1: producerMetric }, + label: 'Total Producer Rate', + color: '#1f77b4', + }); + + const totalConsumerExpression = new MathExpression({ + expression: `m2 * ${service.instances}`, + usingMetrics: { m2: consumerMetric }, + label: 'Total Consumer Rate', + color: '#ff7f0e', + }); + + return new GraphWidget({ + title: `${serviceLabel} - Total Performance`, + width: 8, + height: 6, + left: [ + // Only show total throughput using math expressions + totalProducerExpression, + totalConsumerExpression, + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + rows.push(new Row(...widgets)); + } + + return rows; + } + + /** + * Create latency metrics for the combined row + */ + private static createServiceLatencyMetrics(region: string, deploymentConfig: DeploymentConfig): Metric[] { + const metrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + deploymentConfig.services.forEach((service, index) => { + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} Avg Latency`, + color: colors[index % colors.length], + }) + ); + }); + + return metrics; + } + + static createMessageSizeAnalysis(region: string, deploymentConfig: DeploymentConfig): Row[] { + const throughputMetrics: Metric[] = []; + const latencyMetrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + deploymentConfig.services.forEach((service, index) => { + const messageSize = NamingHelper.formatMessageSize(service.messageSizeBytes); + + throughputMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${messageSize} (Per Instance)`, + color: colors[index % colors.length], + }) + ); + + latencyMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `${messageSize} Latency`, + color: colors[index % colors.length], + }) + ); + }); + + return [ + new Row( + new GraphWidget({ + title: 'Message Size Impact - Throughput (Per Instance)', + width: 12, + height: 6, + left: throughputMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }), + new GraphWidget({ + title: 'Message Size Impact - Latency', + width: 12, + height: 6, + left: latencyMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }) + ) + ]; + } + +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts.bak b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts.bak new file mode 100644 index 0000000..6b8aa5d --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/application-widgets.ts.bak @@ -0,0 +1,292 @@ +/** + * Application Performance Widgets + * Multi-service Kafka streaming performance monitoring + * + * IMPORTANT: Rate metrics (MessagesSentPerSecond, MessagesReceivedPerSecond) + * are already calculated as per-second values by the application, so we use + * AVERAGE statistic, not SUM, to avoid double-counting. + */ + +import { Duration } from 'aws-cdk-lib'; +import { + GraphWidget, + Metric, + Unit, + Statistic, + TextWidget, + Row, + GraphWidgetView, +} from 'aws-cdk-lib/aws-cloudwatch'; +import { DeploymentConfig, NamingHelper } from '../../lib/config-types-and-helpers'; + +export class ApplicationWidgets { + + /** + * Create application performance section header + */ + static createSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 🚀 Application Performance Metrics`, + width: 24, + height: 1, + }); + } + + /** + * Create service throughput comparison widget + */ + static createServiceThroughputComparison(region: string, deploymentConfig: DeploymentConfig): Row { + const metrics: Metric[] = []; + + // Add producer metrics for each service + deploymentConfig.services.forEach((service, index) => { + const serviceLabel = `Service-${index} (${service.topics}T/${service.partitionsPerTopic}P/${service.instances}I/${NamingHelper.formatMessageSize(service.messageSizeBytes)})`; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + // Producer metric - Use AVERAGE because app sends rate values + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Producer`, + color: colors[index % colors.length], + }) + ); + + // Consumer metric - Use AVERAGE because app sends rate values + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${serviceLabel} Consumer`, + color: colors[index % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Service Throughput Comparison (Messages/Second)', + width: 24, + height: 8, + left: metrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ); + } + + /** + * Create individual service performance widgets + */ + static createServicePerformanceRow(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + const serviceLabel = `Service-${index} (${service.topics}T/${service.partitionsPerTopic}P/${service.instances}I)`; + + return new GraphWidget({ + title: `${serviceLabel} Performance`, + width: 8, + height: 6, + left: [ + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: 'Producer Rate', + color: '#1f77b4', + }), + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesReceivedPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: 'Consumer Rate', + color: '#ff7f0e', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } + + /** + * Create service latency comparison widget + */ + static createServiceLatencyComparison(region: string, deploymentConfig: DeploymentConfig): Row { + const metrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + // Add average latency metrics for each service + deploymentConfig.services.forEach((service, index) => { + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Latency averages should use AVERAGE + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} Avg Latency`, + color: colors[index % colors.length], + }) + ); + }); + + // Add P95 latency metrics for each service + deploymentConfig.services.forEach((service, index) => { + metrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyP95', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // P95 values should use AVERAGE + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `Service-${index} P95 Latency`, + color: colors[(index + 3) % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Service Latency Comparison (Milliseconds)', + width: 24, + height: 8, + left: metrics, + view: GraphWidgetView.TIME_SERIES, + stacked: false, + region, + }) + ); + } + + /** + * Create message size impact analysis widget + */ + static createMessageSizeAnalysis(region: string, deploymentConfig: DeploymentConfig): Row { + const throughputMetrics: Metric[] = []; + const latencyMetrics: Metric[] = []; + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']; + + deploymentConfig.services.forEach((service, index) => { + const messageSize = NamingHelper.formatMessageSize(service.messageSizeBytes); + + throughputMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessagesSentPerSecond', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Rate metrics should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT_PER_SECOND, + label: `${messageSize} Messages`, + color: colors[index % colors.length], + }) + ); + + latencyMetrics.push( + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'MessageLatencyAverage', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Latency averages should use AVERAGE + period: Duration.minutes(1), + unit: Unit.MILLISECONDS, + label: `${messageSize} Latency`, + color: colors[index % colors.length], + }) + ); + }); + + return new Row( + new GraphWidget({ + title: 'Message Size Impact - Throughput (Messages/Second)', + width: 12, + height: 6, + left: throughputMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }), + new GraphWidget({ + title: 'Message Size Impact - Latency (Milliseconds)', + width: 12, + height: 6, + left: latencyMetrics, + view: GraphWidgetView.TIME_SERIES, + region, + }) + ); + } + + /** + * Create consumer lag monitoring widget + */ + static createConsumerLagMonitoring(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + return new GraphWidget({ + title: `Service-${index} Consumer Lag`, + width: 8, + height: 6, + left: [ + new Metric({ + namespace: 'MSKExpress/Kafka', + metricName: 'ConsumerLag', + dimensionsMap: { + Service: `dev-mske-service-${index}`, + Environment: 'production', + }, + statistic: Statistic.AVERAGE, // Lag values should use AVERAGE + period: Duration.minutes(1), + unit: Unit.COUNT, + label: 'Consumer Lag', + color: '#d62728', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/consumer-lag-widgets.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/consumer-lag-widgets.ts new file mode 100644 index 0000000..b06552a --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/consumer-lag-widgets.ts @@ -0,0 +1,62 @@ +import { Duration } from 'aws-cdk-lib'; +import { + GraphWidget, + Metric, + Unit, + Statistic, + TextWidget, + Row, + GraphWidgetView, +} from 'aws-cdk-lib/aws-cloudwatch'; +import { DeploymentConfig } from '../../lib/config-types-and-helpers'; +import { Config } from '../../lib/config'; + +export class ConsumerLagWidgets { + + static createSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 📊 Consumer Lag Monitoring + +**Max Offset Lag** measures the maximum number of messages that a consumer group is behind the latest message in a partition. + +- **What it means**: If producers write message #1000 to a partition, but consumers have only processed up to message #950, the lag is 50 messages +- **Why it matters**: High lag indicates consumers can't keep up with producers, potentially causing: + - Increased memory usage + - Processing delays + - Message timeouts +- **Healthy range**: Typically < 1000 messages for real-time processing +- **Alert threshold**: > 10,000 messages may indicate consumer issues`, + width: 24, + height: 3, + }); + } + + static createConsumerLagRow(deploymentConfig: DeploymentConfig): Row { + const widgets = deploymentConfig.services.slice(0, 3).map((service, index) => { + return new GraphWidget({ + title: `Service-${index} Max Offset Lag (Messages Behind)`, + width: 8, + height: 6, + left: [ + new Metric({ + namespace: 'AWS/Kafka', + metricName: 'MaxOffsetLag', + dimensionsMap: { + 'Consumer Group': `dev-mske-service-${index}-consumer-group`, + 'Cluster Name': Config.getResourceName('express-cluster'), + 'Topic': `dev-mske-service-${index}-topic-0`, + }, + statistic: Statistic.MAXIMUM, + period: Duration.minutes(1), + unit: Unit.COUNT, + label: `Topic-0 Max Lag (Messages)`, + color: '#d62728', + }), + ], + view: GraphWidgetView.TIME_SERIES, + }); + }); + + return new Row(...widgets); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/dashboard-layout.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/dashboard-layout.ts new file mode 100644 index 0000000..afdaaa4 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/dashboard-layout.ts @@ -0,0 +1,121 @@ +/** + * Dashboard Layout Components + * Headers, footers, and layout elements for the workbench dashboard + */ + +import { TextWidget } from 'aws-cdk-lib/aws-cloudwatch'; +import { DeploymentConfig, NamingHelper } from '../../lib/config-types-and-helpers'; +import { Config } from '../../lib/config'; + +export class DashboardLayout { + + /** + * Create main dashboard header + */ + static createMainHeader( + totalServices: number, + totalInstances: number, + totalTopics: number, + region: string + ): TextWidget { + return new TextWidget({ + markdown: `# MSK Express Kafka Performance Workbench Dashboard + +**Multi-service Kafka streaming performance monitoring with comprehensive MSK Express cluster insights** + +**Services**: ${totalServices} | **Instances**: ${totalInstances} | **Topics**: ${totalTopics} | **Region**: ${region} | **Auto-refresh**: 1 minute + +*Last Updated: ${new Date().toISOString()}*`, + width: 24, + height: 2, + }); + } + + /** + * Create comprehensive dashboard footer + */ + static createFooter(deploymentConfig: DeploymentConfig): TextWidget { + return new TextWidget({ + markdown: `--- +## 📊 Dashboard Summary + +### 🏗️ MSK Express Cluster Infrastructure +- **Cluster**: ${Config.getResourceName('msk-cluster')} +- **Type**: MSK Express +- **Brokers**: Multi-AZ deployment with express instance types +- **Authentication**: IAM authentication, encryption in transit + +### 🚀 Workbench Configuration +${deploymentConfig.services.map((service, index) => + `- **Service ${index}**: ${service.topics} topics × ${service.partitionsPerTopic} partitions × ${service.instances} instances | **Message Size**: ${NamingHelper.formatMessageSize(service.messageSizeBytes)}` +).join('\n')} + +### 📈 Key Performance Metrics + +#### Infrastructure Metrics (MSK Express) +- **Cluster Health**: Active controllers, global topic/partition counts +- **Resource Usage**: CPU (User/System/Idle), Memory (Used/Free/Cached/Buffered) +- **Network Health**: Packet counts, errors, and dropped packets per broker + +#### Application Metrics (Workbench Services) +- **Throughput**: Producer/Consumer rates per service +- **Latency**: Average and P95 end-to-end message processing time +- **Message Size Impact**: Performance analysis across different payload sizes + +### 🔧 Configuration Impact Analysis +- **Small Messages (< 1KB)**: Higher throughput, lower latency +- **Medium Messages (1-4KB)**: Balanced performance +- **Large Messages (> 4KB)**: Lower message rate, higher bandwidth utilization +- **Partition Strategy**: More partitions = higher parallelism +- **Instance Scaling**: More instances = higher throughput + +### 🚨 Monitoring & Alerting +- **Real-time Metrics**: 5-minute granularity for cluster metrics, 1-minute for application metrics +- **Auto-refresh**: Dashboard updates every 1 minute + +--- +*MSK Express Kafka Performance Workbench - Built with AWS CDK, ECS Fargate, and CloudWatch*`, + width: 24, + height: 6, + }); + } + + /** + * Create section divider + */ + static createSectionDivider(title: string, emoji = '📊'): TextWidget { + return new TextWidget({ + markdown: `---\n## ${emoji} ${title}`, + width: 24, + height: 1, + }); + } + + /** + * Create performance summary widget + */ + static createPerformanceSummary(deploymentConfig: DeploymentConfig): TextWidget { + const totalPartitions = deploymentConfig.services.reduce( + (sum, service) => sum + (service.topics * service.partitionsPerTopic), 0 + ); + const totalStreams = deploymentConfig.services.reduce( + (sum, service) => sum + (service.topics * service.partitionsPerTopic * service.instances), 0 + ); + + return new TextWidget({ + markdown: `### 🎯 Workbench Performance Overview + +**Configuration Summary:** +- **Total Services**: ${deploymentConfig.services.length} +- **Total Partitions**: ${totalPartitions} +- **Total Streams**: ${totalStreams} +- **Message Sizes**: ${deploymentConfig.services.map(s => NamingHelper.formatMessageSize(s.messageSizeBytes)).join(', ')} + +**System Overview:** +- **Concurrent Connections**: ~${totalStreams * 2} (producers + consumers) +- **Network Bandwidth**: Variable based on message sizes and throughput`, + width: 24, + height: 2, + }); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/index.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/index.ts new file mode 100644 index 0000000..606ab3b --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/index.ts @@ -0,0 +1,9 @@ +/** + * Dashboard Widgets Module Index + * Centralized exports for all dashboard widget components + */ + +export { ApplicationWidgets } from './application-widgets'; +export { DashboardLayout } from './dashboard-layout'; +export { WorkingClusterWidgets } from './working-cluster-widgets'; +export { ConsumerLagWidgets } from './consumer-lag-widgets'; diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/working-cluster-widgets.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/working-cluster-widgets.ts new file mode 100644 index 0000000..56fef27 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/dashboard-widgets/working-cluster-widgets.ts @@ -0,0 +1,243 @@ +/** + * Working MSK Express Cluster Widgets + * Exact replica of the working "test" dashboard configuration + */ + +import { Duration } from 'aws-cdk-lib'; +import { + GraphWidget, + Metric, + Unit, + Statistic, + TextWidget, + Row, + GraphWidgetView, +} from 'aws-cdk-lib/aws-cloudwatch'; +import { Config } from '../../lib/config'; + +// Dynamic configuration from environment config +const CLUSTER_NAME = Config.getResourceName('express-cluster'); +const BROKER_IDS = Config.getBrokerIds(); // Dynamic broker IDs based on config + +export class WorkingClusterWidgets { + + /** + * Helper function to create broker metrics for a given metric name + */ + private static createBrokerMetrics(metricName: string, unit?: Unit, statistic: Statistic = Statistic.AVERAGE): Metric[] { + const colors = ['#1f77b4', '#ff7f0e', '#2ca02c']; + + return BROKER_IDS.map((brokerId, index) => + new Metric({ + namespace: 'AWS/Kafka', + metricName, + dimensionsMap: { + 'Cluster Name': CLUSTER_NAME, + 'Broker ID': brokerId, + }, + statistic, + period: Duration.minutes(5), + unit, + label: `Broker-${brokerId}`, + color: colors[index], + }) + ); + } + + /** + * Helper function to create cluster-level metric + */ + private static createClusterMetric(metricName: string, label?: string): Metric { + return new Metric({ + namespace: 'AWS/Kafka', + metricName, + dimensionsMap: { + 'Cluster Name': CLUSTER_NAME, + }, + statistic: Statistic.AVERAGE, + period: Duration.minutes(5), + label: label || CLUSTER_NAME, + }); + } + + /** + * Create cluster overview section header + */ + static createSectionHeader(): TextWidget { + return new TextWidget({ + markdown: `## 🏗️ MSK Express Cluster Monitoring (${BROKER_IDS.length} × ${Config.mskBroker.instanceType})`, + width: 24, + height: 1, + }); + } + + /** + * Row 1: ActiveControllerCount, CpuIdle, CpuSystem + */ + static createRow1(): Row { + return new Row( + // ActiveControllerCount + new GraphWidget({ + title: 'ActiveControllerCount: Average', + width: 8, + height: 5, + left: [this.createClusterMetric('ActiveControllerCount')], + view: GraphWidgetView.TIME_SERIES, + }), + + // CpuIdle + new GraphWidget({ + title: 'CpuIdle: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('CpuIdle', Unit.PERCENT), + view: GraphWidgetView.TIME_SERIES, + }), + + // CpuSystem + new GraphWidget({ + title: 'CpuSystem: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('CpuSystem', Unit.PERCENT), + view: GraphWidgetView.TIME_SERIES, + }) + ); + } + + /** + * Row 2: CpuUser, GlobalPartitionCount, GlobalTopicCount + */ + static createRow2(): Row { + return new Row( + // CpuUser + new GraphWidget({ + title: 'CpuUser: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('CpuUser', Unit.PERCENT), + view: GraphWidgetView.TIME_SERIES, + }), + + // GlobalPartitionCount + new GraphWidget({ + title: 'GlobalPartitionCount: Average', + width: 8, + height: 5, + left: [this.createClusterMetric('GlobalPartitionCount')], + view: GraphWidgetView.TIME_SERIES, + }), + + // GlobalTopicCount + new GraphWidget({ + title: 'GlobalTopicCount: Average', + width: 8, + height: 5, + left: [this.createClusterMetric('GlobalTopicCount')], + view: GraphWidgetView.TIME_SERIES, + }) + ); + } + + /** + * Row 3: MemoryBuffered, MemoryCached, MemoryFree + */ + static createRow3(): Row { + return new Row( + new GraphWidget({ + title: 'MemoryBuffered: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('MemoryBuffered', Unit.BYTES), + view: GraphWidgetView.TIME_SERIES, + }), + new GraphWidget({ + title: 'MemoryCached: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('MemoryCached', Unit.BYTES), + view: GraphWidgetView.TIME_SERIES, + }), + new GraphWidget({ + title: 'MemoryFree: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('MemoryFree', Unit.BYTES), + view: GraphWidgetView.TIME_SERIES, + }) + ); + } + + /** + * Row 4: MemoryUsed, NetworkRxDropped, NetworkRxErrors + */ + static createRow4(): Row { + return new Row( + new GraphWidget({ + title: 'MemoryUsed: Average', + width: 8, + height: 5, + left: this.createBrokerMetrics('MemoryUsed', Unit.BYTES), + view: GraphWidgetView.TIME_SERIES, + }), + new GraphWidget({ + title: 'NetworkRxDropped: Sum', + width: 8, + height: 5, + left: this.createBrokerMetrics('NetworkRxDropped', Unit.COUNT, Statistic.SUM), + view: GraphWidgetView.TIME_SERIES, + }), + new GraphWidget({ + title: 'NetworkRxErrors: Sum', + width: 8, + height: 5, + left: this.createBrokerMetrics('NetworkRxErrors', Unit.COUNT, Statistic.SUM), + view: GraphWidgetView.TIME_SERIES, + }) + ); + } + + /** + * Row 5: NetworkRxPackets, NetworkTxDropped, NetworkTxErrors + */ + static createRow5(): Row { + return new Row( + new GraphWidget({ + title: 'NetworkRxPackets: Sum', + width: 8, + height: 5, + left: this.createBrokerMetrics('NetworkRxPackets', Unit.COUNT, Statistic.SUM), + view: GraphWidgetView.TIME_SERIES, + }), + new GraphWidget({ + title: 'NetworkTxDropped: Sum', + width: 8, + height: 5, + left: this.createBrokerMetrics('NetworkTxDropped', Unit.COUNT, Statistic.SUM), + view: GraphWidgetView.TIME_SERIES, + }), + new GraphWidget({ + title: 'NetworkTxErrors: Sum', + width: 8, + height: 5, + left: this.createBrokerMetrics('NetworkTxErrors', Unit.COUNT, Statistic.SUM), + view: GraphWidgetView.TIME_SERIES, + }) + ); + } + + /** + * Row 6: NetworkTxPackets + */ + static createRow6(): Row { + return new Row( + new GraphWidget({ + title: 'NetworkTxPackets: Sum', + width: 8, + height: 5, + left: this.createBrokerMetrics('NetworkTxPackets', Unit.COUNT, Statistic.SUM), + view: GraphWidgetView.TIME_SERIES, + }) + ); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/ecr-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/ecr-construct.ts new file mode 100644 index 0000000..b9eb006 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/ecr-construct.ts @@ -0,0 +1,102 @@ +/** + * ECR Construct + * Creates ECR repository with automatic Docker image building and pushing + */ + +import { Construct } from 'constructs'; +import { RemovalPolicy, Duration } from 'aws-cdk-lib'; +import { Repository, TagStatus } from 'aws-cdk-lib/aws-ecr'; +import { DockerImageAsset, Platform } from 'aws-cdk-lib/aws-ecr-assets'; +import { Config } from '../lib/config'; +import * as path from 'path'; + +export interface EcrConstructProps { + /** + * Path to the directory containing the Dockerfile + * @default '../app' (relative to CDK project) + */ + dockerfilePath?: string; +} + +export class EcrConstruct extends Construct { + public readonly repository: Repository; + public readonly dockerImageAsset: DockerImageAsset; + + constructor(scope: Construct, id: string, props?: EcrConstructProps) { + super(scope, id); + + const dockerfilePath = props?.dockerfilePath || path.resolve(__dirname, '../../app'); + + // Create ECR repository + this.repository = new Repository(this, 'Repository', { + repositoryName: Config.getResourceName('app-repo'), + removalPolicy: RemovalPolicy.DESTROY, + emptyOnDelete: true, + lifecycleRules: [ + // Delete untagged images after 1 day + { + rulePriority: 1, + description: 'Delete untagged images after 1 day', + tagStatus: TagStatus.UNTAGGED, + maxImageAge: Duration.days(1), + }, + // Keep only the latest 10 images (ANY rule must have highest priority) + { + rulePriority: 2, + description: 'Keep only latest 10 images', + tagStatus: TagStatus.ANY, + maxImageCount: 10, + }, + ], + }); + + // Create Docker image asset with automatic building and pushing + this.dockerImageAsset = new DockerImageAsset(this, 'DockerImageAsset', { + directory: dockerfilePath, + platform: Platform.LINUX_AMD64, // Target AWS Fargate platform + buildArgs: { + BUILDPLATFORM: 'linux/amd64', + TARGETPLATFORM: 'linux/amd64', + }, + exclude: [ + 'node_modules', + '*.log', + '.git', + '.gitignore', + 'README.md', + 'src', + 'tsconfig.json', + '.eslintrc*', + '.prettierrc*', + ], + }); + } + + /** + * Get the ECR repository + */ + public getRepository(): Repository { + return this.repository; + } + + /** + * Get the Docker image asset + */ + public getDockerImageAsset(): DockerImageAsset { + return this.dockerImageAsset; + } + + /** + * Get the image URI for use in ECS task definitions + */ + public getImageUri(): string { + return this.dockerImageAsset.imageUri; + } + + /** + * Get the repository URI + */ + public getRepositoryUri(): string { + return this.repository.repositoryUri; + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/ecs-cluster-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/ecs-cluster-construct.ts new file mode 100644 index 0000000..bd8809f --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/ecs-cluster-construct.ts @@ -0,0 +1,86 @@ +/** + * ECS Cluster Construct + * Creates ECS cluster with Fargate capacity and CloudWatch Container Insights + */ + +import { Construct } from 'constructs'; +import { RemovalPolicy } from 'aws-cdk-lib'; +import { Vpc } from 'aws-cdk-lib/aws-ec2'; +import { + Cluster, +} from 'aws-cdk-lib/aws-ecs'; +import { LogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs'; +import { Config } from '../lib/config'; + +export interface EcsClusterProps { + vpc: Vpc; + enableContainerInsights?: boolean; +} + +export class EcsClusterConstruct extends Construct { + public readonly cluster: Cluster; + public readonly logGroup: LogGroup; + + constructor(scope: Construct, id: string, props: EcsClusterProps) { + super(scope, id); + + const { vpc, enableContainerInsights = true } = props; + + // Create CloudWatch log group for cluster + this.logGroup = new LogGroup(this, 'ClusterLogGroup', { + logGroupName: `/aws/ecs/cluster/${Config.getResourceName('cluster')}`, + retention: RetentionDays.ONE_WEEK, + removalPolicy: RemovalPolicy.DESTROY, + }); + + // Create ECS cluster + this.cluster = new Cluster(this, 'Cluster', { + clusterName: Config.getResourceName('cluster'), + vpc, + containerInsights: enableContainerInsights, + enableFargateCapacityProviders: true, + }); + + // Configure default capacity provider strategy for cost optimization + this.cluster.addDefaultCapacityProviderStrategy([ + { + capacityProvider: 'FARGATE', + weight: 1, + base: 1, // Ensure at least one task on regular Fargate + }, + { + capacityProvider: 'FARGATE_SPOT', + weight: 4, // Prefer spot instances for cost savings + base: 0, + }, + ]); + } + + /** + * Get the ECS cluster + */ + public getCluster(): Cluster { + return this.cluster; + } + + /** + * Get the cluster log group + */ + public getLogGroup(): LogGroup { + return this.logGroup; + } + + /** + * Get cluster ARN + */ + public getClusterArn(): string { + return this.cluster.clusterArn; + } + + /** + * Get cluster name + */ + public getClusterName(): string { + return this.cluster.clusterName; + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/ecs-workbench-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/ecs-workbench-construct.ts new file mode 100644 index 0000000..9572639 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/ecs-workbench-construct.ts @@ -0,0 +1,335 @@ +/** + * ECS Workbench Construct + * Creates multiple ECS services based on deployment configuration + */ + +import { Construct } from 'constructs'; +import { RemovalPolicy, Duration } from 'aws-cdk-lib'; +import { Vpc, SecurityGroup, Port, Peer } from 'aws-cdk-lib/aws-ec2'; +import { + Cluster, + FargateService, + FargateTaskDefinition, + ContainerDefinition, + LogDriver, + Protocol, + ContainerImage, +} from 'aws-cdk-lib/aws-ecs'; +import { + Role, + ServicePrincipal, + PolicyStatement, + Effect, + ManagedPolicy, +} from 'aws-cdk-lib/aws-iam'; +import * as msk from '@aws-cdk/aws-msk-alpha'; +import { LogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs'; +import { EcrConstruct } from './ecr-construct'; +import { Config } from '../lib/config'; +import { DeploymentConfig, ServiceConfig, NamingHelper, TaskResourceValidator } from '../lib/config-types-and-helpers'; + +export interface EcsWorkbenchProps { + vpc: Vpc; + cluster: Cluster; + ecrConstruct: EcrConstruct; + deploymentConfig: DeploymentConfig; +} + +export interface WorkbenchService { + service: FargateService; + taskDefinition: FargateTaskDefinition; + container: ContainerDefinition; + logGroup: LogGroup; + serviceIndex: number; + topics: string[]; +} + +export class EcsWorkbenchConstruct extends Construct { + public readonly services: WorkbenchService[] = []; + private sharedTaskRole: Role; + private sharedExecutionRole: Role; + private sharedSecurityGroup: SecurityGroup; + + constructor(scope: Construct, id: string, props: EcsWorkbenchProps) { + super(scope, id); + + const { vpc, cluster, ecrConstruct, deploymentConfig } = props; + + // Create shared resources that all services will use + this.createSharedResources(vpc); + + // Create individual services based on configuration + deploymentConfig.services.forEach((serviceConfig, index) => { + const workbenchService = this.createService( + vpc, + cluster, + ecrConstruct, + serviceConfig, + index + ); + this.services.push(workbenchService); + }); + } + + /** + * Create shared resources used by all services + */ + private createSharedResources(vpc: Vpc): void { + // Create shared task execution role (for ECS agent) + this.sharedExecutionRole = new Role(this, 'SharedTaskExecutionRole', { + roleName: Config.getResourceName('workbench-execution-role'), + assumedBy: new ServicePrincipal('ecs-tasks.amazonaws.com'), + managedPolicies: [ + ManagedPolicy.fromAwsManagedPolicyName('service-role/AmazonECSTaskExecutionRolePolicy'), + ], + }); + + // Add ECR permissions to execution role + this.sharedExecutionRole.addToPolicy(new PolicyStatement({ + effect: Effect.ALLOW, + actions: [ + 'ecr:GetAuthorizationToken', + 'ecr:BatchCheckLayerAvailability', + 'ecr:GetDownloadUrlForLayer', + 'ecr:BatchGetImage', + ], + resources: ['*'], + })); + + // Create shared task role (for application) + this.sharedTaskRole = new Role(this, 'SharedTaskRole', { + roleName: Config.getResourceName('workbench-task-role'), + assumedBy: new ServicePrincipal('ecs-tasks.amazonaws.com'), + }); + + // Add basic permissions for the application + this.sharedTaskRole.addToPolicy(new PolicyStatement({ + effect: Effect.ALLOW, + actions: [ + 'sts:GetCallerIdentity', + ], + resources: ['*'], + })); + + // Add CloudWatch metrics permissions + this.sharedTaskRole.addToPolicy(new PolicyStatement({ + effect: Effect.ALLOW, + actions: [ + 'cloudwatch:PutMetricData', + ], + resources: ['*'], + conditions: { + StringEquals: { + 'cloudwatch:namespace': 'MSKExpress/Kafka', + }, + }, + })); + + // Create shared security group for ECS tasks + this.sharedSecurityGroup = new SecurityGroup(this, 'SharedTaskSecurityGroup', { + vpc, + securityGroupName: Config.getResourceName('workbench-sg'), + description: 'Security group for workbench ECS tasks', + allowAllOutbound: true, + }); + + // Allow health check traffic + this.sharedSecurityGroup.addIngressRule( + Peer.ipv4(vpc.vpcCidrBlock), + Port.tcp(3000), + 'Allow health check traffic from VPC' + ); + } + + /** + * Create individual ECS service + */ + private createService( + vpc: Vpc, + cluster: Cluster, + ecrConstruct: EcrConstruct, + serviceConfig: ServiceConfig, + serviceIndex: number + ): WorkbenchService { + const naming = new NamingHelper(Config.envPrefix, Config.appPrefix); + const serviceName = naming.getServiceName(serviceIndex); + const topics = naming.getServiceTopics(serviceIndex, serviceConfig.topics); + + // Get configurable task resources with defaults + const cpu = serviceConfig.cpu || 256; + const memoryMiB = serviceConfig.memoryMiB || TaskResourceValidator.getDefaultMemory(cpu); + + // Validate task resource configuration + TaskResourceValidator.validateTaskResources(serviceConfig, serviceIndex); + + // Create log group for this service + const logGroup = new LogGroup(this, `Service${serviceIndex}LogGroup`, { + logGroupName: `/aws/ecs/workbench/${serviceName}`, + retention: RetentionDays.ONE_WEEK, + removalPolicy: RemovalPolicy.DESTROY, + }); + + // Add log permissions for this service + this.sharedTaskRole.addToPolicy(new PolicyStatement({ + effect: Effect.ALLOW, + actions: [ + 'logs:CreateLogStream', + 'logs:PutLogEvents', + ], + resources: [logGroup.logGroupArn], + })); + + // Create Fargate task definition with configurable resources + const taskDefinition = new FargateTaskDefinition(this, `Service${serviceIndex}TaskDefinition`, { + family: `${serviceName}-task`, + cpu: cpu, + memoryLimitMiB: memoryMiB, + taskRole: this.sharedTaskRole, + executionRole: this.sharedExecutionRole, + }); + + // Prepare environment variables specific to this service + const environment: { [key: string]: string } = { + NODE_ENV: 'production', + PORT: '3000', + AWS_REGION: cluster.stack.region, + LOG_LEVEL: 'info', + // Service-specific configuration + SERVICE_INDEX: serviceIndex.toString(), + SERVICE_NAME: serviceName, + KAFKA_TOPICS: topics.join(','), + PARTITIONS_PER_TOPIC: serviceConfig.partitionsPerTopic.toString(), + MESSAGE_SIZE_BYTES: serviceConfig.messageSizeBytes.toString(), + }; + + // Add container to task definition with configurable resources + const container = taskDefinition.addContainer('AppContainer', { + containerName: `${serviceName}-container`, + image: ContainerImage.fromDockerImageAsset(ecrConstruct.getDockerImageAsset()), + cpu: cpu, + memoryLimitMiB: memoryMiB, + essential: true, + logging: LogDriver.awsLogs({ + logGroup: logGroup, + streamPrefix: 'ecs', + }), + environment, + healthCheck: { + command: ['CMD-SHELL', 'wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1'], + interval: Duration.seconds(30), + timeout: Duration.seconds(10), + retries: 3, + startPeriod: Duration.seconds(60), + }, + }); + + // Add port mapping + container.addPortMappings({ + containerPort: 3000, + protocol: Protocol.TCP, + name: 'http', + }); + + // Create Fargate service + const service = new FargateService(this, `Service${serviceIndex}`, { + serviceName: serviceName, + cluster, + taskDefinition: taskDefinition, + desiredCount: serviceConfig.instances, // Exact number from config + vpcSubnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.sharedSecurityGroup], + assignPublicIp: false, + capacityProviderStrategies: [ + { + capacityProvider: 'FARGATE', + weight: 1, + base: 1, // Ensure at least one task on regular Fargate + }, + { + capacityProvider: 'FARGATE_SPOT', + weight: 4, // Prefer spot for additional tasks + base: 0, + }, + ], + enableExecuteCommand: true, // Enable ECS Exec for debugging + }); + + // NO AUTO-SCALING - Deploy exactly the configured number of instances + + return { + service, + taskDefinition, + container, + logGroup, + serviceIndex, + topics, + }; + } + + /** + * Add MSK configuration to all services + */ + public addMskConfiguration(mskCluster: msk.Cluster, mskPolicy: ManagedPolicy, bootstrapBrokers: string): void { + // Add MSK policy to shared task role + this.sharedTaskRole.addManagedPolicy(mskPolicy); + + // Add MSK environment variables to all services + this.services.forEach((workbenchService) => { + workbenchService.container.addEnvironment('MSK_CLUSTER_ARN', mskCluster.clusterArn); + workbenchService.container.addEnvironment('MSK_CLUSTER_NAME', mskCluster.clusterName); + workbenchService.container.addEnvironment('MSK_BOOTSTRAP_SERVERS', bootstrapBrokers); + }); + } + + /** + * Get all ECS services + */ + public getServices(): FargateService[] { + return this.services.map(ws => ws.service); + } + + /** + * Get all log groups + */ + public getLogGroups(): LogGroup[] { + return this.services.map(ws => ws.logGroup); + } + + /** + * Get service by index + */ + public getService(index: number): WorkbenchService | undefined { + return this.services.find(ws => ws.serviceIndex === index); + } + + /** + * Get all topics across all services + */ + public getAllTopics(): string[] { + return this.services.flatMap(ws => ws.topics); + } + + /** + * Get shared security group + */ + public getSecurityGroup(): SecurityGroup { + return this.sharedSecurityGroup; + } + + /** + * Get total number of services + */ + public getServiceCount(): number { + return this.services.length; + } + + /** + * Get total number of instances across all services + */ + public getTotalInstances(): number { + return this.services.reduce((total, ws) => { + const service = ws.service as any; // Cast to access desiredCount + return total + (service.desiredCount || 0); + }, 0); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/msk-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/msk-construct.ts new file mode 100644 index 0000000..565e110 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/msk-construct.ts @@ -0,0 +1,160 @@ +import * as cdk from 'aws-cdk-lib'; +import * as msk from '@aws-cdk/aws-msk-alpha'; +import * as mskCfn from 'aws-cdk-lib/aws-msk'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import { Construct } from 'constructs'; +import { Config } from '../lib/config'; + +/** + * MSK Construct + * Creates MSK Express cluster with IAM authentication + */ +export class MskConstruct { + /** + * Creates MSK Express cluster with required components + * @param scope The construct scope + * @param vpc The VPC to deploy in + * @param ecsSecurityGroup Optional ECS security group to allow connections from + * @returns Object containing cluster and IAM policy + */ + static create(scope: Construct, vpc: ec2.Vpc, ecsSecurityGroup?: ec2.SecurityGroup) { + // Create MSK Express cluster + const cluster = new msk.Cluster(scope, Config.getResourceId('MskExpressCluster'), { + clusterName: Config.getResourceName('express-cluster'), + kafkaVersion: msk.KafkaVersion.V3_6_0, + numberOfBrokerNodes: Config.mskBroker.numberOfBrokers, + vpc, + encryptionInTransit: { + clientBroker: msk.ClientBrokerEncryption.TLS, + }, + clientAuthentication: msk.ClientAuthentication.sasl({ + iam: true, + }), + monitoring: { + clusterMonitoringLevel: msk.ClusterMonitoringLevel.PER_TOPIC_PER_PARTITION, + }, + logging: {cloudwatchLogGroup: undefined, s3:undefined, firehoseDeliveryStreamName:undefined}, + removalPolicy: cdk.RemovalPolicy.DESTROY, + storageMode:undefined + }); + + + // Override properties for Express brokers + const cfnCluster = cluster.node.defaultChild as mskCfn.CfnCluster; + + // Set Express instance type from configuration + cfnCluster.addPropertyOverride('BrokerNodeGroupInfo.InstanceType', Config.mskBroker.instanceType); + + // Remove StorageInfo section (not supported for Express brokers) + cfnCluster.addPropertyOverride('BrokerNodeGroupInfo.StorageInfo', undefined); + + // Remove LoggingInfo section completely (not supported for Express brokers) + cfnCluster.addPropertyOverride('LoggingInfo', undefined); + + // Allow connections only from private subnets + vpc.privateSubnets.forEach((subnet, index) => { + // Allow MSK IAM authentication (port 9098) from each private subnet + cluster.connections.allowFrom( + ec2.Peer.ipv4(subnet.ipv4CidrBlock), + ec2.Port.tcp(9098), + `MSK IAM authentication from private subnet ${index + 1}` + ); + + // Allow Zookeeper access (port 2181) from each private subnet + cluster.connections.allowFrom( + ec2.Peer.ipv4(subnet.ipv4CidrBlock), + ec2.Port.tcp(2181), + `Zookeeper access from private subnet ${index + 1}` + ); + }); + + // Allow connections from ECS security group if provided + if (ecsSecurityGroup) { + cluster.connections.allowFrom( + ecsSecurityGroup, + ec2.Port.tcp(9098), + 'MSK IAM authentication from ECS tasks' + ); + + cluster.connections.allowFrom( + ecsSecurityGroup, + ec2.Port.tcp(2181), + 'Zookeeper access from ECS tasks' + ); + } + + // Create IAM policy for MSK access using the exact format from your sample policy + // We'll use a more permissive approach that should definitely work + const policy = new iam.ManagedPolicy(scope, Config.getResourceId('MskKafkaClusterAccessPolicyFinal'), { + managedPolicyName: Config.getResourceName('msk-kafka-cluster-access-policy-final'), + description: 'IAM policy for MSK Express cluster access with comprehensive permissions', + statements: [ + // Cluster-level permissions - exact match from sample policy + new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: [ + 'kafka-cluster:Connect', + 'kafka-cluster:AlterCluster', + 'kafka-cluster:DescribeCluster', + ], + resources: [ + cluster.clusterArn, // Use the exact cluster ARN + ], + }), + // Topic permissions - comprehensive access to all topics in all clusters + new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: [ + 'kafka-cluster:DescribeTopic', + 'kafka-cluster:CreateTopic', + 'kafka-cluster:*Topic*', + 'kafka-cluster:WriteData', + 'kafka-cluster:ReadData', + ], + resources: [ + // Allow access to all topics in all clusters for this account/region + `arn:aws:kafka:${cluster.stack.region}:${cluster.stack.account}:topic/*`, + ], + }), + // Consumer group permissions - comprehensive access to all groups in all clusters + new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: [ + 'kafka-cluster:AlterGroup', + 'kafka-cluster:DescribeGroup', + ], + resources: [ + // Allow access to all groups in all clusters for this account/region + `arn:aws:kafka:${cluster.stack.region}:${cluster.stack.account}:group/*`, + ], + }), + // Additional MSK API permissions for cluster discovery + new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: [ + 'kafka:GetBootstrapBrokers', + 'kafka:DescribeCluster', + 'kafka:DescribeClusterV2', + 'kafka:ListClusters', + 'kafka:ListNodes', + ], + resources: ['*'], + }), + ], + }); + + // Create CloudFormation output for bootstrap servers + new cdk.CfnOutput(scope, 'BootstrapBrokerStringSaslIam', { + value: cluster.bootstrapBrokersSaslIam, + description: 'MSK cluster bootstrap brokers for SASL/IAM authentication', + exportName: `${Config.getResourceName('bootstrap-brokers-sasl-iam')}`, + }); + + return { + cluster, + policy, + bootstrapBrokers: cluster.bootstrapBrokersSaslIam, + }; + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/retention-policy-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/retention-policy-construct.ts new file mode 100644 index 0000000..e855af0 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/retention-policy-construct.ts @@ -0,0 +1,60 @@ +import { RemovalPolicy, Aspects } from 'aws-cdk-lib'; +import { Construct, IConstruct } from 'constructs'; +import * as cdk from 'aws-cdk-lib'; + +/** + * Retention Policy Construct + * Ensures all resources are destroyed when the stack is destroyed + */ +export class RetentionPolicyConstruct { + /** + * Applies destroy retention policy to all resources in the stack + * @param scope The stack construct to apply retention policy to + */ + static applyDestroyPolicy(scope: Construct): void { + // Apply an aspect that will set RemovalPolicy.DESTROY on all applicable resources + Aspects.of(scope).add(new DestroyPolicyAspect()); + } +} + +/** + * CDK Aspect that applies RemovalPolicy.DESTROY to all resources + */ +class DestroyPolicyAspect implements cdk.IAspect { + visit(node: IConstruct): void { + // Apply to resources that support RemovalPolicy + if (node instanceof cdk.CfnResource) { + // Set deletion policy to Delete (ensures resource is destroyed) + node.applyRemovalPolicy(RemovalPolicy.DESTROY); + + // For resources that support DeletionPolicy, ensure it's set to Delete + if ('deletionPolicy' in node) { + const resourceWithDeletionPolicy = node as cdk.CfnResource & { deletionPolicy?: string }; + resourceWithDeletionPolicy.deletionPolicy = 'Delete'; + } + + // For resources that support UpdateReplacePolicy, ensure it's set to Delete + if ('updateReplacePolicy' in node) { + const resourceWithUpdatePolicy = node as cdk.CfnResource & { updateReplacePolicy?: string }; + resourceWithUpdatePolicy.updateReplacePolicy = 'Delete'; + } + } + + // Handle specific resource types that need special attention + if (node instanceof cdk.aws_s3.Bucket) { + // Ensure S3 buckets are destroyed even if they contain objects + node.applyRemovalPolicy(RemovalPolicy.DESTROY); + } + + if (node instanceof cdk.aws_logs.LogGroup) { + // Ensure CloudWatch Log Groups are destroyed + node.applyRemovalPolicy(RemovalPolicy.DESTROY); + } + + if (node instanceof cdk.aws_rds.DatabaseInstance || + node instanceof cdk.aws_rds.DatabaseCluster) { + // Ensure RDS instances/clusters are destroyed without snapshots + node.applyRemovalPolicy(RemovalPolicy.DESTROY); + } + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/tags-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/tags-construct.ts new file mode 100644 index 0000000..c6f0941 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/tags-construct.ts @@ -0,0 +1,20 @@ +import { Tags } from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +import { Config } from '../lib/config'; + +/** + * Tags Construct + * Provides centralized tagging for all resources in the CDK app + */ +export class TagsConstruct { + /** + * Applies common tags to all resources in the stack + * @param scope The stack construct to apply tags to + */ + static applyTags(scope: Construct): void { + // Apply tags that will propagate to all resources in the stack + Tags.of(scope).add('Owner', Config.appName); + Tags.of(scope).add('StackName', Config.stackName); + Tags.of(scope).add('Environment', Config.envPrefix); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/vpc-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/vpc-construct.ts new file mode 100644 index 0000000..c33d07a --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/vpc-construct.ts @@ -0,0 +1,45 @@ +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import { Construct } from 'constructs'; +import { Stack } from 'aws-cdk-lib'; +import { Config } from '../lib/config'; +import { VpcEndpointsConstruct } from './vpc-endpoints-construct'; + +/** + * VPC Construct Extension + * Provides a convenient method to create a VPC with standard configuration and VPC endpoints + */ +export class VpcConstruct { + /** + * Creates a VPC with standard configuration and VPC endpoints + * @param scope The construct scope + * @returns Object containing VPC instance and VPC endpoints construct + */ + static withVpc(scope: Construct): { vpc: ec2.Vpc; vpcEndpoints: VpcEndpointsConstruct } { + const vpc = new ec2.Vpc(scope, Config.getResourceId('Vpc'), { + vpcName: Config.getResourceName('vpc'), + availabilityZones: Stack.of(scope).availabilityZones.slice(0, 3), // Explicitly take first 3 AZs + ipAddresses: ec2.IpAddresses.cidr('10.0.0.0/16'), + subnetConfiguration: [ + { + cidrMask: 24, + name: Config.getResourceName('public-subnet'), + subnetType: ec2.SubnetType.PUBLIC, + }, + { + cidrMask: 24, + name: Config.getResourceName('private-subnet'), + subnetType: ec2.SubnetType.PRIVATE_ISOLATED, + }, + ], + enableDnsHostnames: true, + enableDnsSupport: true, + }); + + // Create VPC endpoints for ECS and AWS services access from private subnets + const vpcEndpoints = new VpcEndpointsConstruct(scope, Config.getResourceId('VpcEndpoints'), { + vpc, + }); + + return { vpc, vpcEndpoints }; + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/vpc-endpoints-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/vpc-endpoints-construct.ts new file mode 100644 index 0000000..2bee8d3 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/vpc-endpoints-construct.ts @@ -0,0 +1,187 @@ +/** + * VPC Endpoints Construct + * Creates VPC endpoints for ECS tasks to access AWS services from private subnets + */ + +import { Construct } from 'constructs'; +import { + Vpc, + InterfaceVpcEndpoint, + InterfaceVpcEndpointAwsService, + GatewayVpcEndpoint, + GatewayVpcEndpointAwsService, + SecurityGroup, + Port, + Peer, +} from 'aws-cdk-lib/aws-ec2'; +import { Config } from '../lib/config'; + +export interface VpcEndpointsProps { + vpc: Vpc; +} + +export class VpcEndpointsConstruct extends Construct { + public readonly endpointSecurityGroup: SecurityGroup; + public readonly endpoints: InterfaceVpcEndpoint[]; + public readonly s3GatewayEndpoint: GatewayVpcEndpoint; + + constructor(scope: Construct, id: string, props: VpcEndpointsProps) { + super(scope, id); + + const { vpc } = props; + + // Create security group for VPC endpoints + this.endpointSecurityGroup = new SecurityGroup(this, 'EndpointSecurityGroup', { + vpc, + securityGroupName: Config.getResourceName('vpc-endpoints-sg'), + description: 'Security group for VPC endpoints', + allowAllOutbound: false, + }); + + // Allow HTTPS traffic from private subnets + this.endpointSecurityGroup.addIngressRule( + Peer.ipv4(vpc.vpcCidrBlock), + Port.tcp(443), + 'Allow HTTPS from VPC' + ); + + // Allow HTTP traffic for some endpoints + this.endpointSecurityGroup.addIngressRule( + Peer.ipv4(vpc.vpcCidrBlock), + Port.tcp(80), + 'Allow HTTP from VPC' + ); + + // Create VPC endpoints for ECS and related services + this.endpoints = [ + // ECR endpoints for container image pulling + new InterfaceVpcEndpoint(this, 'EcrApiEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.ECR, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + new InterfaceVpcEndpoint(this, 'EcrDkrEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.ECR_DOCKER, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // ECS endpoints for task management + new InterfaceVpcEndpoint(this, 'EcsEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.ECS, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + new InterfaceVpcEndpoint(this, 'EcsAgentEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.ECS_AGENT, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + new InterfaceVpcEndpoint(this, 'EcsTelemetryEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.ECS_TELEMETRY, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // CloudWatch Logs for application logging + new InterfaceVpcEndpoint(this, 'CloudWatchLogsEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.CLOUDWATCH_LOGS, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // CloudWatch Monitoring + new InterfaceVpcEndpoint(this, 'CloudWatchEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.CLOUDWATCH_MONITORING, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // STS for AWS credential management + new InterfaceVpcEndpoint(this, 'StsEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.STS, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // SSM for parameter store access + new InterfaceVpcEndpoint(this, 'SsmEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.SSM, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // SSM Messages for Session Manager + new InterfaceVpcEndpoint(this, 'SsmMessagesEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.SSM_MESSAGES, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + + // EC2 Messages for Session Manager + new InterfaceVpcEndpoint(this, 'Ec2MessagesEndpoint', { + vpc, + service: InterfaceVpcEndpointAwsService.EC2_MESSAGES, + subnets: { subnets: vpc.isolatedSubnets }, + securityGroups: [this.endpointSecurityGroup], + privateDnsEnabled: true, + }), + ]; + + // Create S3 Gateway VPC Endpoint (required for ECR image layers) + this.s3GatewayEndpoint = new GatewayVpcEndpoint(this, 'S3GatewayEndpoint', { + vpc, + service: GatewayVpcEndpointAwsService.S3, + subnets: [{ subnets: vpc.isolatedSubnets }], + }); + + // Tag all endpoints + this.endpoints.forEach((endpoint, index) => { + endpoint.node.addMetadata('Name', Config.getResourceName(`vpc-endpoint-${index}`)); + }); + } + + /** + * Get security group for VPC endpoints + */ + public getEndpointSecurityGroup(): SecurityGroup { + return this.endpointSecurityGroup; + } + + /** + * Get all VPC endpoints + */ + public getEndpoints(): InterfaceVpcEndpoint[] { + return this.endpoints; + } + + /** + * Get S3 Gateway VPC endpoint + */ + public getS3GatewayEndpoint(): GatewayVpcEndpoint { + return this.s3GatewayEndpoint; + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/constructs/workbench-dashboard-construct.ts b/MskWorkloadSimulationWorkbench/cdk/constructs/workbench-dashboard-construct.ts new file mode 100644 index 0000000..1b58394 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/constructs/workbench-dashboard-construct.ts @@ -0,0 +1,88 @@ +/** + * Workbench Dashboard Construct + * Creates a CloudWatch dashboard for monitoring MSK Express performance + */ + +import { Construct } from 'constructs'; +import { Dashboard } from 'aws-cdk-lib/aws-cloudwatch'; +import { Duration } from 'aws-cdk-lib'; +import { Config } from '../lib/config'; +import { DeploymentConfig } from '../lib/config-types-and-helpers'; +import { WorkingClusterWidgets } from './dashboard-widgets/working-cluster-widgets'; +import { ApplicationWidgets } from './dashboard-widgets/application-widgets'; +import { DashboardLayout } from './dashboard-widgets/dashboard-layout'; + +export class WorkbenchDashboardConstruct extends Construct { + public readonly dashboard: Dashboard; + + constructor(scope: Construct, deploymentConfig: DeploymentConfig) { + super(scope, 'WorkbenchDashboardConstruct'); + + const region = process.env.CDK_DEFAULT_REGION || 'us-east-1'; + + // Create CloudWatch Dashboard (update existing one) + this.dashboard = new Dashboard(this, 'WorkbenchDashboard', { + dashboardName: Config.getResourceName('workbench-dashboard'), + defaultInterval: Duration.minutes(1), // Set auto-refresh to 1 minute + }); + + // Calculate totals for header + const totalServices = deploymentConfig.services.length; + const totalInstances = deploymentConfig.services.reduce((sum, service) => sum + service.instances, 0); + const totalTopics = deploymentConfig.services.reduce((sum, service) => sum + service.topics, 0); + + // 1. DASHBOARD HEADER + this.dashboard.addWidgets(DashboardLayout.createMainHeader(totalServices, totalInstances, totalTopics, region)); + + // 2. WORKING CLUSTER SECTION + this.dashboard.addWidgets(WorkingClusterWidgets.createSectionHeader()); + + // Row 1: CpuUser, CpuSystem, CpuIdle + this.dashboard.addWidgets(WorkingClusterWidgets.createRow1()); + + // Row 2: MemoryUsed, MemoryFree, MemoryCached + this.dashboard.addWidgets(WorkingClusterWidgets.createRow2()); + + // Row 3: BytesInPerSec, BytesOutPerSec + this.dashboard.addWidgets(WorkingClusterWidgets.createRow3()); + + // Row 4: MessagesInPerSec + this.dashboard.addWidgets(WorkingClusterWidgets.createRow4()); + + // Row 5: NetworkRxDropped, NetworkRxErrors, NetworkRxPackets + this.dashboard.addWidgets(WorkingClusterWidgets.createRow5()); + + // Row 6: NetworkTxDropped, NetworkTxErrors, NetworkTxPackets + this.dashboard.addWidgets(WorkingClusterWidgets.createRow6()); + + // 3. CONSUMER LAG MONITORING SECTION (moved to match new organization) + // This section is now handled in the Application Performance section below + + // 4. APPLICATION PERFORMANCE SECTION + this.dashboard.addWidgets(ApplicationWidgets.createSectionHeader()); + + // Performance Summary + this.dashboard.addWidgets(DashboardLayout.createPerformanceSummary(deploymentConfig)); + + // Service Throughput Comparison (now returns array of rows with combined layout) + const throughputRows = ApplicationWidgets.createServiceThroughputComparison(region, deploymentConfig); + throughputRows.forEach(row => this.dashboard.addWidgets(row)); + + // 5. INDIVIDUAL SERVICES SECTION + this.dashboard.addWidgets(ApplicationWidgets.createIndividualServicesSectionHeader()); + + // Individual Service Performance (now dynamic for all services) + const servicePerformanceRows = ApplicationWidgets.createServicePerformanceRow(deploymentConfig); + servicePerformanceRows.forEach(row => this.dashboard.addWidgets(row)); + + // 6. MESSAGE SIZE ANALYSIS SECTION + this.dashboard.addWidgets(ApplicationWidgets.createMessageSizeAnalysisSectionHeader()); + + // Message Size Impact Analysis (now returns array of rows) + const messageSizeRows = ApplicationWidgets.createMessageSizeAnalysis(region, deploymentConfig); + messageSizeRows.forEach(row => this.dashboard.addWidgets(row)); + + // 7. COMPREHENSIVE FOOTER + this.dashboard.addWidgets(DashboardLayout.createFooter(deploymentConfig)); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/lib/app-stack.ts b/MskWorkloadSimulationWorkbench/cdk/lib/app-stack.ts new file mode 100644 index 0000000..9106859 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/lib/app-stack.ts @@ -0,0 +1,153 @@ +import * as cdk from 'aws-cdk-lib'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import { Construct } from 'constructs'; +import { VpcConstruct } from '../constructs/vpc-construct'; +import { VpcEndpointsConstruct } from '../constructs/vpc-endpoints-construct'; +import { TagsConstruct } from '../constructs/tags-construct'; +import { RetentionPolicyConstruct } from '../constructs/retention-policy-construct'; +import { MskConstruct } from '../constructs/msk-construct'; +import { EcrConstruct } from '../constructs/ecr-construct'; +import { EcsClusterConstruct } from '../constructs/ecs-cluster-construct'; +import { EcsWorkbenchConstruct } from '../constructs/ecs-workbench-construct'; +import { WorkbenchDashboardConstruct } from '../constructs/workbench-dashboard-construct'; +import { MskNagSuppressions } from '../nag-suppressions'; +import { Config, deploymentConfig } from './config'; + +export class AppStack extends cdk.Stack { + public readonly vpc: ec2.Vpc; + public readonly vpcEndpoints: VpcEndpointsConstruct; + public readonly ecrConstruct: EcrConstruct; + public readonly ecsCluster: EcsClusterConstruct; + public readonly ecsWorkbench: EcsWorkbenchConstruct; + public readonly dashboard: WorkbenchDashboardConstruct; + + constructor(scope: Construct, id: string, props?: cdk.StackProps) { + super(scope, id, props); + + // Create VPC with VPC endpoints + const vpcResources = VpcConstruct.withVpc(this); + this.vpc = vpcResources.vpc; + this.vpcEndpoints = vpcResources.vpcEndpoints; + + // Create ECR repository with automatic Docker building + this.ecrConstruct = new EcrConstruct(this, 'EcrConstruct'); + + // Create ECS cluster + this.ecsCluster = new EcsClusterConstruct(this, 'EcsClusterConstruct', { + vpc: this.vpc, + enableContainerInsights: true, + }); + + // Create ECS workbench with multiple services based on configuration + this.ecsWorkbench = new EcsWorkbenchConstruct(this, 'EcsWorkbenchConstruct', { + vpc: this.vpc, + cluster: this.ecsCluster.getCluster(), + ecrConstruct: this.ecrConstruct, + deploymentConfig: deploymentConfig, + }); + + // Create MSK Express cluster with workbench security group for connectivity + const mskResources = MskConstruct.create(this, this.vpc, this.ecsWorkbench.getSecurityGroup()); + const mskCluster = mskResources.cluster; + const mskPolicy = mskResources.policy; + const mskBootstrapBrokers = mskResources.bootstrapBrokers; + + // Update all ECS services with MSK configuration + this.ecsWorkbench.addMskConfiguration(mskCluster, mskPolicy, mskBootstrapBrokers); + + // Create CloudWatch Dashboard for monitoring high-throughput streaming + this.dashboard = new WorkbenchDashboardConstruct(this, deploymentConfig); + + // Add explicit dependencies to ensure proper deployment order + this.addDependencies(); + + // Configure common properties for all resources + this.configureCommonProperties(); + + // Add stack outputs + this.addOutputs(); + + // Apply NAG suppressions + MskNagSuppressions.applySuppressions(this); + } + + /** + * Add explicit dependencies to ensure proper deployment order + */ + private addDependencies(): void { + // ECS Workbench must wait for VPC endpoints to be created + // This is critical for container image pulling from ECR in private subnets + this.ecsWorkbench.node.addDependency(this.vpcEndpoints); + + // ECS Workbench should also wait for ECR repository to be ready + this.ecsWorkbench.node.addDependency(this.ecrConstruct); + + // ECS Cluster should wait for VPC to be fully configured + this.ecsCluster.node.addDependency(this.vpc); + + // Dashboard should wait for ECS workbench to be created (for log groups) + this.dashboard.node.addDependency(this.ecsWorkbench); + } + + /** + * Add stack outputs for important resources + */ + private addOutputs(): void { + // Dashboard URL output + new cdk.CfnOutput(this, 'DashboardUrl', { + value: `https://${this.region}.console.aws.amazon.com/cloudwatch/home?region=${this.region}#dashboards:name=${Config.getResourceName('workbench-dashboard')}`, + description: 'CloudWatch Dashboard URL for MSK Express Streaming Metrics', + exportName: `${this.stackName}-DashboardUrl`, + }); + + // Log group outputs for all services + this.ecsWorkbench.getLogGroups().forEach((logGroup, index) => { + new cdk.CfnOutput(this, `Service${index}LogGroupName`, { + value: logGroup.logGroupName, + description: `CloudWatch Log Group for service-${index}`, + exportName: `${this.stackName}-Service${index}LogGroupName`, + }); + }); + + // ECS service outputs for all services + this.ecsWorkbench.getServices().forEach((service, index) => { + new cdk.CfnOutput(this, `Service${index}Name`, { + value: service.serviceName, + description: `ECS Service name for service-${index}`, + exportName: `${this.stackName}-Service${index}Name`, + }); + }); + + // Summary outputs + new cdk.CfnOutput(this, 'TotalServices', { + value: this.ecsWorkbench.getServiceCount().toString(), + description: 'Total number of ECS services deployed', + exportName: `${this.stackName}-TotalServices`, + }); + + new cdk.CfnOutput(this, 'TotalInstances', { + value: this.ecsWorkbench.getTotalInstances().toString(), + description: 'Total number of ECS task instances across all services', + exportName: `${this.stackName}-TotalInstances`, + }); + + new cdk.CfnOutput(this, 'TotalTopics', { + value: this.ecsWorkbench.getAllTopics().length.toString(), + description: 'Total number of Kafka topics across all services', + exportName: `${this.stackName}-TotalTopics`, + }); + } + + /** + * Configures common properties for all resources in the stack + * This includes tags and retention policies + * Note: CDK NAG compliance checks are applied at the app level in bin/cdk.ts + */ + private configureCommonProperties(): void { + // Apply common tags to all resources in this stack + TagsConstruct.applyTags(this); + + // Apply destroy retention policy to all resources in this stack + RetentionPolicyConstruct.applyDestroyPolicy(this); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/lib/config-types-and-helpers.ts b/MskWorkloadSimulationWorkbench/cdk/lib/config-types-and-helpers.ts new file mode 100644 index 0000000..beb0802 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/lib/config-types-and-helpers.ts @@ -0,0 +1,227 @@ +/** + * Configuration Types and Helper Functions + * Consolidated types, interfaces, and utility functions for the MSK Express project + */ + +// ============================================================================ +// TYPE DEFINITIONS +// ============================================================================ + +export interface ServiceConfig { + topics: number; // Number of topics this service will create + partitionsPerTopic: number; // Number of partitions per topic + instances: number; // Number of ECS task instances + messageSizeBytes: number; // Message payload size in bytes (1-1048576) + cpu?: number; // CPU units (256, 512, 1024, 2048, 4096) - defaults to 256 + memoryMiB?: number; // Memory in MiB (512, 1024, 2048, 4096, 8192, etc.) - defaults to 512 +} + +export interface DeploymentConfig { + services: ServiceConfig[]; +} + +export interface MskBrokerConfig { + numberOfBrokers: number; // Number of brokers per AZ (total = numberOfBrokers × 3 AZs) + instanceType: string; // MSK Express instance type +} + +export interface ValidationResult { + valid: boolean; + errors: string[]; +} + +// ============================================================================ +// HELPER FUNCTIONS +// ============================================================================ + +/** + * Utility functions to generate consistent resource names + */ +export const getStackName = (envPrefix: string, appPrefix: string): string => { + return `${envPrefix}-${appPrefix}-stack`; +}; + +export const getResourceName = (envPrefix: string, appPrefix: string, resourceType: string): string => { + return `${envPrefix}-${appPrefix}-${resourceType}`; +}; + +export const getResourceId = (appName: string, resourceType: string): string => { + return `${appName}${resourceType}`; +}; + +/** + * Validation helper for task resources + */ +export class TaskResourceValidator { + /** + * Validate CPU and memory configuration for Fargate compatibility + */ + static validateTaskResources(serviceConfig: ServiceConfig, serviceIndex: number): void { + const cpu = serviceConfig.cpu || 256; + const memory = serviceConfig.memoryMiB || 512; + + // Valid Fargate CPU values + const validCpuValues = [256, 512, 1024, 2048, 4096]; + if (!validCpuValues.includes(cpu)) { + throw new Error(`Service ${serviceIndex}: Invalid CPU value ${cpu}. Valid values: ${validCpuValues.join(', ')}`); + } + + // Valid memory ranges based on CPU + const memoryRanges: { [key: number]: number[] } = { + 256: [512, 1024, 2048], + 512: [1024, 2048, 3072, 4096], + 1024: [2048, 3072, 4096, 5120, 6144, 7168, 8192], + 2048: [4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384], + 4096: [8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, 30720] + }; + + const validMemoryValues = memoryRanges[cpu]; + if (!validMemoryValues.includes(memory)) { + throw new Error(`Service ${serviceIndex}: Invalid memory ${memory} MiB for CPU ${cpu}. Valid values: ${validMemoryValues.join(', ')}`); + } + } + + /** + * Get default memory for CPU if not specified + */ + static getDefaultMemory(cpu: number): number { + const defaultMemory: { [key: number]: number } = { + 256: 512, + 512: 1024, + 1024: 2048, + 2048: 4096, + 4096: 8192 + }; + return defaultMemory[cpu] || 512; + } +} + +/** + * Generate broker IDs dynamically based on broker count + * Note: MSK Express may create more brokers than configured due to AZ distribution + */ +export const getBrokerIds = (mskBrokerConfig: MskBrokerConfig): string[] => { + // For MSK Express with 3 AZs, we expect: + // numberOfBrokers: 1 → 3 total brokers (1 per AZ) → IDs: 1, 2, 3 + // numberOfBrokers: 2 → 6 total brokers (2 per AZ) → IDs: 1, 2, 3, 4, 5, 6 + // numberOfBrokers: 3 → 9 total brokers (3 per AZ) → IDs: 1, 2, 3, 4, 5, 6, 7, 8, 9 + const expectedTotal = mskBrokerConfig.numberOfBrokers * 3; // 3 AZs + return Array.from({ length: expectedTotal }, (_, i) => (i + 1).toString()); +}; + +// ============================================================================ +// NAMING HELPER CLASS +// ============================================================================ + +export class NamingHelper { + private envPrefix: string; + private appPrefix: string; + + constructor(envPrefix: string, appPrefix: string) { + this.envPrefix = envPrefix; + this.appPrefix = appPrefix; + } + + /** + * Generate service name: dev-mske-service-0, dev-mske-service-1, etc. + */ + getServiceName(serviceIndex: number): string { + return getResourceName(this.envPrefix, this.appPrefix, `service-${serviceIndex}`); + } + + /** + * Generate topic names: dev-mske-service-0-topic-0, dev-mske-service-0-topic-1, etc. + */ + getTopicName(serviceIndex: number, topicIndex: number): string { + return getResourceName(this.envPrefix, this.appPrefix, `service-${serviceIndex}-topic-${topicIndex}`); + } + + /** + * Get all topic names for a service + */ + getServiceTopics(serviceIndex: number, topicCount: number): string[] { + const topics: string[] = []; + for (let i = 0; i < topicCount; i++) { + topics.push(this.getTopicName(serviceIndex, i)); + } + return topics; + } + + /** + * Get total number of topics across all services + */ + static getTotalTopics(config: DeploymentConfig): number { + return config.services.reduce((total, service) => total + service.topics, 0); + } + + /** + * Get total number of instances across all services + */ + static getTotalInstances(config: DeploymentConfig): number { + return config.services.reduce((total, service) => total + service.instances, 0); + } + + /** + * Get total number of partitions across all services + */ + static getTotalPartitions(config: DeploymentConfig): number { + return config.services.reduce((total, service) => + total + (service.topics * service.partitionsPerTopic), 0 + ); + } + + /** + * Format message size for display + */ + static formatMessageSize(bytes: number): string { + if (bytes < 1024) { + return `${bytes}B`; + } else if (bytes < 1024 * 1024) { + return `${(bytes / 1024).toFixed(1)}KB`; + } else { + return `${(bytes / (1024 * 1024)).toFixed(1)}MB`; + } + } + + /** + * Validate configuration + */ + static validateConfiguration(config: DeploymentConfig): ValidationResult { + const errors: string[] = []; + + // Check service count limits + if (config.services.length === 0) { + errors.push('At least one service must be configured'); + } + if (config.services.length > 20) { + errors.push('Maximum 20 services allowed'); + } + + // Check resource limits + const totalInstances = this.getTotalInstances(config); + if (totalInstances > 100) { + errors.push(`Total instances (${totalInstances}) exceeds limit (100)`); + } + + // Check individual service limits + config.services.forEach((service, index) => { + if (service.topics < 1 || service.topics > 50) { + errors.push(`Service ${index}: topics must be between 1 and 50`); + } + if (service.partitionsPerTopic < 1 || service.partitionsPerTopic > 100) { + errors.push(`Service ${index}: partitions per topic must be between 1 and 100`); + } + if (service.instances < 1 || service.instances > 50) { + errors.push(`Service ${index}: instances must be between 1 and 50`); + } + if (service.messageSizeBytes < 1 || service.messageSizeBytes > 1048576) { + errors.push(`Service ${index}: message size must be between 1 and 1,048,576 bytes (1MB)`); + } + }); + + return { + valid: errors.length === 0, + errors + }; + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/lib/config.ts b/MskWorkloadSimulationWorkbench/cdk/lib/config.ts new file mode 100644 index 0000000..264d310 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/lib/config.ts @@ -0,0 +1,96 @@ +/** + * MSK Express Configuration + * All configuration values for the MSK Express Kafka Performance Workbench + * + * 🎯 EDIT THIS FILE TO CUSTOMIZE YOUR DEPLOYMENT + */ + +import { + DeploymentConfig, + MskBrokerConfig, + NamingHelper, + getStackName, + getResourceName, + getResourceId, + getBrokerIds +} from './config-types-and-helpers'; + +// ============================================================================ +// ENVIRONMENT CONFIGURATION +// ============================================================================ + +export const AppName = 'MskExpressApp'; +export const AppPrefix = 'mske'; +export const EnvPrefix = 'dev'; // dev, staging, prod + +// ============================================================================ +// MSK BROKER CONFIGURATION +// ============================================================================ + +export const mskBrokerConfig: MskBrokerConfig = { + numberOfBrokers: 1, // 1 per AZ = 3 total brokers (recommended for cost optimization) + instanceType: 'express.m7g.large', // MSK Express instance type +}; + +// ============================================================================ +// DEPLOYMENT CONFIGURATION +// ============================================================================ + +export const deploymentConfig: DeploymentConfig = { + services: [ + { topics: 2, partitionsPerTopic: 6, instances: 1, messageSizeBytes: 1024 ,cpu: 512, memoryMiB: 1024 }, // 1KB messages, default resources (256 CPU, 512 MiB) + { topics: 1, partitionsPerTopic: 3, instances: 1, messageSizeBytes: 512 }, // 512B messages, default resources + { topics: 3, partitionsPerTopic: 4, instances: 1, messageSizeBytes: 4096, cpu: 1024, memoryMiB: 2048 }, // 4KB messages, default resources + //{ topics: 1, partitionsPerTopic: 3, instances: 12, messageSizeBytes: 512, cpu: 512, memoryMiB: 1024 }, // 512B messages, medium resources + { topics: 1, partitionsPerTopic: 3, instances: 2, messageSizeBytes: 2048, cpu: 1024, memoryMiB: 2048 }, // 512B messages, large resources + { topics: 1, partitionsPerTopic: 3, instances: 5, messageSizeBytes: 512, cpu: 2048, memoryMiB: 4096 }, // 512B messages, extra large resources + // Add more services as needed for your performance tests + ], +}; + +// ============================================================================ +// COMPUTED CONFIGURATION (DO NOT EDIT) +// ============================================================================ + +/** + * Main configuration object with all computed values + * This provides a single point of access for all configuration + */ +export const Config = { + // Environment + appName: AppName, + appPrefix: AppPrefix, + envPrefix: EnvPrefix, + stackName: getStackName(EnvPrefix, AppPrefix), + + // Helper functions + getResourceName: (resourceType: string) => getResourceName(EnvPrefix, AppPrefix, resourceType), + getResourceId: (resourceType: string) => getResourceId(AppName, resourceType), + + // MSK Configuration + mskBroker: mskBrokerConfig, + getBrokerIds: () => getBrokerIds(mskBrokerConfig), + + // Deployment Configuration + deployment: deploymentConfig, + + // Naming Helper + naming: new NamingHelper(EnvPrefix, AppPrefix), +} as const; + +// ============================================================================ +// CONFIGURATION VALIDATION +// ============================================================================ + +// Validate configuration on import +const validation = NamingHelper.validateConfiguration(deploymentConfig); + +if (!validation.valid) { + throw new Error(`Configuration validation failed: ${validation.errors.join(', ')}`); +} + +// ============================================================================ +// CONFIGURATION SUMMARY +// ============================================================================ + +// Configuration is valid - summary available in deployment logs diff --git a/MskWorkloadSimulationWorkbench/cdk/nag-suppressions.ts b/MskWorkloadSimulationWorkbench/cdk/nag-suppressions.ts new file mode 100644 index 0000000..9b600d6 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/nag-suppressions.ts @@ -0,0 +1,110 @@ +import { NagSuppressions } from 'cdk-nag'; +import { Stack } from 'aws-cdk-lib'; + +/** + * MSK NAG Suppressions + * Suppresses specific CDK NAG findings that are acceptable for this application + */ +export class MskNagSuppressions { + /** + * Apply NAG suppressions to the stack + * @param stack The stack to apply suppressions to + */ + static applySuppressions(stack: Stack): void { + // Suppress common VPC-related findings + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-VPC7', + reason: 'VPC Flow Logs not required for this development environment', + }, + { + id: 'AwsSolutions-EC23', + reason: 'Security group ingress from 0.0.0.0/0 acceptable for public subnets', + }, + { + id: 'AwsSolutions-IAM4', + reason: 'AWS managed policies are acceptable for MSK access', + }, + { + id: 'AwsSolutions-IAM5', + reason: 'Wildcard permissions required for MSK topic and group access', + }, + ]); + + // Suppress MSK-specific findings + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-MSK2', + reason: 'MSK cluster logging not required for development environment', + }, + { + id: 'AwsSolutions-MSK3', + reason: 'MSK cluster encryption at rest not required for development', + }, + { + id: 'AwsSolutions-MSK6', + reason: 'MSK cluster monitoring level set to DEFAULT is acceptable', + }, + ]); + + // Suppress Lambda-related findings (if any custom resources are created) + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-L1', + reason: 'Lambda runtime version managed by CDK custom resources', + }, + ]); + + // Suppress ECS-related findings + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-ECS2', + reason: 'Environment variables do not contain secrets in development environment', + }, + { + id: 'AwsSolutions-ECS4', + reason: 'CloudWatch Container Insights enabled for monitoring', + }, + { + id: 'AwsSolutions-ECS5', + reason: 'Privileged mode not used in container definitions', + }, + { + id: 'AwsSolutions-ECS7', + reason: 'Log retention period set to 1 week for development environment', + }, + ]); + + // Suppress ECR-related findings + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-ECR1', + reason: 'ECR repository image scanning not required for development environment', + }, + { + id: 'AwsSolutions-ECR2', + reason: 'ECR repository lifecycle policy configured to manage image retention', + }, + ]); + + // Suppress IAM-related findings for ECS + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-IAM4', + reason: 'AWS managed policies acceptable for ECS task execution role', + }, + { + id: 'AwsSolutions-IAM5', + reason: 'Wildcard permissions required for ECR and CloudWatch access', + }, + ]); + + // Suppress VPC Endpoint findings + NagSuppressions.addStackSuppressions(stack, [ + { + id: 'AwsSolutions-VPC3', + reason: 'VPC endpoints configured for private subnet access to AWS services', + }, + ]); + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/package-lock.json b/MskWorkloadSimulationWorkbench/cdk/package-lock.json new file mode 100644 index 0000000..e582d77 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/package-lock.json @@ -0,0 +1,4148 @@ +{ + "name": "cdk", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cdk", + "version": "0.1.0", + "dependencies": { + "aws-cdk-lib": "2.199.0", + "constructs": "^10.0.0" + }, + "bin": { + "cdk": "bin/cdk.js" + }, + "devDependencies": { + "@types/jest": "^29.5.14", + "@types/node": "22.7.9", + "aws-cdk": "2.1018.0", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "ts-node": "^10.9.2", + "typescript": "~5.6.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.237", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.237.tgz", + "integrity": "sha512-OlXylbXI52lboFVJBFLae+WB99qWmI121x/wXQHEMj2RaVNVbWE+OAHcDk2Um1BitUQCaTf9ki57B0Fuqx0Rvw==" + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", + "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==" + }, + "node_modules/@aws-cdk/cloud-assembly-schema": { + "version": "41.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-41.2.0.tgz", + "integrity": "sha512-JaulVS6z9y5+u4jNmoWbHZRs9uGOnmn/ktXygNWKNu1k6lF3ad4so3s18eRu15XCbUIomxN9WPYT6Ehh7hzONw==", + "bundleDependencies": [ + "jsonschema", + "semver" + ], + "dependencies": { + "jsonschema": "~1.4.1", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 14.15.0" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema": { + "version": "1.4.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver": { + "version": "7.7.1", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "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", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "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-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.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, + "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", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/node": { + "version": "22.7.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.9.tgz", + "integrity": "sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "node_modules/aws-cdk": { + "version": "2.1018.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1018.0.tgz", + "integrity": "sha512-sppVsNtFJTW4wawS/PBudHCSNHb8xwaZ2WX1mpsfwaPNyTWm0eSUVJsRbRiRBu9O/Us8pgrd4woUjfM1lgD7Kw==", + "dev": true, + "bin": { + "cdk": "bin/cdk" + }, + "engines": { + "node": ">= 18.0.0" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.199.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.199.0.tgz", + "integrity": "sha512-hAZHdb7bPHepIGpuyg0jS/F3toY7VRvJDqxo4+C2cYY5zvktGP3lgcC9ukE2ehxYU1Pa9YOAehEDIxrita0Hvw==", + "bundleDependencies": [ + "@balena/dockerignore", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "table", + "yaml", + "mime-types" + ], + "dependencies": { + "@aws-cdk/asset-awscli-v1": "2.2.237", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", + "@aws-cdk/cloud-assembly-schema": "^41.2.0", + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^11.3.0", + "ignore": "^5.3.2", + "jsonschema": "^1.5.0", + "mime-types": "^2.1.35", + "minimatch": "^3.1.2", + "punycode": "^2.3.1", + "semver": "^7.7.2", + "table": "^6.9.0", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "constructs": "^10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/aws-cdk-lib/node_modules/ajv": { + "version": "8.17.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/astral-regex": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-deep-equal": { + "version": "3.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-uri": { + "version": "3.0.6", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "11.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.3.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/json-schema-traverse": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.5.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lodash.truncate": { + "version": "4.4.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/mime-db": { + "version": "1.52.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-types": { + "version": "2.1.35", + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "3.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.3.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/require-from-string": { + "version": "2.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.7.2", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/slice-ansi": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/table": { + "version": "6.9.0", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.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==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001721", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", + "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.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==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/constructs": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.4.2.tgz", + "integrity": "sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.165", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz", + "integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "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", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.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, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "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", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-jest": { + "version": "29.3.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.4.tgz", + "integrity": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==", + "dev": true, + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "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": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/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, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "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, + "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", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.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, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/package.json b/MskWorkloadSimulationWorkbench/cdk/package.json new file mode 100644 index 0000000..a69d297 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/package.json @@ -0,0 +1,27 @@ +{ + "name": "cdk", + "version": "0.1.0", + "bin": { + "cdk": "dist/bin/cdk.js" + }, + "scripts": { + "build": "npm run clean && tsc", + "clean": "rm -rf dist", + "watch": "tsc -w", + "cdk": "cdk", + "nag-check": "node nag-check.js", + "nag-synth": "npx cdk synth --app \"npx ts-node --prefer-ts-exts bin/cdk.ts\"" + }, + "devDependencies": { + "@types/node": "22.7.9", + "aws-cdk": "2.1018.0", + "ts-node": "^10.9.2", + "typescript": "~5.6.3" + }, + "dependencies": { + "@aws-cdk/aws-msk-alpha": "^2.200.1-alpha.0", + "aws-cdk-lib": "^2.200.1", + "cdk-nag": "^2.36.12", + "constructs": "^10.0.0" + } +} diff --git a/MskWorkloadSimulationWorkbench/cdk/tsconfig.json b/MskWorkloadSimulationWorkbench/cdk/tsconfig.json new file mode 100644 index 0000000..42642a9 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/cdk/tsconfig.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "lib": ["es2022"], + "declaration": true, + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": false, + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "typeRoots": ["./node_modules/@types"], + + /* Output Configuration */ + "outDir": "./dist", /* Redirect output to the dist directory */ + "rootDir": ".", /* Specify the root directory of input files */ + "sourceMap": true, /* Generate separate source map files */ + "removeComments": false /* Keep comments in compiled files */ + }, + "include": [ + "bin/**/*", + "lib/**/*", + "constructs/**/*" + ], + "exclude": [ + "node_modules", + "cdk.out", + "dist" + ] +} diff --git a/MskWorkloadSimulationWorkbench/eslint.config.mjs b/MskWorkloadSimulationWorkbench/eslint.config.mjs new file mode 100644 index 0000000..ac8a755 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/eslint.config.mjs @@ -0,0 +1,118 @@ +import js from '@eslint/js'; +import tseslint from '@typescript-eslint/eslint-plugin'; +import tsparser from '@typescript-eslint/parser'; + +export default [ + js.configs.recommended, + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parser: tsparser, + parserOptions: { + ecmaVersion: 2022, + sourceType: 'module', + project: ['./tsconfig.json', './app/tsconfig.json', './cdk/tsconfig.json'], + }, + globals: { + console: 'readonly', + process: 'readonly', + require: 'readonly', + module: 'readonly', + exports: 'readonly', + __dirname: 'readonly', + __filename: 'readonly', + Buffer: 'readonly', + global: 'readonly', + setInterval: 'readonly', + clearInterval: 'readonly', + setTimeout: 'readonly', + clearTimeout: 'readonly', + setImmediate: 'readonly', + clearImmediate: 'readonly', + }, + }, + plugins: { + '@typescript-eslint': tseslint, + }, + rules: { + // Disable base rule in favor of TypeScript rule + 'no-unused-vars': 'off', + + // TypeScript-specific rules + '@typescript-eslint/no-unused-vars': ['error', { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true + }], + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-inferrable-types': 'error', + '@typescript-eslint/no-var-requires': 'error', + + // General rules + 'no-console': 'warn', + 'no-debugger': 'error', + 'no-duplicate-imports': 'error', + 'no-unused-expressions': 'error', + 'prefer-const': 'error', + 'no-var': 'error', + + // Best practices + eqeqeq: ['error', 'always'], + curly: ['error', 'all'], + 'no-eval': 'error', + 'no-implied-eval': 'error', + 'no-new-func': 'error', + 'no-return-assign': 'error', + 'no-sequences': 'error', + 'no-throw-literal': 'error', + 'no-unmodified-loop-condition': 'error', + 'no-unused-labels': 'error', + 'no-useless-call': 'error', + 'no-useless-concat': 'error', + 'no-useless-return': 'error', + 'prefer-promise-reject-errors': 'error', + }, + }, + { + files: ['**/*.js'], + languageOptions: { + ecmaVersion: 2022, + sourceType: 'commonjs', + globals: { + console: 'readonly', + process: 'readonly', + require: 'readonly', + module: 'readonly', + exports: 'readonly', + __dirname: 'readonly', + __filename: 'readonly', + Buffer: 'readonly', + global: 'readonly', + setInterval: 'readonly', + clearInterval: 'readonly', + setTimeout: 'readonly', + clearTimeout: 'readonly', + setImmediate: 'readonly', + clearImmediate: 'readonly', + }, + }, + }, + { + ignores: [ + 'node_modules/**', + '**/dist/**', + '**/build/**', + '**/coverage/**', + '**/*.min.js', + 'cdk.out/**', + '**/cdk.out/**', + 'app/dist/**', + 'cdk/dist/**', + '**/test/**', + '**/*.test.ts', + '**/*.spec.ts', + '**/*.d.ts', + ], + }, +]; diff --git a/MskWorkloadSimulationWorkbench/img/ArchitectureDiagram.png b/MskWorkloadSimulationWorkbench/img/ArchitectureDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b2bae8c02c044467e5069582233de239256f00ae GIT binary patch literal 411716 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 z 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%0A6V%)rO-xl-kz#uiXTg`0){Zp1>{6dLq70 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⪼r{`aYQ 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%0ADy_w;jg_>;)BcUC)!6u{vA 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%0A|)#uFs`((vi{pwITz@cqHoY8?k(Z}mn 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

X6P>XtoFa7~i~@%z48Ixf ztb!ogplldKrtOQ5>&$Mv+0KTuuX>@XbDBvABu9M@=4oq_56%V{zGAQ7*>N2&k&)%E zPJgmu;jC)lhr3LFAlK&vWX=g~3CG$mj4UI>8M1w<(WZr$!RHaz+dLOPoe-I(V(O^k zRa!%Mt^mMsv!03;+`sU8$EX8_0xcTJ-=GR5128OOWs z|LJ<5(1p@WwP9ds8_)&iE~6PK8K%WRHgz}tRTeOpNbl@!nQT`Xa`)C{7f6z8JWO!=x7(Y9HkMuekozGEZ@RIS;r=j5XI%Xy}QqAJVgu{F1OF2Pdk~Y$OLc_viQVZv{@L*Xu zI{7jhlwfRCCdJghZj79(IX5F~N3a$lPGrff!bQ`)yHCpeWopyxUuR9SZyaS=%g((N zsrr(>%TOcIE@k7KH3Q{wa^=YurwU2euA}vO!IzTDmbD&r9Xk=7Njm#34(bfK;iL;Hous==y z`qet}MT~8V5fmSh6g!Q@3i35{FLBSSI{(iJHdJCk9i`j0^s2n zhdg~m_iXYh;N6Mm;~vxlXpscl-fS@dwwzfp>Wh==cL4VCWjsHI99CCn|NJaDYX9|y zL}|@23viEmCa=5O0CAbwXLiI{4K*INT1G#0cThs)a}*uy37=>(5(b_3-#_tQ-6QZg zNezC`tDeq*bK3F)vNQ!|!}oVK?E}(Fd$k0W$fcj6-NU0eFMO@NTS>M5WezvMnF&Fo z@BSmN)W*e&pv02r=2%WoLE{W1ouQgW|182%W^aXDCwnSIf9|{LD~uPzqex}~_!vFi zAWLqG`oEdt0QQZU8qY!AKLk#&!x;BX%iMA7(-=>q%Hpwk^Pdq3AJF|RB7nW%#PR|{ zrDlcI-(5CIZBQZ^7+<=RrSf?*821!82yt~#EOS9AS18nfHlfeA0I|YSjQTEfhC}yn zMQ|owRh~U_TAyiVJ8_gmFp5l}+LV=x0jzBw0LqlXFp6CtKrGDl99N#JiQfr8s>Nbz zP3FUYWe#4fdQwb%`m!K4&~}ZXZ@1{0ba#MaoeyS8?oec!XoL8ue%e0O8Nvtdvr!2f zHfVihE~J?^TD8`CiQrygwCF4y64=A#Lq(Iai$dE!^8d^p?QTj&2}S;`V5IVTNH0g7 z<37RmMZ52Gv&{Ran`OxUYnL^qfw1a0%at92lp#;`eauUsADkBfk6_0|F*%g6u~5uE zC5W@n-aim~+vlq4chzZ>}jE3#1ppzwf<#H?k zR``g;qj2bQIieA*FEuZeZtunPgOKT9H{D=IQ|U7wT8Pp-+!h$cg`a*@h<5zuhXlsc za)k2K_sXz~Hr?`pUoR(%w$|LN9yzEs&*Qnpmjd|s)qBratA?`zS0ck1Z*=1|6-GnZ zPSYI+V1P)flKp&I?uLvTMtTxDUmchgaH)@4VzI96${E`pjxcQVczUMGR??BP0Vg4) z3coE1qyn%%thM+(bg$r?op^S>`+jw0^-Qq!=t{#wG6gH0TME>q=hoif9J_bIw!>P}?62~aA;%~Qrxc%)e=ZMKBNy;@{ z5E^C(o%Y{gYWSCEt+MVb0AT(PjCYyY=>1s}&s&Q-&GQcX1R!`o9SqEAZCYFLkSfrV z6yB5Ml+cy0-)mAiJZj7Hn7iD|d{K&VWtRw4CYzR#0Ohaa`^7D0Dd7;C zi&>-_`j_cUd)BEBzmgGNKKA?KyaZhh>dA~xYx?&rR^lTL-;$nWS*hs!f~ZO!rt_6} z8zU!h1DXi{)ZDV2!Q?fiP$Eg`HhK{8OO`HP#!$kd!qXsQgB2qcDVk7r@Hc_TrGIrW zj7Ws&2@pE((hM#C#O`0N;2%_lGL&@tCI1*FA=ka_{J!vg2)?0Nbow(PVpm_nMGKoV zJBU@Z^ds(z-ia&;DIq}9F0O^en}|0{dsmM}ifeM=WdxYAzdbebc6vcfrPz)vwygbP z|K8@{YWCeNU~^4k!^PGb;eO3gnuxy7%YS8t-mVsXGvC|oM>Ki{E_OC9!9wqK9R9Dk zx4!wGD?kNx1wOHRjZkzIlNNL|h#bs`YsX@lr+JZNlAiA3ePR2cFg9aO^39BbD(*?1rE9*=QEgW}4%P((bBDVe@V&C$ZRJCT5YV2%pt!LgzsJ>J)y2 zAs3>=oKc8i&IsHruFZ;LlW~U|K?dh(^gHH}JL#CgTO@pxuT)Q}{a@D4R z@xd@>UA4#YbLZNq5(QYFZ55Gyp1_22k+%f)NZBu%##hu8mp3skrpwEW4Z+BxvN

  • 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%0AIgj-2hl>0I7!1Bp6{pS zLPfw;T0cpRg{V1tN>*eV0?aamOz5}SgdbcNAOobhxUgKo*o9hM1U9b!>HPAldLpT_ z>`P?L*%@W$>XW`48mcYNE~Q;%O0VgI1Te?8`@zlK5#KShGCcRUzV1^Nis5$;#+U;I z5abpX@bO8?uZ`}e{|40TKaenL*E zNg9F@|19&LbFC*dXKm7Z_eIpG^`B2KMjlx1pTR-&?NZi^~;2!?F1lQgoaV| z`OwcDMb*;Qf_FeQiFY#C3V`I?t3WXFVW`~IypG{;xkhCh+uNX^&Je-3mhnUU8;(O= zPsH)*jwCnj1#YHxu9n6m_huGtGO3`db;*nJn-l-GYB=twV_S_6=6n*pRu)shFQu`A zoaTPJ1C($H-uR-|&eUXM@eV^DI8Mt042IwXq#D$jRR)1MN%LwQaX~J!t@F_j7r}Jh zAmrnsDT*``r?e>XF!oPM)yv|o$#4#9!s;LFKiz*}o0k??{Mng0nSI%QI(E*ub%IoF zvmj|3`SxtKgyk?b^5Z%05fgWq%w#O$zC{QrB0RLP8%HMK^+pgGvZ17Y>=A>J? z)2&ty9BE|&N@)Oxh53S`YM83%-@9A}yaJ!FLNv|tCJ+U|L%6P_7LY~ACrnxeD?J7? z!v2^^RhN%i++HoJ$rUR$v6Gxy z7tu*Br#B~`Xcm*Y>C)R~7$lUMi_Z~cy~~6?0Xz6Am>ijE3M-i?f60bbDQVKkTs}VN zhYk8i<1qEhasw(WKld|Qr;9ajS5{%x6VxC6jGtO?e$OsII0b-00>%q_^sPoHcWZQR z7oR?73BtmHd*EO;`d4;v7!c-_?(w5cYJS)TVv9A9Yf`@y7zy}l2!GMVGlLPv429#C zp-dGqHna+l4rF7=Z#Vv_Ivmsc(=zXe066ULHiYh9FjsA}kjg~bJc~yOMJ|hQezV07 zskNya8ngtB+#fvr3MBk?XsKSJJC8~sCd~R_VeLpMq5f;T4f>Or61H@&!!JdboM!UO zaSh*M+y@R~Z=CWi_skQc9)}F!#}FEWI6h=kE`_erH6a>Dc}(WPD`{<~pBM7y;ZI;e zJJ=oKqNy#ql|oF{QKQ+Ff#-zps58qqTEHSqcdGyx2vf5%<)KQX)u4SJngaHztrj(vUury`z%4e=P3PO&%MRO?%G-I`L+aMsIMc-aM1Uh%(7qPvo{d}?D|oT$O$bKd~f2TzkBK{Zs1 zB=_iQi@pM!U{i4uo@U~8c-XJeSC!IO?t5ke@j? z>(Bolfk#5sORrt4n0Vkbd5y>VEkBgK!A;ZD3`frB;+Fc;h-DxDBV3xY8ktt@1CV1` z*rhIee_I9~d@r{5P7@9#bfZpyi*wP@>%doC=<)%|tV6)X*i#vA3H~Y1n1&%n2 zM6tqDkTzRV7~`{$*@=65HQyHs=y6(dhkn0_iQ@y1DIBQVV!QEkxrTrK%)&aJnL&6w zHdNQm+|So87vMTyhA+T<`W4#z^S4rWICw2I;vy9w6NP3-XkFh(mM_=zbCLYt%;iOk z?&!d7CBLVB#Lb3j5gDcsXThswK#5wSJW%CtMi^GaQ+E( z9*})iEEGiCZ(8V%?1rvBID4QQq7l;5BqUKF(TY!XcQszITa{d^yKc2MqXbP>>n05i zm{!X@hziq!Pe3q3t4jui0c5|aQB`Fiq-sBrfjmSsIh7A+fk##A@JOPA0ngw zEv@*aXMG{KZa!1R=kZuE8UJCN9%*efN8Xp|K3P7!sGA)~=y zr%Tt1v&Fab2*XhAuu|c2V*GaH%cbQNPoqv+PKb6pKCh|obDHQ(csTZLt|Pmg-xy&L zjh*_YY>AxE4wMTuJaoGrwkx;h{hP@G5R%o0oCg|^th@zE!^TUAd+AAu(rob*CeGo`XR*fWJ3x^V6bvq;aDR2)TmS@Rv zE*}dX;br`$i6M`KLGVrT9mAc`hLnYul!5WjlkzVc8IHG3i#p!<`Mv2NNPwug2rtH>@XS}v5u)*_*D3>S{RnIJJi7Yo7U(j(A-8rZQ_$eNpuCIxqW`UPJN(b!h#-% z<6?TYB8hCIfeAx79?$a}??Lbf>b6HhRr{^3YmPtX@gC*E+bF0;h$EIo=1_YmTTuLE zEaQN}|FEI!3_iAs%-{k8mJ&r&dXDnwU(?SSrpqDk#K{y-sYo3Zc5y;27+`x7eHQHJ zJv!r|*wFZ)J`m~eG~O6S&E{p1y>uwbf(t~sNn1v-#GG0GLpObepi4$0*2J;4`RVfm z+QZHhu`I=JYUeE_Hl=F$YoBv^@Yz`ITAFG}DQEf31aIUWEvk|(a|*|B%l4FK-^ZbJ zL~z=;wjSoU_`4@L15N1)F{T*JFb+V_N|8Y_UzzML8)6AFm|=+YxDXLJ;e!6QU$|Ni=yqsIrmYMS39g@q2OAN7P>^Ge%%uyY-C`RZ89Fl_eNYyOTq5C|ZSz9-CGT zkEMiLn65a4M59kF`;}WwweHw}Mb6(r8x?g7#5Xq|>BB?qMy2a5Hi9sc6DNZ14|Y~m z)s#te3xko#?o@z{>DYm5LykJyXSIoI-;v8AOsNzD|pMHm27f9>cPXkKqZ>WDSEemr=Glfsa(P@3c&u8zL@JTu?c7pKiy~ zi70d6Lk)@Ud1*rK{U5q90e+Zl>Zlk5GkYb4&}yu!<7^QlR_}g~eK1>l*UPp+fY?LK zE3{2gu)uFtSYy-aI&|$rY(q`V0s;F`mX4K@!Onwj8A?RcrxnqTn|`*R8j`j{ouVTj3d7B>~$f3`rIhY2 zl*F}p1kz^MDK|pj8K$QpZhy5enCm<$b3gcZIO@@rn^LU5OGd9o0BN}NFcWw3`;0-g z&IcKEM`|j>TnSt=yt<#3^gqM}17BGi$ujAt-0r9JHza1x*L#SYjD(O~LA z-6H%sCsGh@IAfS~%U~&o{0G}YW%tcrmCnEb6ag}EJM15o#~ZE-3??jSdClO@S+hKV zc?7C|otXlEo!Grc?0C@*3Ed)}rMoV-m#?(+X5$#f_+gb8ZR%8o^hgnKaO3X;7 z2r2eYxEpuMp_UYEXM^exCoYx&)zLXiXO{rd;)H9`kwkA4b*X(VnNLIEYC2oZ791uJ znS*nP^>Q|u={ZXs%eUry*#8`7|ICR(J>x>aE5N)ma2R)td=YYKRv(^tBkbm zpNdkrsAamG#o93Y0nQn!@eA$s0ckXjIuC0`ujX=`(g|pm zC9qSiH03-QOAL==o!1l$SWpw!Wd&;zi0z3i1Xhgh@UbJ75ft5f2`)93^Qj>Q?O~LI zl1?~#Z@(7*Z7SL#ycdeGPO3eZGWza;gt}4PKhTyPm3Sx6p%GXQXMCNixSu)OUZ_Bk z$sqd9C8`s!!;vue54|=n?NI-E;5sbZi6J3yYBt>{;EZOHhb_QBpzhN7aWCD-Abd1@ zVpPQ6OyHrbYJx}0P$l4?j9hgl@GZvNIQL|vu^IieWRQtKrezmEhBnfmA zaPgR)ZfE2!?tSHdVdUg>@?JtDbzsl_VET{L4szPA4zAiCiN&eVz$U2?`_!o1(WgUz z%l?{s7Y>{ff;OKVdLN3m$6~~R4O%bQX8GT*U0)Xo($p_~l2OkU&5|7PY$TE-a^j3H zo@@C6n!0XF0>2r)pPWw2kkO5=h_*SasLtxgV_C&C$C%iQP1vR1(rb;FDDgXta(`dj z#-#x$)vBk1hAO^mv~J3qK%(L)C~O83*S?i}+2L-mx)$-?$bOu|JN58ct@v8qo_#Uu zChKs*Y0r5xe0!(6;$fa51``MaSS3@asr+H^De-}N!LiUs)f!Dlo+^gib~dl9_||VV zs7G2;d`y$hn6nvP-KtnvyeYdStEAswdlq5ObZfnKLd#(~i9tY;{YzGNM!hJd%rd%F z$`>2y(fkEeXIr<_JP%1|1G0V1K!4}8QXy>cb!_z5c( zjoF8>&IUTW+%LZVzJ6@6VCELJMiIl=OH$W2Z`Hul(iRoU?k4s8%DO-8#6o@C1gj-E zZVa>n3h=0k2m%Om5v}2#`}l|ei`iJ= zcRBUolM9&UDfVr*H5Z3mZwcon<-1ugZ{wg%W)cD{h-j*+_WX7Bx@PvpTi_wEt6U+T z*GJc*?7yc?s2r;GKfU8Wa;RNKy#Ks3D&;ZF`}J@yo3j7EVT;iN%)33Ye#|Lic-NEs zQ*_>`4>jjf#|P{?>>s1S#|1UMc{GNEg@jb3j3Np?ntzcH>E#fx3wHKMWznzC=-t}R zGINq$vWl#sC-IgAL|a{Vxvxi>e`$`AeDCy0?>fvaG;?wHaLZCK5D*@w#b6_-dk-nO zDSrZ}C88$;%holSocqwM$8`GnrC(UUu|xD?gr~PGWs@qykt>3YwZpnlDzQ>(_GjuR z0mLTiMJ``FhelXymN0s*C4MaY$4Ta>qrk#^)$r-m--f$2s@K;l{i`mbJYY)9t(ZZI zviMY(&7ZFyW$-u#5joVLxu2Ne zCJFVd2%eefdeYdnkgtOq*fum`-9Mh~C|`e&xzu#*c#PSfke_AxzUm?!MD;gI)H?-| z*ZF$&kUlDMa5zCr&|59^LWRMo?7gseie0&Ea6^}su-vmfaD66Ulk5^WjYp8i*Sl}9 zFG2Ar+5U90#YST`_`|)?c~kUTP1`PbAEU-sT;L{GwD>Ki{MJ2_9%q03uqPk#`Yu!> zbk+aBYV>-rJdEwVbCai6dVj%I`ySJpmh`vax&UKC+t~hPF|WJQJ{Q8Q?0xXKKX>c? zcs*^zR_i|;GZ8}JWz_v!M)WVkM&2d)BMwH=jq`<+R_a671MJfqNAGQ;t*BDpaJrF^ zW803z)7yOSZMo}C*x?wE($uQ#t$nsv_tN{Ab{4nDB*3xYWvQJY&B%L-W^$1HCExY! zrUr}h_K|H}zsCRX<9@({XrsR0{N%*w`|Hn+ONySCO4rNht!}@^1HDOk!|SsB=2|~h z0q@bM{jQiA-0ho_bVH~quBG?oKwy?NqAVemYlgq%<(R@q{lYW-{oCeye?lr#t$$cg z?;*xkch?0T8*56+j((fp<;;-2OElI7!FV#2$Hv>l)0>yL>NFzMJ-q>EYC z&o{oI20-GoK42DhyM@!l6LQj;m*nijnwe0B-OI*I&BC-Xz5Bf)tQ8UET_?hr&hZg* z#0dOMnGQk?0GOXFf45MI86JzBwZ_LpM!up0*zqKMDW&k#8|pj~{pitp}wOJM1Pj9Gnh*v-*c^7)A_JSrw-8Ev@~-c01&l_|Oe52e-j zBR+k|AL%RSE@0+wZ>cu^njU8HDPti`It#l?C?b{U;?NgP-b~fT%QDdwoqb}JwVv$D zGZJAz<`55~rre2inKI-p=p0dY%xhp|d++VW2gYxAPvGlTBJpV3@;+o)3m&`tqpc=h zShKV!$K_*hWkaM1PDxeCd6FC+7hUl2yoN2Z_|=hmNROrVymFH!tvS;Y*6c`pq{xB& zI_q|NK)t_-^ap0y1HLJSHJC_YIx;kEZgwGbJEvmB{)tt?H@9WFNkNg7sbqK zH9g&It#`Kn>&mnF?+yc(G3jNK#z>o2OTe$28(p%ojC7+khv&y?QeXyR>1Q`tV{T`p zKS!}Qm5t>D(n#obHEr`%(TEZ7Gls2@JTi-PzG5q&1eEF!hSYPpkoAZ@iVK^7AJc@UzcS(jEnCoLYMjG$ydyJe70jT4Z;*EFp&72t-_ zr5NeSQ~+Y;%SjuYQ;q6zsz@q9v=ZLZRc>1RiO6syGFs}VeL7T+(C0N`PLmbo=7|SglrM{hynLTO>Czm5G(e$G zjS_e>!L?1mQCZcZefausq`>U#?DUlPt2{5U$LH^FZtVvRC~)*$_h?Q@2!o1zffeg_ zHD&2;dH1Q;Pke82YH|TPhk=#)?mGgU3LA8$hWhSdsQ12`d*u7IoA))>Ys+1A3if1J zUPec8yet~^>VXh$h)c&)@?NU;?Y6p_yKc_ksZ~H2l%pxRw@0pdzHhSKGWC}b z-<^FJCnJ};eNJc5=SQ|wl-jP+uCpik2?M3i60hDT40P#-23LBnl+gKhI`QjQ0Ed>y z{be2$WZRH#Sbel#qSdVd7+GZV_jr8k%q`_kZKsjnU!Dz+ZogVRO!eKkMAVx~$M8Sf z+Yg?sVF`RWAxJ~qIPAHj3aUp3Ac|R+0&XCwp=ZqZP>VrxN{-L8y6dRcSJeW2+Y&R5 z#!k(Oh|3ZVm!aV1xC80hRJIkxx}UBcdB1ZHzgmxws${{q1q&}d}N2ylI}o?s+BL_&tIOCS&YQXDeju$}uvRGXOxQRJ;2y zh4O^viDa5q^QJ1Q5SuTIO-b8_X}XIDr|T`k??6L{yw?n10K5NV~umn?F1*#QW>dqQswa%-`kJ%t9HJ0tC!nF z3%lW`3AZ2bhXEM3zT5x)S5eUbjpX?4xldK`ngT@cdPOzf{@ysT%=-O7q5Wcx?7GD7 zj2q=1%Utszj?E6WO^KI2F#f(@nvxT8Q^~;@IbsYl|J&<$0*8nmui9!W$tE0RrkPQP zwTOMK|6zWfSt*(Wb}on`k>QsT*Y>jl+i=??1M5+U!gODQH7MLL9}rHZ%77Zfd|*9F ziK4Nla~#a4s3eH~ub7lgjX=Y-p3`eT6gL!yrj>vWNkS~u5Kaa$x~Gw9;u#ec9l7`# z(F}Gk)%PGdF8f0^s_=J6PtA@q0+Z$azNT-qIY;y2eO}f+WIqiM1 z`opL1yXQCdQdb7K*-_N4J8Zh)M=IBF@r*b@Xa>nKAi;zw(HuXqn8+6pTPC#EzR!{1 zukrYhu&!}&A0nzU<&1(*ng^G#s9f|{{Cp}U@u-nlf&pZSC*fqD)AJNZ?gZ@N+709$Io;*RU4 zTP=1r9N-}P*^#L?@C{{BSyYgg81nzU051jm1)^^t*KtiYh6j-w^8LA_kkafw$3B6A_Lt+K(Zk|0b`O_`0MoXGeXICBM1RqL!!^ zBa128%#=^<%+^B>Gt_5cM|@Wm{l`jDG`WMe)0#o4*YHQ#P3%yNM`Rbl0K(_F3fU6b z_jMo;{|p`h&@m;{x;2HE5yeoq zGhY)t7e0Yt)`q%iMk%bEWGj&4d!8TaW#DK&LPX_65WJGYv^$yc;7L;#<_$5rU@wOw z-16-B2Zv#@g$kBZ7d#*&IS+@vq+dWto4~#Tlo#hXctWx^a~{DGbO)7|M2Datl$MCbi03{zZvO#l?>U^2dh z?bCcx|6pFo4g`E_r*v5X{q1M8GI?8EN=>aw`?|RVa|r*q1r$6|#^(&n)s$D{Gt|*3 z!y+vPnc=ugjWXpKzlsVmE}@=ol*rwDIuwIzL3&3o&#z>G0nk5mFeV0z073QTjX?M( zhQ>5&f^(FdsDETow<$}0mUxaCSibpR=g`;DR=e{%Q|l(pN-p^C7G??dI*! z!=lg>p%p#x&FD!O>g(D2A9HLFO8s_0`&rMn2E}|&@rkHy-n8>EML4;5v@<3VAka_< zEXG9O;mu6JCSKV?T#hhZ048(;yIZif&H%B~CYR~{{va%AS+hv#+fJ8n9M<6aTFp3A&)=)IvG& zSop@S%g)Xo>#%_<(P)lg0hi(&Uveln6ovj+TII3(`d9h^ZvWI1uDDIEwWfAo&=(L> znWK4D-SZ#q?FcE+in>11gF(LmQy!>`g*vvYTCElr@Ag{@w2ouA%J?v;c!mFd*ssSTkg{k-598ACr?y6 z_cnC&KPyj*zW<%~K3Z*{%ws|4Yra^J+RDBSSU7o4QP zEyTAU&=u^GU<~jN@VpbuRLiief7j)D?os=r_Vt>tM>p4J2A*eb*G2dcLYKPbKjD zJ#ifw@z&OtS0-}va=kM8rtkfWhC52uP4ZvU!m0M(xqaH)mihL%UB0-B)Ls@DO*x`lkpQEGTif zOtXi_oP?IRlGNXw@&IG3e`MZV)CSU9NbiqtU5q@TQh859mOM-(m0U1#n2OG=^=(|dobjO*q1SnT7akP}MqRjeQ_(#gZXQ^X;YE&y)L$$#uYPLi=g>_N9cO(726wR%5@D)cK zGY2>2>-j1xPWEyJlZ$Z`G_B2IQ=-a4UrDi_(C@wkZKoU35mb4|JIobpKt??SBMkfN z_$mP#q!Zz_H3Ph?HKyw6PdllNX`r1^nl=*HC>wU9u#GG^N65<1u4Ax!FFE?33j^ z{k%TQYww9I`?dLv?%{pm|MDk8(M%trFmqn7VkWO`L5RG6oD118NsmkJ;>TjtjHIxs zb(@uu_*CIYzTn^OsyN@0(_~1bgfOJ1oYKBo(mbV33);=gqH=%Oq7??NS!_h=d#acw zl5vcFDrrtDVJ_lXi&D0Tb{v&Hk+^7~Yd*pz{Em8FckkyHcT zqPt1s-ZzL&O}UJ7EUlC?G6(R1&hZ49ZbnvRX3rjx6-DFPSL#%)IQ_DXLK^7ckvGJD zxtOscR(X6F30Dg7jA`F*xv$JHosP>$K-*{|P}%eTqA{Ikcmsr$qpr~uX|46}o`=Z& zs^a{b!WmLe;BdXd0H*!$(MP1nZ1;}6Q;5VrV$8_mObjI*Hf!js4$aKzFh^7Wy4xAN zkm_Qoi3~7)qvK)86}mk!DEsf$rgL51N$jr@7-$A;BhJtxmSLoy8agMfAk=XN+^Z(g z&vySgalONv{lR2;Wyt1xembGmdmndQNnlWsidLd6bokZ6*`rP9GT5#-bLWH%b=uPMyj<1m@ta(pz)R27ljg-pV|y80o{TZNmRaZ) z)p}^rf)7_hm`n!PyvT^E$=V8e8 z{Ak{Irqzpr($g@iz)2m&1jZ+&SRqk#VK0iu`|rHz{hAUM*F=X5tXo9yikSiZc&_{V zKmY6#ywOwmU$-Yyzdx>Xxz740jQ?2HXXKGEFkp#6{9@wR`3$5hUh9>^KYE5!qyBnj zi=U$~X4vA5avu73-&Y4fCxqe_L?m=|71W=E4b&8G7kYQpb<`j@8y2|P0F|+sVIkKnU&-Ny*@zEvSV{Wg;yB0uRgn17=lD0K2-<6o$kkbgtU;c%iRTqdL` zJuMh%D}x0>pd}kV%wo4qfpI8h<>B9BekNUE;BDI1EMIb=`n{kR=?j17)Ws$Ke*nxt zGrx+|)~f&Ey~R5azfUe5xgS1^`|-_+MKSwoRvq+(h4TOtoWpyFbi5{b>)Pr_ArpVM zFecR71dJ_(Fo+Ah6KE$k*?=*|iFq9r{-5{#77PoHq;R9`qZ&wWy1EmSDYS zx=7|7g!#dZjb?oY-gynLsp=~WYrm9x-ny0qMq*^~7b4Jk1PWpQ`n4p1(fK}0+);=Q zbRtBz%8$31BpZy_C|XEjvW9j5KIUdrJ2AyM2`vhZpR8Z3InJ>Vwb)jt`!HWW9`@lh z*4~uw?ZbzU1{SjGc)Q5{Tz!CEVOJ9XA6E90Wd(#2*7ziPS|i#@+g%;*ZLVTqdp-Oaw}HR$(BaV z7-D@N@1Vw+O+uO(p+z{(MaG(!UBqP=XwZx!=8>Rn3V5klOg#t)Gwe)0k<6hm?U(TFzu^Rpmz5Lnav*fL}|14KuevbTL;shlnHrjZ7`QeWy$i)}m zqU8<$)|=^jZ#$*<+ev3km-Eg$ zRdyV|eKdA0{qBMeM?$XeaSKfS6o_PKxnR)&+`LF-_lN>+!Y}K#WYW${h;e|Ko zV)<8RpQ@o7haIx7Y_;_!YHWji!EwQiU&!n4{ZY<1{bDWeqfb9qvf&qJ9wRL)SIMt0 zx>0_9+>!G7TkptUKm0(ZP5rqHlEHHJj7#lubLPtRSDq*T{pSx=i{sWCF44vE<(J(ew_bOt zlDfxFI$Ngv$MG_F_&_;r(uMNN|2Rd=4T{~b5qFyjoV$n)u>_`$%xZZ`vEz-HzNWKt33j+l2i7(cRHev37wdU(4 zSl9rJ)yVj7T&}zIzEP_4Ns3emi67%SN3bqelFPn%aR_59&guGOg)D0T$%mBG&WjI3 z3*KFXx0#{t=9otPUPj(oEe-0u08K9P^P z6XV}clMYNl45;y4JwU&!Fx0Vbv8*;$SGT@EU%4?I3W+s=N*KQ|YT+pZVgZCb#F|0Q zo1u+1;=6%0gQYOV4nB7O;q`#$ewJKgf&Bwbp;|xC371nF^fICJ0Po zOvmAZgA(6cl|4@7_n|eiPBrtO7rtB9L zq60se_h)(V-J9gZUCx!!neYR!{cyie69q8d;a=~DGhlb7sdc4(AT1oi=|0R?MRQxo z;$wncaU2jYvxOu+G+5;L;%{(0#o`EzyX``$o&a1vQyu}Kw1etaT{lmLrxf8syXvSD z+&1A>YKMu2V#mRc?F4y(T_Qgno*8CX9L0nTb~cx(M}#fzLh;wJNLmt8+bv3aL^%9o zJq7bHNrx_I%Ff25`#Fs7#f?buhftn46(lh6jdxw3K(KUGi|U)$VJiFB?ZBeTEsR># zFiMBGgmhG*3^vSfRfo$>S4e&Ltc> zQ1NaX?zeH`hew$wj335>Ye6vLof#;D)%XU1@xAYTN3Op4xANrUv*rHVoyNi$(=U{D z)*B;7A95L3>%L>_+pnW(?dm~_0HclQYi^dSF8`(M zGjaFm{C~aowwyG1hSb*9Cnma@njv!K#na`g>u-|_etEilZS#$Ej=1u&-^n+=_BGjT z;|=AS8-J&+-~agFWBJ!@w^nZi93WrzJ78D&!R`~45JiX!$PNf+;yClv6P-wAL!%sf z${F&`yYENmk30Gh`D*bTIb+JNV3dId&n=&{5NS` z*(y_~T@i({;C=XP!DljK`nB@*JO5AbnRV5L@_)u}CLet8iOigNo7{Zu#ftS4FT5ak z-1D&9bk#-j<(KoLEF{3>_8Vu)x3>I->SKVwIQRThWZ2MQi8&T?3C6mc4_tVYd3X7q zOfWz&M>*p^Ha5Rn_N5HyH!v#G!cNi}G9X+R)h$wTH#yFcy(t-vGNFY(PYW6elUyn8-Q+0wcR+@Mjj==&S^Wu-+MeK-syLq7Z_XWk1;1u(_;NlBuH#Y(36*+FnW`bx8}YoxOModh8{n0x;SYmGB*KGibHltS(QhEmu(rXoQ3t%Y=x69;VVv694(~ni z89NkW=FSVzr7CvB4SvS_f(;FLwn23R-$)bC1g4n7fS<2lr5;)>O;KBIoTz~D(6uys z3J&}Zj|nI436iE>!$|N<)Dhz!{ot~Mj7wPK8H{feo&iz^p;Q>RUo81Z?s#*ioU!MX2_2HeM})r+0V1$Q1PWpQ`jsMqvBoZ1 z{RM^Sz>gNZFTa21204BAIEF7oRD@jeVJz0Q)T{fpvE!!ukQVhap*BB@ho!vq#ozFO zU(~QrcNZd|G|7lgLOI-XSyZ94`o-!!5DBFrzkBT*{gC+{0Zue?r7q-*Xs}d(SR9*C ztU`pf^E+rPgu)!m)!J9tkM#_kz#A6nVkik4=wo3DEHl`?OObc9cUa;=)#aV z-Kd>kSic})m{}H+VS|Q8v9@R@ygAab^C9!FzvXZ%pX)VgH4Q`_mqSn`EPu{gs*e%#P?bwPo{T;f4;+3tUIZs^#AVSzen zx>1k(z`_&b+!sg1{V=K#vSi~~Q=rx(1?n*Mp0EQk;t)6ULzXmEu8O!K3rwuYjxy6i zo@u=ol#7Ke`V~fzACBUPxArKMC|gz<6=p@IAkTm_5m_gg>UPD=FiWSuwcT%wJ#*d`^0e|zI_saPfOqNa7 z-XwZfC~U^!*L^Y%m2f+&O$pB%EIx4#J8mW{8;|GMqrhp{%v0P=ATgT(Yu94z*f?EX zrXuGl5N9P);<0gYg1C#`@pjSq%#P4};NDSa!z42m!6U=>vOpQ?G1jMV0{dv4t3a=w?_fe45Olpgb$60a2JZORKty66xx9~3SNNlh%f@c=_{<%%uQyj zMFguC@`W-&gi`dL4jisov21?EIK^1Bu>)ffnEG{cJHXIA5WUyFZy3w?Zo$pn?gvgz zV=FbiOSXW6C+#*a%!zDS<|L)5Z$U|d5V!WXkNp=%493Wdbty#*$k zDMZ?J7a!Pw46=|FBiTTvxRj+x13OX)HS~o~Uc}lai=}y0i;Nxu0a#~zTdG$WzF3=B zXrT)yY0~S=s7Kw=ub7AJoQ+3(M}57LD79)vU=z53kVxw%p$;h5X_6u9ic2r5gp7#x z9mbh@DS!;DLRwdds5)U_tf5d(dg9b{0*cl`U~F-4G+qY^B@>4 zEvl^RcE8BT0?R`0`s}>(2uQ~HTZVyPh)7j+BI|<*!odhL&yP^X4>OF?LZBg{ z!qOI+TdFQlvV`4$sPK&lT?{lV((8Rf#j>D`QJ4I92UWvK+Fa~Aj%=X|aoA2Aj$&C% zd}GlO1xS~gG-9xj0anNOis6TdJ-L9-7?#$Rpd-#M1(kEYd zQEtEILAmMbi)BQO6PgR@&ER|}rE{DG1{q`=$)!8$E9;cZGm=Z+@yvL(ac1KIYW==9 zO>Dr%sgsQWNP8XmVt7W>V2;9k>SrawBHx9!#aa~E=1q_knEU*!NTGQLhRVFWwwA3X77#*y_lPr zkAU5R`uTdV?mPoyp<-mjX=O0Y2TetmaA;U z9p(ef-9AAY5n_G_Wm}7&Pc)<=<4s_7@sr#N27#2KYDq92bsIr}toUz!&s(-_ixz{~$VW zFY2DwnKEw(B}ZDCRLs=Gn*GdY=zF~5zObtqx0vV5a{=vy@!rtfs3d`rrdnphA}1J| z$zo!d7Ak-C>$! zCJu`7@s0sMm$hT5zFKI%pK4gOh6az2A^qHX4`azfW`M7eKX^Xo6kuxUi-9xF;XgmE zuX$(p@ zgfNYK@OO2wu$x;qSDAjF=x~NjGQ=Ykrl5vF{X$&~_$k^` zk9tJdVGCa0qXB+oLi7j4ef8@qCD!5j5`DxN+>oJB_U zpwY2FBXmHPWA{GkVdFw4;NcQ`1Q_{|?q|4q_mQeZ`&Eq4)0gm#e~bq+woGHdCuz*6 zO)J``)3Vy44?BMT`=mxllM^BHMFJ!Dd2gJAbPqydFL+icLjuMg+-^ZMn4ulo{kDt~ zX#+A6rcGq0SgGU0Pe~jZJE>H+Mn3pq1~&GbhfbUZG@VizZ8B29Pw5=msW*ZZ1gW2< zIV6mm_Hc1V$Z|EpTkNs>JLqcMRm}BuQUxUcJmO6%b zBty%Td}v&vJEFdhi+M>H8D{T3ykW4o#~f`3j7s3@hq0woH{)8ahKFe3Vk1qAnp)CS+_u+Yoe1dia}_ARQKzI z@q{+{*;-;k2;l=`^!wy?^p_~UnD^|PWkh;f^91t=F!e)BqLk8^%rd|pc%+G^SO+EP zMVJnc!x+Uk3-i5CJYg*2n};w3jALhYF7Yz+g#8z-}TPx4C4owr@a6XDggr$ zc>0Dm`U#$v`0l}Y#ri-Ay4txNQjD8U0-lfX1rP}M)?q$CT`c2;8mkRUB3%ru8C(_( zh+D2w(#OvxhW^8|eGgK!6CND!#4?WzM?Njr3?a7rZ(d6oWQGUCwi^|1|+O zea|IdLo71s=zJIC(9WD={9}#q_jgCku)%HscD3!m zM+XZ;f5C5y8{aU{`!gXXel~~Dg5AYw&)3}|`@riCZXJw(So1@T2)MMjG^tCtE#gDQ zmfHdCXp~3dW5dSjZi6o3>lSFNs~@_6=c7(Yz2@&shC)=-n?*C0_~{Wl8cSv{V4>m* ziJIW5pRFd8UJ>`39)mwlP)|(*nb<*HqB~aUP#zdIzDv0oJL%AYkWm@eDNZ%(+LTPy zi*unAtmgIN3;!Vu1-tiYLpwBfLz*AacpS1;?^v%umwqEM1y(l`27(I zrLhG!-e;d=f{_g}&SiaYUJ~Y#??OzRa2m$r9HbOZX}~zaR1lQ#a;Vm8V`DQW6XPBA zB%zco%m9X=|30DIklu_ls%sM&bVAuRvJtG9i!ev{_=Svm6(Vd}mPmDLW2dEUm3k;y zKf%KTvEHKw$0Bn|X4cKq7-}QbvJrP75228-Z$y50VPL3Jh-5`TM7B%S3-7X|;3y1Yq-;c;{ITnFmE5ynbeaAUj3+gN0+Ik4QrK94Cl^Q`Y+~R$X6ZJ8k%k*KEK%|xnJ%?s+H|Z#AYzL&xfYHR^{J-m zcG=vFjKi~&SzMgP28?X<9o_*I!EA%zC(_l%9-KCJU_Lj3+%!}09WeYtIwTf?sF}M4 zx$gt|9p4d`C8agOPjOLk(<%)s23e>cA}#f*1>y^V8o`ZCAx%l1A*nQs&r92GM2lus z8Bmk)P-zr+Y^cYFmn{V;PT?V8-WHm!wYg5cWx`hSlaYw zj0s?1*-X%W%#Y}2csnj@SSUBXdY(+#>zYKiG+Tr6Um`#RazmgH_OD+vdSK+%Pg$=j zL{`fsYpP&Gl-m`=VaP+Pht} z*rNaoZY&TiMH|3yh6TbY;AW2;6V$HyJJQ@$1io*&v3M!s~!?)zzVLk6rZ;?o%tLg`MUtO*%~cw4Z;-8b#g5E5a< zxP#H*6IW0u$Ng#Y!!#0nS8os%SRDCcgjk%_HY3$+oB_vahRo@pF%ZJpg;Ok1lE$%=%viB1``L10kA`@0Zv?Ba`2nnKjxaGpoHK$D&+$_~ z!+?TO;2TEf3FVVF=x6AA_?jmn!PV$}NC{z@7$W9UBb02X8#|yzC@CQX(iR>A$yb-gRMYNzxbTRu|}8Zbnc%@5SC_sMDOBJ#KzCK}39S%%j1= z?XV+lnSOLGL{=l!9Er7(9C`QKp;5_PzJ{Ue=xXufBN6>d^ z!Br!);5lGnkQ%PoT(6{u35Mc#ocDD|LV9MZ8PbH5!XUugBk}^@Pz_xX2+oewaq6@* zoEC=ZYuLMo_M;uZ1#@+1-ov$+Pv8}d@FbLpXMjY)`)C>}mg3ZfFG0u`L`IEzO(6Ud znjI?|ofn1^{~W31;+?S2Lev!)nph{Eg?>Umqi#kXVcx+zhVKaab8-EA`OWMZa@O~+ z)o>IZM1Tl%4S_<~zkW?gV05kDqPq&wfpeGtQ*M3jA~|Wdi=q#l?iMcZxL^*YqjN5( zh&7Ep5<;v!8fh`r{(@VLMJVihJA=+x>?knl7Kh1QFiWTB3zeBjU^a0scz5{j<5;jk#LEwph{fARMT@pA*0xcFD#O5(UZ+1!4~l_V9hWI z>3bkM1Qzyb12kLMj3X11BC>F)PZK(!ehP*1SUmZd!LjEEFbRd?Xv)h~ExP;fi?m^J z?u&!EehP#xG%nL!=#VfjbORu|h9fqh<4_`}VdLWFeS$TVTGYk;FP5<$c@WZz!Lvey zP#ljR?`q;&=Q+}@ZMDN?>{yi`ZL^6Xh6trl`d=OUO)C=fX2?szLercMM=V+y%I*=3 zy@4Yl(mLDw6snU;p}ACd;O)TVfr zg-%#z6rVi6{0^LaLIq_wkBU`FGQxO`yx7tqBAF0Ee=dxOH&5_2{=PM3^lF@kl1p8^ zJdsgL#YOcT!nmA4Z*5AGwx;dkr@nUKP4#LhTj+utd-K&ux6nWnT1FNVKP)m74uW?M z<@$!U|9$bbnnE6b=1l_P!TQ5o^3gUYqU+jfX|55TX5M8EKWK?GsK+8a6L6SOk8>y& z;{k*K$P3d~u=fn}i61U$o=70*%4&X^u*bO$njx7G9eg*OIH?N{0?r7>zyXrX&(>pUSbZ-a zgm3~=kW_ZyJ;7Sa>A(!qaf5HN3T_S@uJr{Dc)v#s9;se2rUhc@T0!n(GpM?{uWodp zerN+iND}iA`W2~gt6a)gj9I*!_!k5S<|y@sQK4t2^`c|BVUb+_(l6z#y|0ZnzoG{4 z2O>ZOaz>yK_OD+#5*RsmRrta}bl{@8c{1zeUnLl1O$UdCTqdn5Y8y&Nr@J^S<|HQc zY&(#u`_PmmDm04-ybN?_%`I-S?dqyXAwpa{?}Kda^Ug4WQSMwGafA#D+X3~{;bjvJ z40%~tx>H}vA~H<81$(TVpLVHt0*z_qe$6J3aqC6hu>*l!ZS;pPzGiOKK2Z_MT9D22 zBh;qIdjMJ%wz$p^I_b2FA#WHMCRl{}g0HrNirs5loP~DJ-J+>uh=(mieUb}{6)f9Y7@(eR>>>qh9O98p$TLL9pzqKI-GS`u zb~{5JLb14LOc2_5PP_hx!kglF{5V9!Exa=Clb1=tG;CCyG?QIo_5B2+JWjP6y$_yI zYN;`?qwUAu!@CLFb;;0$6&f<;i^zuJ`BDFn*HXwOUo{%)lR}tL=tC+D47>M15!wG; zq{7hkcTinco}@>F^Dt@_kYw@hyAy1M7Da?<^ghM<7-&SpmN88#E z=RYTr`q~j^86tX6tPK;IBW&#XV!x-D`E^xau8R}DJ*zFXK#+UqDHeKRRo?OTemk9XHdIwM(pk2RfR8ka`Gj`r?= ze84(D^7*uwSF`bVmpp>r*S zM4jh_W#;IR`nrCB8qTJTg8o2g6bx;DJcq&!5vm5G9;Bfk`r&k7kl7~oron~*F!6Q5 zqD(_xxSm^wEsN5%0@IlIiZlJ-I^A%oou@dO__u{C_V3#-$_k{JUO+zdsZONo4XrKk z%|xaa;1A6U5HmRNj^VuoAz(y}3hTDE=zHgfvxJBmU7MxCVj~TsjAjeo1FT8W2Fo^s zXW}_E{fDZ^Io6|ox>ohVXm;8as4w1Ogv8?T$y_`OeT#92@4khgfZ#&k8Oa0>N)W5Q z_wbzMU&yVmT_BSuUYbb%YwrsGB?3esHv|e{|N1o}fstE3Wxc8p9k{e%pvW#7gJ9{C|5i^X^Sx9t&(%Pc&<93AN#AD&Yq+t@$eQ-jawQ88y2QoH7l37H8 zVFCeh(J1s_h*Oit5qo|l>!h9|Xp?7vVsWOaO+DrRNS`B>GBe~2fzD~ zlF8Fn3E*U27QU7Q$_Rzc;C;fP-(Rre+BET&T}#3dU%n?($j#p^>^r*DhjdIVM8ox+ z+X1w99L7^J3k$@0>lKsO*n*os2%T}!905$xCO+h5A{+II7tfCS zLt?%0f;$cavpK>SGjxJ}2z`iSzCY6;Zl&L7z1&T3M zLTSa^K$_-ED3qV(IgpY#8oPsIVOt$L@T7v4gP*2Z4b7xjFAO^v3~8}m)Cn%oewaaM zjtFT{sK=V^OnPFyIH%&Ene@G=CkzF=Q+`Ti(~?Mg=%}!6O3NZ-07e9N&`cS`Of#6=wW5ei|%`E>nbuOnozNt0a2Km^h`8BT)t(!5+OW5np8VD{T;9rIRvB@euPjZEG9hRDk&x`00r0V0qy0)?=D{mPNR z$hoV+7Z#!eSNv~I@T*@uOQ!C9y?%({O6tTEoeQkb+%*VK9CS&#E!>WQDaQ` z9y^2P77XtJEaXOeX#>r$0dsCS*43~H?7pKui|QBaha=i;j6^S!X#+zBY#e5Qj2|vD ziVA(1Mnc9F&@Jvd3fhGh?9M1p#))V190?La&2AB|3wAHVK`5LfWSD4njnuAiB*->s zL_&NHAKtW49ks~|orpyOAzl}2mV|b?EoG#7S!CjhL%YJ+Qk#Z6d_p3yA(!}w{79z} zRgZ?`PPZ8$Ah~Q8%!$0sm74xFiLn>T?g26e>Dqh`8zqEre@b`4?Nlc{3PNKC?*qn! zpWac&Uce(ERHotN>o%x}Y;DKzCJXsWh)!Czm>PK4WYV3sxKy`rY4>-kL!Kic(Mk32 zslz*-OnIq(L-E49CA(F}FP3&}= zQEu;Onv4wUs5CCqU3x#2q#~+Mr5T||!VMN-d<`_%o z9TJL8kfECD7^2Ma*t2&uovJsag^?|bic6oI%)VryM805atgRAj@BkMj=~`E5*pVHf zdC!r)3o_!@u^6O@Yl6JMw?7W`ObSfm`7l;7@7jD~Ay;WJO1!)9x`I(}-@;h)1RExP z*hymteGU^x_4_0w9*sJIBt<%NBQGM4IfMjch&OwmkSzrypG#fsycF;=$V@-;mJ2uZ zM8;K68@fX9V2#5eTqw~B^?HfYEW>N5&ZSv4BHlK3(%GLZJPU-D5%D2y6s>>#0%>nc z3Vk~f+ho{^eaBIMBUGS0wxE7tB6YKdV<2s5CNu;D0I&dggRz47)x03_4Mtm0N8if< zqzJ~U3(a(WYTrjcjLZqa!t=#xc36l=RaLb<-`cLEMkeF~M0HfBrscXO0jUZPC6E!A zckmri%@9wI&DODSHUtJ}C;l_RP^+iDqb&`x-mvwe_Xf|zI-*~nzH-ZJ=gG7m+z_pq z^E3l^I}xZz1PWpQ`aqMw$aB~gq66z!u8=F9{|}kG`z5lhVYw>wN9h&YRw?t0ctfAH zHlZ@#tvNQV;8EaqM?zW>I3G4_I%cAXc0j!auNeV&hHuz}cJDRghYDfFZOZ036544G z?S#ZeKoXPCLePEq>Sf)U*nQj)Itw(sB|!)UQk#Ydm2}!WTd->ula!Z4$o)Ik1BlbY z#$Fa!G{oKq`uz6xgkckjF{-|X>t`bx;OguPuFhHhmF|}KyZ0eIfRONDwzRZZ#HZc- zZS47}NkeMg4)qQDXNzn}};DT`Bqr#=0LO;_ip?d^-K` zeBD{|wIpJ(-k6M3SMmBqIv4nH*6Db7^gRqPwAatzW8{agaS(gH3`lsFh4f}Zsd_^K z!r2T97&Y(;@W)9uFNqKt86qk|g0I;;PeKH1Ll`^KVqm*IW#zfYlgFA5hN43f@;gSbpZ@HoR<9Jk4N zqd0L&pU|lTq2m#6aTbr5AT`&0?9}_ZLe5P-sb`>C7@B1(_H2wjbdsKpVa<^`b>H{r zsBD@eCSdHRNH@J2KWrwO=ZT4HngFuXgqoMpgo-^d@qDZg5cU(N!8AfA>E&UB7>s%g zhf!@Byw5||ir#0JJqek9Vj)cQOXPV{6N{_DPzTO_XqpMW!W#%1CfHnwJmxgiG)^CE z-kN@@U)OeoeZWh>?Z{hbTUy)2vfU&+P$6;-qGK@9t~=5=M4rSUgvq%O1~}^Fhxp(f zU7jLD+#Hw5GUjOzDNfA|ib>>U(X>KVtVGyKocdV_soG?EdeaQSHy3082q^puVjseo zexJDPPm8tR{16+g!%Q2;-aVJ4%dIz!JW+3m+WBt7CDSLEOTexIcR#Hw)-kvbbvADh zj1zc+07tyf&?{TguvFXZ#5;-d?^}Sn1%+-1h?mJK} zd-gP$_JiL<-iUdc0lb|ER3rk0uz!7^NnqqT>}hi3chAy=RFu2i;-^zC zye=-aQQg-qLUM2Q#~2)X_^K7TJqK7qXEbp@m?` zBO$bd>K5E^KTjLw&}~S@smF#<>^^QD327|}6O{7}=#XfoiAbe)|3k)FDC{MhVHAq# z&T5paH%yY`f&uD08e-3ltb|U=OCmO^Ar2acg9M2N_0UP;911;fBpF=llZ(@!hfT(< z)%UW{5S7}wiO>O*scyMdRRWdz$gpWzrXpefE>fgf;_bd?)uPCFj$jAT!Z9F92BX$b zX>7aih&%SvJBEmc5J_c3LAsyj)y|QADG}F@;A%E4i_mUoC^O9JjPkTNYSxe~XpU%F z*;x1x{p5#;C{Ymbq>3{5c=J{$%`)x}329oGK|=2)l^ zqVs`~Y_VQVOmM~?4N30-M@E7uhz-a{Sl4?WFqdOjR=t)6INgYtOiYqY7M?WDGvJJ< zNDEDeh&v~onB2V%xzuONpc6`69ZJ>fvTVV#F-4vP(v@1KBww7=<`|GHQMMQh*-DXt zp|NY;Wq#O9wk%s|EebW1A%ZF{l*A4lyLIzqnCIPQgihL%%7{Oo$TxBx{Tvyqt5&K< z0E|>$m&i1^{Q8?XsP7qwI-ySy1_NW;=GbiS6Noa5XA=>{+5+c5a``%4_-3ZxaU+S6 z9;orywQ!1T-kPDci4jssO)T?@9hD&7LRq$K!vW-l5e2a}%;<>B!y7ec`5e`Y@Waql zw6v{N!^_Nj0qZ{y73w*X32(COPaymKkYaeyV*CJm+ptmMDkDm5goYD_MXKJukykJ7 z#e4>$zz9m0R&`0n+X1Oroi_-^4!)ZRnZx%H_n_~viH5%;6vfu7I({_+(@Nd6z~3?N zAXF4}wD&0@sgQ}z%Y>);RV@vwYt+1|NiKP2vi$M~zlk#F^ycR@Zt3r9cJvQ5U3ww(y&AYDKYWe zVPcH_A|8KpSs#+3mmx0++ZFahOtO(5p$rSr?!C9$7{@OsmHR`x|DhCn)~57Mc_^ma z79Bn&*}?>{;7;oigtC}e8qmaU;i_g`AowxauAk=Po1fURiWa=yZewV{9QRYohzJl3 zA#WC2FsDO_oB@hDc|?I`r*J!=6YaH~&zZvJnNLG|yNVFI6uI7y(WXAe+WQ zI7B5Aj*)nuEKReguK^>%2vU#q4W;@GiO|LwM?!+HZ8Fv~Hbb5#wqQ@cPtIcw*_Yy- zc1um_zmG9_g3yInST__J7n+N$O&X%o*X?whP;@wCE2;0{^eyVbAzw)6?d`xif)hKv zahogz(l>y!3q>PcX(}UCJ@j%wQpJRhBO{mVIWvlFj_62aFVHxDpA-lQMK`xK%ls8d zp=V$fBC_q9jqjtcy8wdP7teP0cO-p7;@!X*q^j@%F;QV* zGk&HdmrZP52cjU_z4tUTOjOzJl*g%ZK`3DzVySY`P7~b(`C-JH&E>w1iRqBQAosny zLhArmrxp5rvJexSBhvjGn)gEA7i|7agRlSqAOJ~3K~#94pZ$)N7QQwMzL}V(fH4RakP`0NMH;pPQU&8Y(kxNpWkkX|!m@vvmks7E^dGW~ zbnqZeg^?k21amZS0-*)Z&0jx#vix$NSrq=_!Zf(r{O-~BvR(~lQTooy2q34V4BESO>Ju00f44`Su} z&<<+IecX085@}_l3j(KVLF1V4fZ7OAENKXI;sPm+X$;6Q7NH)X983D}+aZ}q>^}Qrk_dX$wrSEkV z(z3{=?Gnm>6N;%0wJBTr-%uJ)Gq#|cVDF;~$H;_irM$}!JMSB7_C9sUR7vXY4!vXu-23(XOskgaU}6w2Nd@|d%E&-Zdrf;12sXXMAaUPh_T5Tqdw zop|1hJ#^x5!K4-jzE2uv;AwuC0qP47$7yAUON|#h9}1f>Lw{XQKdLiiWHk0X5mya? zZ0wk&OTz_IS{R{kF6Pa}8LuS^g9~NgF(Nxn`r7x+*9S4dRcFA(;+{b-z=n>(wB`-t z>k?T?WRUY9HS7q@TS`VYEJ=8K+FT5h!Vd+q>=q!hjr0!c5@q$I`bvg|LhDlBOnsjk zGNE-DT_K1?&I$EXAQil2aq%}CoQKc64w;S+-UNci4|}n(3tb)~(oGv?)S#pQv1TPo z3*!bv$}#T&XOMno)Mpn}MoMCM0&_& zsW4}IyK4A=$S{2pmkDpah6;@uGAhzz({#6)5F<;U4Dti_gAnrdF|anlkrv9v+7#JL zj5No(^x7AvXcj*|#H1U|0v1ICDguE**uNw&x^ZX~sspcmajGn9T-?c)K(bJ?sky^` zK;XLm9RD4sl4p{S@?HDl;`(@ntIu%81<>|PoEtIjb!Xi3a1MtpSYq|*b~O&HRxXuV zo4Wl)*Y?4VUz-dbFjQRwQKnsoGU29e_v1MrG~n{6_h-^hf)K)v4|W6eZY{G_>*RK3 z;xdt@3yTpf9IgH^Lh&3E6U1Ly+E(fPxYk;aGO=jDZiB-QAM-ZNEQ0Is@pe_}qq~At z(kJnOg|UqGyS(Sl{TywAVUIH1^HD&%Dsop>ReASg*P~glcZ*n8E0hT}eS`!!;Xijj z7E^FR)g8!8ov@I_UD(C2p`-Uhe5>!Es7+`iuElk>vxWPxXhpmI`(Z@kdK2%`Hnq3u zwGAt4Wz5iVdJpQ2m|zfT{vsUL;csrY&D9DE9C#_=oQ)r(;KQyBc3=nSPO-Zdi$2s% z?~mHKQp*@RV2G;U>v)oO-6_WIk}WuKKU`+f7qRC>AAzeml=sbj8u!D9z?gu$D^%ER z>_PdzU*CRS7*`+FU;zeBB+m8I%GPErcj&+x>8oPBeRM2boXN zd|*t0bad}dA06XxwZ`JkZxal72vZIj0OHEskGi7`4J((+x+6B!@=+cz!A>7y)vZl1 z!tg%%h6#*S)Hhymy77QAvD>EOBr|=$eHnGKG?b{p@|DXpTLX6W?R`Rj!ia|VfxUYe z%PX3eDR#hQMblClHfWT_bL0K;br&@Ly0s-?fNA`A!xFtt-Ou~DcWhbxQXM-e*Tz0@ z!u8OLu{j1fV@#kKc zN#6Ysnqo&*CHSo+&RoeXw#UX zW28Eh83nlGeZ;u6er|6U6{NN_p7wkghWHi$=h~)aQZrzLrZC0W9XV)3eR8m2vew1?D6eFt2B+O zzE2}{-2memZNhwjezp)3V1RbweX@BQ*JAAAdNY1eQ}kPH({fEoiaPys$w#um$W3%S zVjk0wsdk5HeRHj7YR>_#?{F61R?N{g1Bbeep>|NH?K*Gaee(62FwXG(bD+F(_ajy+dTWC>~4l&H|Mz_(ey*SKH5V>g|%PFNN5CPJ_I9pWX0Fuen&KDDlPpOc6`2m^fMnce2j6uEl^M=xCxr!>ppM}17M+_ zwaoAOEIsEw*sffVEbgO;GGSyWVWI!4()!1L!!_t(1Ka#hmUQZIx04T%hOT!(ss)PQkfM2QhDj-bJF zU0d8jrByW*?Ao|)fF-VHtCA-fk|$GtTlhO;EmLlLA8GvGI8#STWJoM6Cu0t0$eWly zYmatZGD{Ba4=fD-Wz=Tq5=Y9kuFM$P@gf|CfbR)pixe3A5aqM-(BGOSE+Yo$7Go~$ zXk?MP6H4mf2}ZuS$GdmUEyUtl!r1fE3)&(R<@)^K%2f@Z)08~1@-j=U2gQ4t-y}@q`~8N$c0i5ses+e*IGeCwfmD(uQ?#l9n}B&D zbgZskI=@Dwb=<#ho=w&hBA@o&`8D@PkJa7gL;OCd{}7!Q&9L$7=-yi+XXC#FuWefu zk;CbJF>=>RK>gjk8XquL9T6TMcAd2${jZO@>k~(srrR9qo%ERU>*B^hsuY`p6SeNR z!C>zyN^tL(k>l}==}nBd?tNrcdyDkNHzmvc_+~qDJVq+?lUpCS_sM&*wkxW2hIn?H z6IcTQ!%QD!jA^%F5x*BUN7zP+E5c|<`_?-{9OvWjr(US*2S<+gQQ~3Pppg-YX=Pby zuIOaht*uU@qQi4j*J9OTHDo? z-{Gh0qxN%5e+^zpw`yJ(?PxQYkM`)l7-AvNIxp}aE z-+_+s$ZQDVU)!*8=lW`zd5}czd_TnzKlkZVttox+GYCJ7FRVl0v5DVxLq@OdPtS|s zEY6cepmPWm(*D(XwcTH3b*}EbT0{!nf$W5yLBNO=`*0@-7DtA-54}(5I08qn)x|^n zd*al6_dnJD`#;CQv5%D_qhlt7WF+gD(J->JjuoY>?0JrrA}h0Ol|p1>uP8(rl|*L9 z-g|!^PrdYhe?FhrKk)rUw|Jh%xE|NIU-#>JJkP~oc6L5a>^*B7sOQ%D8A_xj~&rc4%< zm2{!VbUV@pn{!St)QkFgM^0gQfFwZI^KO0tbzZ&P27fWz=ob6W<+m<- z_K)R%o}a5+F1Y*R+f}}3FDaYbiC!M59y+D12cysr?%ExN%-YeF8xcfeM6#M?ICOcPzAaB`Y`Re))%Ei^4Ay513 zEBEJQV0%8FuAt=>3%Uj-?7;YCODjqmeUO~g4JLFNA z%z1Mo+87(QC9(e^B9`3~@!`{;8Kt}KW-C%+?7V}OHP~hm za}Tr9xAR$p=7I@7C2_K=QuOKU$)jeKbqegsBh&S^lxvaAHO#{j$}(KwB`jIpWA{H< zYw#*Q-LpuDcc1!Z_~~+}HG+*HVO*<5`l89>Ow*dxJRZM`NR^FJ&foU#lc|fZ`;x5-t+M+od_B<>>3)WZgi;P?2>O#7Ua= zR|`$uWy0276c_b82QUDT%NpQ+%K`xV+gE+8$^?J@0xq8c3H|dQa0UNJd{S;Y8{xp4 zcP0=CIcRhni~ui|_dt8R0KuaB$TJn=YAPW2098x-n&F zmUd*U4C&?nGM)c(tWq3WcDspiRgJ;8{VYWfY+BFc{J)$DXeU$5=z@r(l&S}C)ijai zBTM{W!|^!-9e4xIpYUJLpPvwHif5=Ds4U(6sDIrUodPtAlG+L@-~XSAok8UFFUmnc z3(TYJVC#3F_+z;0yNt=8zq*JoKx-Kr3!F~(EjIBObi1yj^EIB+ljg7HXaypo8~EO7 zSj8WIL{}6xndSq&iD>${%kN~{wg~3){LJKK$6AR|;lRMMv#Opx0#WuzJGJ@|4ZD`} zZ+jD(n^l>`?4m!V%cq;6o)13Hm;GlRd$tO4>bNOk7-rxSN7Y{;HSc@eJ1$fzF;; zKQVjxcz{6KrCMQ15^oFLB^>tapY3J*f(+8xw1ec>QSr&bNBoMu->_HL(~DnQ95zo7 zHW$ji6qOJfN^kLpsS8^e#H1h>Xp&gecr1|>Rj}tFWHG^ChnZ0h1l|2JY!%#*`tw2ZC@@vy zCZRp%?`mD?fT5(qBNG40fCw5{;dC+C@u&Eyz$5YB$LeZ_=QO$1{RqhkC7<9Xl3FwkQN*|dS`*`)@6T>-Su; z@bx=Ah1Sgx%o9C!WiMKg7d8j(5nDCOyZ6~J?K4{4-I(j^Hk>WG{07UZ#Q`lgI`ZcE zBz-e;BY=XgAiq2e>2su8dNU*S0T0S#K|Y$6?9R{IdF!z|<} z&0n2j0PEm;=z!(%W+Ai=typTLu({9XJ~e-7)r&E*fyJ?g+5S>H z+l9YeTG)GgBGINXnC!;5-0oaIA@i zQ-f1r?47tHa%}4y_;(6g&ImCHiObinJ<7lFHka=w^@`<}XX>K%-v#@uA72~Kyw4u% z7_j>@@Iw__y5C0f-d2meJ}1%myZy~!;UE&KnVth%mJLG0jTEs|iLe0=e68&mszRN26 zlCHjM-It2LYDnMW|KYP(Yd|f#)@61#iWUXbwdiWH=yQW~(-|6p-^&IwKZ+0HgMhZQ zP1~2n{iC%w;I@LSGQlOy?;*l9N*FVl-MJDM5W5P_T_IOPdD>xU#)9cJ!glC(7y|aj zPEFLTc09IC^HN2YiCDKHrRLr=#Z?#u?61@BN5-Ym$ZchON|QAn8FcQDnrtOK<(tua zr+$CK1<3zWU`~|$LB(A8us>Tfm7+1U4vIk;cHetpA0fMryAcz0-XT(W-q zQE0nvtb=M%Wc|YwV1%(MxJB)c?rZ|bur#9`==hYVYfVucwD861#kxE*Mj}$`xL)%B z)4JtHj;<$fMl%_hIESP-H#2(+hY^P*)UC7$@Uu$Y{Dkt_na-Jz9^Tf_l|V%JEL2`9 z>$}Oa-E`_8gF|3zd%k=)LH=;NGna9tl`D$R89y8YTdUn1qW|Wxx3yfn{@u8}w{GKY zn40=yT12=MkeAKxPsuk4zow7NWQK_v4C$PH&Kix{MeVg6~K?Fgufc<)Pc2n|uDUH>Z{we2blt&QI>? zu}8CjR1h_={SC&Yl}};LMf}BDp}K0nEOrFgTpU;A1x{xH84hasJtwabJSiOq zzv@NIC8A9Q>o1Y@hx>~sXU@4!X{~n{+NQc)RKXgig14B7Fj{LY(?l~tzW?{{n{=p3 zcdiN$EhU+Ir@~kn^$Dv4^ta1%)HDV-}vdc=$h`g^6_+x{s-X6GL5c& zx$ot*#r=R5g;?JDAnYGgLCl%i^{%0t5!N)LYijy>GiP1$w!M8%H4(@8wT3Cz#8nbb zts(@&tc+O^TVv?)c}x)l`&)yx`YJDTKzm(nND{FKlmWh)zosv_NlYw5oluzaS@^Y6 z?w^5EW)683+$c9!=SxQE!!9O{ULn(rTq~-Y^mwuV+~qDf_UrGW*12IA+#+oY;jv?F zQv!~4VqMDEkHvA(4H=^!)WZ<2q(DEah*T03 zj?r5wbQm}GKlHoP!#-3kiPw^eolg|x7Oq{3P4WEoAlK*I-F~raeh&qCD?PDWy=&Zf z{8e7GaM_@{u{YMb*%2(t!MoOwl6Hy_obx*QCtt+z!m=Q!sO?57@YNUyrm>f4v}U8< zegddo2RWH&aEeRY85iLE!yh<;m~{B*3K7>cg&0Q!nYhSBcMCA?koVyhD`yuQVo7#} zn!$+Vc-$}0xVP4s?0;TEFswHAUXOGr?N(j+6)sGEK*a{R6Pr%i%{WE@{nqoHGF-rl zt6h01$i8H2B#WwqFR0T*h}&>@9qw=1fZ!2l)1ILHzT|1Mr2ZaL=y5MVI0q~qhdI|d z7LSwvsdg+YBoqSSGrl+9(enKc5x$<9=K4k51&RnSo;vUY*q?Z(e9)cW(3Z4O6e+Rt zfyunJ(|_aqdgD}YVfq2H83Pm`{)hR=4)^!-_nLa7-egvP%q6Ri9qChT%aBDf4c;mF zT&i&;K``dj{?sK=pN+Yf3s8uA*K$eIAS0>8T(dlNf*!x12wa#4$48gr=oUu}4)}6T zq2X5t<%}Opb&noB%Dv@05pQri4@_g4e8D+uZT_c0G&|!BrVEi$zfn9qdv|ycXDfd_ z6c~><-_d2CAy4>gB;LR*2Dnv2)d&;^jm#1*!S<3SJqm5Zd+iB#$<5EPxw-s(w&{M> zBMo>MUUQG?jQ;X)USS>oSWDDmbDB^`)ZN^J1J*{ zehG5>PvXM177q^`E2px;#RjLpJioHui57t1Ub38D6}i<;8ne6nf**(*P@64 zj5YwqIR20UatePkDmmyt)9b9ST*MPF)uj^T-4}kHm!}gIu{q?Ush$W0UfI3(jZB@( z23vAis>`Pc>n=SXzJKSh?R7xtq9km2rx=5y7#^BcMKXZs^ybr3NzH}oMY%rT)z9=a z<$^rfs*k>iB%ZTsUNf5@U*nFfhY@zRBrw8!quO$%`%uR)T?$Bt>vWQ*b|ptch~wh= z%k+iyz17adl1@3}bs;CrEYT~hW9_;=l=|HE4_37FE-b5E1;Y)!OV&K&2n;aZTsi_Vv?nu0T09*BLVC7K6G_($%1;y^FrZbTK; z4F-aJ4Z^r6ra57(0jBWCa#}(faOSMk#{=`zKnYv#% zWB@thqw65swsAbL;d!v`?-8_xd`jR5&NgYB&E$37i`TL(%2f#mkvnVtr2gN`Gzwa9 zONPz64-sGy9|oi+%q1i1R~D_x-b~Vt_3UvE|l(psrI zMk`NfN4AX5tJVY}^2xwi*eiww9Fu8U{*VFJ%h`mxU@{C()XmS&ugsNnwh=R#pdIVB zUzEOmt6uNFZyhDO5q(9tR<~@xrJeQ0SHDD=gRQaRVgKEa$Em|6V@+r*t_dV!yiBI9 zF*R#nu6+6O<+>KDV$WT`PV6q$n}cvau{9ReN%7Q@IlxOiP?8=NW&O7WwzoS2gsfU3;{moczWMnHkDHs@WmZ<#E`{1qr6~o-_yDLh zo4qgB4!$pPIZ<=pOPH3A1c;PTN%+lQmGx!<3Q!v^nXb=`U}$RG{HiG*&*m|pU3aiv z*seq)`)oXf?Qm88kPGsf`ES49n8_SHe65C_OSp}DU%B-w+y?mG89!%0Qt>-mwbXd6 zj^l`^qoMF%=D%&jbAj9q90J3NuMjPQON(;#!fxn4r%6CNWeT0W(2(zq7_=58#W2{f zfqVb0(^8Wu_X4GNK*sp^sYBHni;5=W(W==39jk!8Vw;&t=SH&At$^FHX^rN1C{)7- zvJb8G1t{kv=5DAz+^ug1z**pQnrBwpYSa~>N@aC;uoF&K{eCn+$nD#c>4ofceQC*8 zY86c#xjO*zzvczrg>2oGp};2O1NI?iJ(inS@UTW(Ki@EOo*2-*%}Et*+%3t4bWN4XUSoc{KAtbPnM><3nINzHPAshZ;1*>eI;DT z1N#7BamzWz?+=c3xf2Qww#zotDi1N|1brtv(}k<&io?B)1^^f@KG>NpJaIPoIs~#; z8YzVNXbD${RK*$vmrA^x4N-_vF%9{B*FJ0zmG$iF@&w4u${p_A^8!g5lvnNu##MI8 z?ecBocR}L34aXPxZo5zodMj98ls^`*2r@a{mTpgEeab@bfs~7S<(rP?tyJEtNzo02${IrO=7ZfuVF1jF2i<>u z?7npBEC@aczsLu=%%;pSOz=!0kQ0=bF~M7)j5zn+P8N`cY3>C_PMAtCkOt=rrT$+Y zLm2XJiMZcZ4=M1zOm!4YLUGay6-q2_-?T5CA?uDG`*=EC*9s-Q3ne14#1Lw`eU_5- zf`~Tvnnz9VFqQ;OBv_7;OdC;EJdmNmyANDl*A6+~eOH)_4}} zEqK&Fh6s&=o!)v?kpqy|CkPZ&D9WD4oWx;p)No3FPl_K!fSl-w#L-f7$vs8pgxKTW zzY(EBO)q5;kQFaCvv^c&R*XgJL`4B^O6fcJ3K(kBfn@KHX3`lLCwH$CrKb;W+~^Hf zq46=?=IJF0S5Zuj%>LTf%huz+@Pu&ywf9JnrAfoAi>mggmF-^+%1g>b&Ft^y`dyK z@+x{Bv-LhZN-p=7n$jyR1&IcwQNULijGam&;k%dW_Pu*4yv}cz7eVRig)X)1$<>=# z2l-qVbyOKL&Sb{sB%416TB`%7aEh$RoR?K|gmx^PKAgjL96TM;Fp1Z z+Q}k?M7>t5KVQDy1}6~-BBes`9K98T4e$GVxj;VNgYF+pfrf=Z!sFWa^2&!^L7o)Shtmar*w8EtHMsnT4c(VPGdhQyl=> z@0EUYzkT6r5;?d^uQE2tBC451$`bQzk?Ogi$_9;zN1sjND_gaK^)?cTh5NR|?`1d| z9(;SLrb&L5ChV!AG!cg|F!8&}iVYN2*KX-@tdX(NczOZ)OhrXa!9U-m@;W-@VOi8E zc{u^ITY@Lf-gxF0Ok`vjefCA(EnP`KlJW#JKVmWHI@fxi9)BIGLY&!TpZ!Z$*@InA zoph+l3#P@5UI2Oe=PB)}?6+_A4nR29`G|wE7|iVv90v^-b7<9KjF!2%@ML;G-9z8N z5rQJTy_0+my;J^!hK3G#8T#ld#$Qjn9=EDuM|^jZ0Wn{2^AbKG)XQP~dSQBsx zJPp!dNwL4Y1EfWm`)#j?<`5kHRr z$;R~s+3&Si5Ll)Ikc&MXaB8A5txA`q#rx9Y5s^AE2O**c(XsNZnm;E-yP=9}uw5luR{e zOI`X)0SmJDCqne3qPl1uV(N-nb6|5T;LB&9dGfbE0R;?Dg^9ZQL`+?$>P5>LMA?fM zFCM-RdBh8=1o(!_;F%}e@yb^ezye+fD_j@+jH;wKAvmQ=6V!m2Y32wb6-XYU{>hV*>vb3s#50lDbX%W;ts!~d{>zF0@Uz($g-)MY)45GCTW^BF+B-$fq*fgGzKDv9VsbAKZVP`v1nN4t@_GL;Sc`}7bbi`rZUb*zaeH3G3#gn*TD z>A#h8>q+>QuI>!#l=AJk{}93kujR^RJ-<`8mw zWR#JA1FSMS2-8Q83R$aam1x6Q->KeUK&$gEy{RZtMQ zpnPM1i24FX?qJJ`#}nhkFf&Dd6C`LwP#X6@f-(01q&<9k@F~1@u563uihX`-o))Swwsr^_aN_c?P)J6jc0t**FK6i*5n(c_mV63ug4-UpM>a|RNnG1mjG zdAxEm?W@y6z_4utEPGmV*!Ld8?Z7wDAXC!?4pS6AL>jR_7AdWP2{Wu{8+jKr0i`Zd z_kJsLa09RH!1;{Fm8$WoQ@&x5Vtd{6i>G2LXO-59k1X%dpp7)GSpc$#>~ z!d&Ola$@-bA++vmt3z$%hrA>QgWi zD#{sQ5b$`P+LTNCkDg9(z}sRQ_=r~;cOG-A(ma|IX9#zKqtZ=fPY9Xtc?>w;AMyto z(8nA0uY0Dmib2649b@+%n6E%#{XvztP(#xQ0QT|b2P=sy@98zUWk```Fh`2vdjyRs zh-wUqAr$wArw>?qhiIy>G%i>2(nv%W}< zkLlc+{e&8OtDKPnSU%m3+V-+z)d6gZKAgm|y?$>dFLut}(;^>~L}Cam)g`im`BOU^ z%d5#E?ii_kaZ>z7-_Ho~T?b_Br-paFms{7afB))~;KC`=bz(|0UxR4uv8J4M<9M_Z zbo|My8fg z)Mwk#pMxCSl}J=q(uIjQo$<1t4v!&f43u>W`G|AK%r;2yF;@^|@QVsE4HVgV>?n|^ z6p58U6vRyw&s2BrPNSncWy~(Vw!U^8 z?~#P3@WmV=m-}`b7m-L5TGVq*5VkGk>vR46`EM>1F}Ni@Mb+p&qDxj**{p!$$vxlA z0w*bs&Q}+tKVurO^ELfuPgN^VFg*A(pq#Q5(~xVy=rh3v^IHId77Q^hnRtT^5gUN} zJ1fnEYnB3!0_SJ(-d2$9<*RU(koSkaVF%38u80?A)t#kM3?ZK)H0j8-(H!j%!t{3WRQ2qBJsL_b#t|dJbDD@CP8)$Qk2y`} z7X3G+d3K^7y8XOc{zxs%8VyQ8*Ne109U8RE-`>{a{KS=LuayYZ z-9nhmUQTOs@L#lik6@IL1*styO_m86u4ny17_(<$1N|82&dCGO=himbDO!ajjp-of zO0CoW{ZsxgElxv4FARQfUvA5pwv^fWfPXqL| zcBe&q?6JNu2*7L&P{HnI@zdm>CtR}{g0&nSN6XxumSU%*3%-c zT>+Lo=@UyaoYs=03EF?oVc_0$gdJnD4}{uzVSg}^Rth4H7_b33>A60Bm8=LVL!Y@H zF1Iwa%YrC|v*r>WzG7%G|KKXl(jNpBE)|@N#E#J>r%Hw(BEp4ssq~y8M`v1qF<`j8 zBDRC)Kn20s6^Y+NCY3DdRQ{5jY@3+e6RHpNJZ`%qhCd7=9K=nz%;q892;@$6ustw19KN3%lfmYOO z7GPR}j%&xez8NbYsxo<^6E~khXcRYi{apO7t-Pdyn@ZJWgy|J;I2EuFH+-TGF1k!z zpkp2k76*0Gf28v1XnA`S!mXg)>LK%_M$aRtLNN2?gBZFR&f+-33%_tsMW%K_X9E!& z7LLTzrgFt-Z&(FVfyx}zAJhh=x3nAb*Bdo{+%4zKH`>;HKw`bUW^<-2c&w1Y=aJjO zHMssIll;gAbWHct+V{4{esanW4o=W>572|zk0fUN*1V@49PaJi+kQvm-=*}t#1O4z zN93|FP+1HTzjmkxqsP7V7&rmW*W*fy?EkI@4B3>Gm$(0~ascQ4&iZ57jUP%vwQJY= zT-wjB`m5FvmzI^aLESiS--15><(5fflkx%cspa0YkFXrd8KlV8kc!q2Xw5{aO`Lxf zl@L-?nXN9RVgO?p2vfEVGGDz?PY^Q7B0)!`DP?q#j2GLqkAuuJf#*ts9hb$H{PKJH zomHsQh?^i1z_X9Ha#FwFg`0ZNp#Yw~QT{*525N+RfWmCgH!68nP@wT3D2V#v%gKwP z_hTOkD(=6ynjG82CL5p*LALT}O>iMiDdYTm6bR_sdoOA8ukAe~>!kiIkhWGL^zlntPhzaLE_la=pz{ynZKN zH#KGJ@fxb}a%mtWZ3R79f}qW>n2t5%B4|n?_mWFQjE6SdjoQ0W^3Zi-Nk!&fZK7p* zCFh6PV+Cb6eIzB2fEH(!l?m2}n0ZYw_Bs5#YxDGO*_jSn9p1P6JTR*d4;jJtG%~ea zlN{t;8o)HC(ra8$c%hjtq*fVDl*V|U-TURj&Moo))H3NN_w zpQ=F`LtmSw$8Jt~$ZWRKaW8;BKlog>@9NXxIFLCg%c_8TD4jCd94rQ=Zt<+1Blw-k zj#3`Bi&l3_SN)#?c38t}=^g3w*RQY5y0xDzZv|Crp~br0f;mvz`O?*u(Yd$~ol;Oo z{XycOs-Jr35`0A=Bkz5PY>5C|)m8X|-0Jkjp)1D+fITuRbH}(?~-g zK6x>y$bSDF>8aL(-TBijcit$}eONx|L2KP1v6i5Tm}pP5M>Nm%mBdH<01;>WRZbdc zL`k56kRKz#`=O;nOoZZz_HZ@k@}DXHb}0cfoq30!X< zz&{hU~ z9D-iOgz_QpD@_JvL*DjxN!NrkHt|}Cpm<|UEw_c`xuE*!WV}wQ&rFsjOMq;TM#2@i zB4YfCi7P2yfiuYJ@o{{*#R=k5Gt?;=CAX1ur(!g8@C9Sn&q19f1c zxLM;%)fz&^n+ZPC7Cz&;W|`A;7d zRM^*RL@XOmi#we~kbD#NOMT!u1VK)~fhhlkDK@srgL2ikY{Cf#(C5Sk5J3!uPz7e> zTwGqcmTiBm0N}P_tsh^Ol+dp%X)?<6)*pVe zR^!sxGXV(4W3-sM1d~2I>Znnas8h=LZ8K;(JnCmJ87$_1K$979^p} zNU|?kEV*w&AJW?8GV)iH8NUwD75kRNdG6Y|54ZF66!q`iVj(ImEuxJbyq%cvxG<>Wj4Bg31^LYH$i7? zly|^V(5cqO5QTydU0aNqnfbYoYtQ9%q)sriBel*}};i4Xv)+f`qC=U!z%Qm-NstM>tyvg3wL9XD~KkDPTQYLfEUg z%*Ecr&HlGphhOpvEv}|qI7ho{F_lYU>X(_gpzSm{P+3PK%D8cYuZ%#ciN-W_c_y#$ zhJe@_V=VLeo8x{f4~7ayFPZyb=LV~LbIr~Dx@D!-bYm48Q7}rmj|grh^wbDv1VIzC z^?>)FhxJ@oCpS^LJ|{Fg8e4%oM;IFUxHdWGz)bTtO5Wc$Uy0JzGxP4vbrsL_GDTR# zg<8d|r+T-;GAg9;FB}))SRu;_EEFuwwqf zGVrv|BygocCp6f}HoqF!;YK~|_b;gS4ArcHI&OI+1JtCH|414*dIy2lE}e_TY}qq1 zFZ48Jx?LdHx;xOTq(p3Ll=;+a=4O`nr#yDe+`?B-G48sVnFE^*lpW+KA|%0EeO^4T zlD}WDVpwVy^S1J3=qXcEQj!SSFFV-$WG_q7?*EpozZC-a?lbRS53eI3KWS!H37VU_ zZhX+Xaic#w#V;cFzy`Eq37XXy>c75W(=*)Fh2E)ZeqBDqKl8139b`~pX|ODTbM6ZR zX9foc^`AP_@4G{V`22XLj`nNjrF#p5)vuk#A4v|q2}}gMMQ^{7lDWE3xkG9Wfs#S^ z9w@-PZA^-cq!u7ZmO9^`O*bZS*mwwEdCyIu%x3bQqXFHjwnF)0{>TK?Pl$*%bQ!1* z4V7Iha~vMBzvF67xo^qj9vxFR)98R2RS`RN>T4b5Md8IT)%ct$Mv=P*mGhDlv1gHq zBb*w9p@Rt@$8NSgbCxXbvn|fK@cKxb)o{2N!qEA&TRfo$SBWBac6PJ^DXE00Pst68 z#h+*lpOR;O;fLpL2=mwQx`n^B+IeO8%u^ZsI!kY>@OL@d>QDn3;m4WlO!|o*COBKe z+SR(Kfr$_h>JUdzi@0_bhoClax05mp6Q&CNP482)6-%&vGe2+Y{cM8C_H*ou7rgcC z>ay&_S9f9RxKU@AvdKW{Hq*J&Q8b3w?&6>0`}@*F{tq{2#!y&0;pWJS>kG;2R*P)E z{!9W#ww}TI;xb`XMU$sMh56ewcb~4<`Iq<0#D1(yE7LH1w^X)J3nR=hZE(TZa}0Yksf(gh9XQi9JPU(y&ZAZ zxV$Zf>yivH^L7WVpXqq9^O$v8+?o8UR;F{f-7Oe10l!|=3G6}Ti!3Z9Jdj*O?9GK? zKeLXM>4fhI)Ok5gC)=N!AJ%Eg7pvF6QLisa+f1fY8xyLU>Qqv`Iup~@kJaGeY6yGx z>^a$yN;Q)+nBpv=p4BZBl~nd!ELa9DDRneXDk>qsxyLXv)wS>FaG0a_ou4J_!IJ{E zE1eC*VE!bilQ&%5{5fs=JJnmJOKLANxZ*~AGeVi;#d$=ZxkrB!*V_ucf*WPwVLb9U z=&manc0`oMisomfoJMf04!2^0NNH~P7<&4NE6;w3KXL65XdZNVwr+p-?%A(rn_<5A zh~*Img|A5gDk7~UZbe-LTn2Wd&&ba=sL`CC>tQ~5n_(rFj4)K;aeBd#2;XaDOc6z_ z(RO2$qGWp>Np+@4pU%-tjg9Qkkn-6`KfEqxy@VBb!*}LvJm`6P_4?JQa?Fow^K~rm znOcLXk}N*k9572{gnFD#C&=D?oK_fG!Sj&6LCw*eqwon5Tfug>?axL=OmPHF)yy6! zbOVzb5y`oCrq}}>&!vZNrX66EKJhA>eGXD?H3E*$E8wUOYEQqOU;?hi(Mi=Ki-5b3 zqnNQ%{13~@B&5a+#WMx?))uqtNT^xu#4Q?dgx?E^NGXx~)hjD2FQ4k`c1}`QYg2j5 zU2NYAAB^tGkb@T!qs+{xKI;4FxxM{H&BklsyK{NF_rcfkO~?F%&CNwuadtC_Wx?8) zstY@f0j=p}wSobC%Lz5ryN)iuwww(*Kc2X0?E}`-bY4L6NN(tn8|Y=i&``P-&6GD6 z^D{#Z65qE|ONh1d2@7z2LwF*$Vay^TJ)375_N)TA)zLaQZ6jlT;Obmfrb2p7q_Rzp zk9T*Z41Q^_-1)|m@3J{uTWa7XnI}8<6zE^FVhD{~e>}NZB&#g<;$mNF$vzRuMq)VW z#$){9g~+$XH>1TO^X8mS5vppalK)vybUB8Th*G+=i%N3rO)jV7KC9&Im)d%IJUx1P z`Wf#gqHt*!&wDOmr3w#yTSG8#7#u~LvD#WgEE+;iWp!We)`yVz;Eue!{gm~V?^aBW zlvEcAlDAas-9D7&*-qS1N+MMCwi4_5aoEk?x6?6OJdxV_{B@q*&SrhHIKCPj3P?4JN%Lrlkrol@seH?xV^k!S!BEDaliyY|(R#DJ>V zki#=E7%dqRYkmK8Lzvz56+=kH@L7yuZn(^MABN?3_=eKWRYd!4aKICd!O~-%C;zOjkJyq0J5?WP z@A)p?v|)%VyRLwmHwyMOM>7$m?1tumC`IUCf=Zy23$#qU6*<*jf^0R$5d;CX|Jd~C zALJ;AY$s6Ktg^dxYq>J-x4r?mY8H$dYW6tT+ZMHGgoFMad^yXRM;JT|)G`vm%?6`N z7n`FEj{=7bR&@TWC;6WhRT5h=Vwc*~76{w*6{E~+T|Xu53Gfw58x)$I1ugL@ptw_i zra0~E;7j7VwdcYgp-v0XM);`ejLa!Q1E4H$Q~@t}2o#{;NQ44fpRjqzZ}-Py7EYnp z@0@FpX2AgLKFz5F5SO+=N5ymS?+7v&67RPabz^+nu;+I2%OZ+dlSQEv=y=?%?CxBZmzTLyWDXC3|hrywI?A6Pc(V#J( zQH!FS6Inn&NJ6MuaXvEVkDG}$MV}y41;}G+hN7U6_`=PeS_=b%L|;J7Cu;i5=oEV{ zTWWASYhF^1f_bmBf;KlnD0!~gTWJ@y>q19~Yq8>|;0O_fNY+z7nIoJ;fKP)JAw&+! ztVqXxW#d9oRzj7*T>7R-Gj#&zZ+=oUdY(=ReM`G0yVp1^lejjV@F=Zv?YJN;yR0gl zYR@8ZXXM^TW%ZP!wf^EgOLY_>MfA}t1WHktd$@Ee_ZUa?=p55>G*V+h_n=SpgD;2* z2CRQ&aF(GUF|-;>sdKj&po7F{lPj}h-|TQEdFAAZG@H8{iNxy&9Q~#H=*Ss9TjyjS zsZSA8m{>zsJW~}cNB~7B8>6hrJF55xhCgoTNR_tfFTHh?$JVXH7g{TGHlQ0uz6L=l z0}f*X=cE#GpC7tg%hbUbL69dB==@wC7)k>JzN14!U}|AuApz=|t=k=3Yy+L9L)qZl zB;lwRpFDQ(&+MUU~r@5a$;PZnvTw6x7!`y zW|Mf{(WiMo-P`$-vV>x+2}28Nx)@O=@5ra*P$#XOj?UMUzDtj6BLK8ZYVHqhZ%)^1 zT2_|WcD4o4$o;TVc}BuqRkRFl3QW`<`e+Xg*O!o*HT~eYe&Zbaw4K`rr|piroxcTb znOYeVtg9=%J(DS43%luU{-8BzlP&R|%e_<9#ryR$FUX=}Y3V-(hKH>4Rv7iuKP_#Vs=vHBR?!UOVd$ry} z=leD0*FWz{mD`l`fDGWs3xyGa`bKD9AS)|JC7&GHk9L8qd&s_LNKtW`^Gn(J%7$4 zMBQAL4Vb{0*_nv>Q*26*itt^quEfZUAHTf!ampf1b2hl?~3l*&^$s%&p0QCmlFM1H;l4r5*mo;>LwI1a7Ts- zOS9CCI*Pyvwj@(P^dE;AW zAXCFl!yeE8Q|ss1d2U_^IGD?NdU{zcpB4|0SZ?o&U7pZdT#okBdYXgk$o*nQPJzXp zdrA&|uppm6Hp@_Xp8*z;M1}aQ0QULN1d1=&t@1F}Q_z;s zs?gLM3w>M=h*1Ls?8^H^{HRBOX9%}yy2O*ClhHbgN%*e`yhq|j@kehFWIK)hm;j$*A29jfm^?-?_ld~*)vx|o>1U&y6Da9lmn&_* zN8L-1b>4Y1x99YDZ#&?CkCeubZ+@N)tU_qs=)n0|sU=P%4UOxMcy}#~^T0e@ainE{w9Gf_r`Psx=Q$TRz6hb3G{^ulj>9l+Do2 z$0MLrd{)iF-Q7@rcFHahB%V_4b4iR2u4&R|+^#XgQ7Q+_nY%#n1h7#6E`n|6XVgK& zOyUcMlmi)yDbvc#uQ5@5}zQnKiCfhKIg9ZwbfD!qQvuIAu( zp3Ad|u)N*c8pZ1dQkQS@ui7U{G=ndpDSc~Lzc|a;;3V$L@J}3oq*C)Eu=)W3*9GI- zM`pbwG{W29^nHf%d?@wnm{>ZGU0pji$J)12(FECdw4O&4)DP%P{**R;UOW4Y^_J|& zv>c35(}dw4m+%-E$mxO+3VJNu@e}>g;SW%FQi*)A-&o02k0T7NZBq>Bi9fMz2EKf_ z&G{6hssyk~U`j45AvXdExO5%ZLm`PpgE9v}lTmH$#q6S@b7OVP7Nn@kjgnSd7bJE( zyIJ<=bBGFhbc53*!;Lerh_07jNN6-11))4q#8r#Xd&3bTFiPQFql%GfJ&;YD5?_Ff z0C<&Dut@2guFJI8VAan-M~gH;z!|a6`lw&j$c9!9|VkVd%W9Qi{dK!}(*^}f)2$_rgy*6ZvyKfFN=USQyqs;xib z5dby#RQ@hWe^h)$=8scG<166I&H$ANQ9k+MN_^x=Xd!>Z!uucdLbmcD-J)r2a0*WE z?*DQ8csn4qEa%Q0-T!`!-)X5;Zo9qOv9&7EpQFV%DwLm51$>Hj2DvJ7v>e! zFF4;uzPF&MW0eiPy`+yP?I_x6alq+|Bi6gmq0l9o+Ie#Mp(rFwf z3m%9N-2PKZS1gGbGN>FWIPmM>G)__;IdCxRIWh)1>v4K4(uCpb zTvp+cV)25ECFw%$8X2@q0z8~-oZi}#3|g2NvmO7R!TkWB6p=l$4-hO)z{~vk=}m{undy9C~b<>acHiG8xE^f|u^k0&Y^EKo<3;5C38MYt95HRL6E_U!u26 zl1-mxgPy?QVab7%wm@4fMl!zg{1Koif)tk&Ro^Kdk1x+fnzzxB>&eOLe$>@1ovsA*pmu#v6{$D%S8V+S1#gR+y zlW0*5mR6d!rk;{iJA)a9Ld6)17^PgYNV*v`nn=Zt^NloBKDf zxQ(945=?uEj}ZiwXT6?Z0DZ&pA>FL)Bes>Ig6i<@UCNTRphyqI5vnz6>Zad0Us>yt zw<`tmZ=P0h@!B)fqZv?f?F~31Bj|VX%Hd}OHU(`%#ISjtNKS^RrVDpk6oui0b=CPk zR(!$i8GmZvEZjBPirY5mQ5A8Eye|@)`caRlB%#q_cRVAh=3H0G;o079xfm^}fkek= z%O^toQ`Q~a#d4lC1>YZ(c=C>0vew zco9p|iDIMd&`X!+MDrQq@QEFJ3QX>N4Z4>ERDgzw1w(am50auwuZ4h3!nvt@+ z_%gwx$AlV8zXK>cbTbs?*(DphUd~V8u#!2;kL4+8XDJr4Tu2cwjio&X2ZY%yyusLt)oIi!&Oz$NkM|foIMri{Uy?WVf)Mou=aB7m@<$3cNd7Qamhsz zF9%OpjLlS(9{<8OC>m&Tj^+||!rY?grSX1Hiq<*lxKL z!7XaDfKU3sSFdc{(z%ZRDP*MG90BxPiR78-;bISyfKy$3bsD7@fCrv zN;kckfN)_=G1DUE^Zn10tkdZ}LLQ}b{}UA?9o=h(6QtaQa*e-}aUtbI%84ZX%?{?F zU2BbPlTg*81~DIV$@%EI;_0AhuG>E0IMh@mqSHfI^_2C%>*PG{tWMmZb>kL^c9%!AU_wK=XIMHpv}k_XQ>#fw+XnyR)_E zp3gN?#KF4WUp@UgtBxTTYg{MQOL%XlH`u4`w*5q=RtI9JgPbo!O#aO)HYrMEdcS=5 zN`(d!6VQ zCalHqQE|7Ztm4J%L(z>;gIrkJ{Ol8#Q~~ki*~?bUqY4fY*Po?Hv?Hk&tb0IBqoqpW z0zE@VSAg%!i0I1@1%o3W)k0oAg)y#_Q;W9EBdh8!4hVxR?tZ1Ehue$G<&uJB?SYyf z(zTPk+0=bpFUc*Xa~B!6tH}3Z zOr{16y(v^bRcv@s{g^(rKjxce>XT$0-Phi^zKv2DgBO8n{PgCCsYHS`D*J7VBTQG7 zOeeO`4cpNugm(^t{Cb7f($|1?P@Nu*@4R;8(hkbsQL@bimKz6ecxO4Tbwfd=z?tsb zVaL!A58Z&L%NQ#%@DiIBm5@e{i9HSQ-Mx-%3ND-G@Q-DjP3Ya}l9sd|Hr=oQoLHj^ zsi2^sFxm{kr!%fHT}TfUb-7#oa||N;jZQ)1h$70KAxDdQA)UMdZ7s;r{uRI#)0vtG zI@iqD9yfo(rMd>|4)){Qhc^#PFX_B=$ov+Vw~55ol)gAGPSlne)?-hG4M>BQ3*Y5| z=Fi-i%9nb+3*RxoQddKJRf%o%`3XQ1o58u}C7B54$Cj?H9&y(hkWl?n$ba3&!l_FB meWk{no|2jw|0`3yot526SrxD|>EIR__}LSk2*uXaGyehzoZ{gC literal 0 HcmV?d00001 diff --git a/MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-ApplicationMetrics.png b/MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-ApplicationMetrics.png new file mode 100644 index 0000000000000000000000000000000000000000..e25e2eec471d2c19629a3618651f862835016bc1 GIT binary patch literal 306773 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%0DJ%}LE|Tn);s>YcEAto3#o4pyzLKFluz@1IX3g+ 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

    L^lqce$a7QrcCj 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 Mt5#PkjGUwYAETF89RL6T literal 0 HcmV?d00001 diff --git a/MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-ClusterMonitoring.png b/MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-ClusterMonitoring.png new file mode 100644 index 0000000000000000000000000000000000000000..5718b9fd2ade99280ec4aeb8298355eb43e79505 GIT binary patch literal 263274 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
    m0v2fGEMu%T5077v8F$ z0GzEG)Gy`R^1}^$paOU6+=`&}ymw^BNwsRmkLQDj6sxL2%FInLHkKMv&kEG*ku;Se z+XIg5WaI5oc#njo2+QJ)Xmk_h5?ro$T1VX3{G{euHplngj7HcLt}FD{);ARSF2VB1w9qGkl) zzAc>4?-+_R0s(n@w)6Ft(3^ig%F3aVO%CC5SueKwsb>|~fJBe*J+$ku(UgoAaI9$p z#>nycZ9S2j6SZUCnvgfw;a56{{E_MrnKHwMcC%jOrhrOH zF-;gnq}`UEp_Qd)g&9x|1$OCvJ+#!BWoaS)7j5?mc7Oo{hlJ9;ygVFwc)N>{9WHt5 ziPY?izS`~)pWOcmT+6+ZH$ee@$AOpe99qziI&IrVmQQP}__=DlDjZuj=BV}#GLXUr zcDUx%^~a>wda3y2@fS3CDbi+pbVL *LKssh1->Uc#yf=K(8pwv|7iSuj$gN;W-5 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 Cb_Fj!-Z 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 ?Y77p9Nesx3wHTTEw(Xef{4<|2m?yVjV&U2M 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 F|1W_Iv1|YU literal 0 HcmV?d00001 diff --git a/MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-DeploymentConfig.png b/MskWorkloadSimulationWorkbench/img/MSKWorkBenchDashboard-DeploymentConfig.png new file mode 100644 index 0000000000000000000000000000000000000000..1321285bad495e1b7db3e1612b8a45b5b7261cc9 GIT binary patch literal 54861 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%0AiW>jq)KDee+`>dw0=1N3s! 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.0.0" + } + }, + "app": { + "name": "@workspace/app", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@aws-sdk/client-cloudwatch": "^3.658.1", + "@aws-sdk/client-kafka": "^3.658.1", + "aws-msk-iam-sasl-signer-js": "^1.0.0", + "express": "^4.19.2", + "kafkajs": "^2.2.4", + "pino": "^8.17.2" + }, + "devDependencies": { + "@types/express": "^4.17.21", + "@types/node": "^22.7.4", + "ts-node": "^10.9.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "cdk": { + "version": "0.1.0", + "dependencies": { + "@aws-cdk/aws-msk-alpha": "^2.200.1-alpha.0", + "aws-cdk-lib": "^2.200.1", + "cdk-nag": "^2.36.12", + "constructs": "^10.0.0" + }, + "bin": { + "cdk": "dist/bin/cdk.js" + }, + "devDependencies": { + "@types/node": "22.7.9", + "aws-cdk": "2.1018.0", + "ts-node": "^10.9.2", + "typescript": "~5.6.3" + } + }, + "cdk/node_modules/@types/node": { + "version": "22.7.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "cdk/node_modules/aws-cdk": { + "version": "2.1018.0", + "dev": true, + "license": "Apache-2.0", + "bin": { + "cdk": "bin/cdk" + }, + "engines": { + "node": ">= 18.0.0" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "cdk/node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "cdk/node_modules/typescript": { + "version": "5.6.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "cdk/node_modules/undici-types": { + "version": "6.19.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.237", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.237.tgz", + "integrity": "sha512-OlXylbXI52lboFVJBFLae+WB99qWmI121x/wXQHEMj2RaVNVbWE+OAHcDk2Um1BitUQCaTf9ki57B0Fuqx0Rvw==" + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", + "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==" + }, + "node_modules/@aws-cdk/aws-msk-alpha": { + "version": "2.200.1-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-msk-alpha/-/aws-msk-alpha-2.200.1-alpha.0.tgz", + "integrity": "sha512-AQfDyNmGyECUZUcWogqs07lqkmnnEoxOMVE/79vHyCkz/bIRizGEom4opaPLZ+JuREceZBRmKh8KgX+G5G1arQ==", + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.200.1", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema": { + "version": "44.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-44.2.0.tgz", + "integrity": "sha512-oB3fq8yudGMHsSOyh2rFge5HVUMS6MOiAqK/6a9pyG4kHPkza0xCPlpvLFVCliD8y/VrsfxIcA584x9O0cxDiQ==", + "bundleDependencies": [ + "jsonschema", + "semver" + ], + "dependencies": { + "jsonschema": "~1.4.1", + "semver": "^7.7.2" + }, + "engines": { + "node": ">= 18.0.0" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema": { + "version": "1.4.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver": { + "version": "7.7.2", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudwatch": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch/-/client-cloudwatch-3.826.0.tgz", + "integrity": "sha512-JDBCiV9VQkuq8ZiDF6eF8RqDd6tJIIaauv7kHGCaoGiVN17RIX0OtUEUvuXvYgc95K7+kgySDT6dX1y1kn3+JQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.826.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-compression": "^4.1.11", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "@smithy/util-waiter": "^4.0.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.826.0.tgz", + "integrity": "sha512-3SStkRCHoB7a2Q4aGA++Zvlps8qxJhtCgSRs9cOSL9ldoYGCjOATkMCYmQD9iySge/WULPDEPf5qYlAyGfoRCg==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.826.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-kafka": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-kafka/-/client-kafka-3.826.0.tgz", + "integrity": "sha512-a4vd6o5QeiMLzMzepsbbG+RulVISVnSzUTcpR9jF7fUNcX6TuJYFOaoLnW9Fm3VU86NL8fczr3fbISpyfZIXtQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.826.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.826.0.tgz", + "integrity": "sha512-/FEKnUC3xPkLL4RuRydwzx+y4b55HIX6qLPbGnyIs+sNmCUyc/62ijtV1Ml+b++YzEF6jWNBsJOxeyZdgrJ3Ig==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.826.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.826.0.tgz", + "integrity": "sha512-WqBxqsRyh0/OOjliVUGEUZ6lpZ3nNALOBSTN7U2ZjFaYSLlmBvLdNegwMNZfLxGxnyQWAATlHFkasOTHJM7qTQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.826.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.826.0.tgz", + "integrity": "sha512-BGbQYzWj3ps+dblq33FY5tz/SsgJCcXX0zjQlSC07tYvU1jHTUvsefphyig+fY38xZ4wdKjbTop+KUmXUYrOXw==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@aws-sdk/xml-builder": "3.821.0", + "@smithy/core": "^3.5.3", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/signature-v4": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-utf8": "^4.0.0", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.826.0.tgz", + "integrity": "sha512-WnHLJD1iy0Gqyv0S7PXI+c1c9xBY8L5XnESOzYM78Sx1zlVHw557ZtQM1lKtHa6DiGMN4apYZr0lmalgmtHpQQ==", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.826.0.tgz", + "integrity": "sha512-DK3pQY8+iKK3MGDdC3uOZQ2psU01obaKlTYhEwNu4VWzgwQL4Vi3sWj4xSWGEK41vqZxiRLq6fOq7ysRI+qEZA==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.826.0.tgz", + "integrity": "sha512-N+IVZBh+yx/9GbMZTKO/gErBi/FYZQtcFRItoLbY+6WU+0cSWyZYfkoeOxHmQV3iX9k65oljERIWUmL9x6OSQg==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/property-provider": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-stream": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.826.0.tgz", + "integrity": "sha512-g7n+qSklq/Lzjxe2Ke5QFNCgYn26a3ydZnbFIk8QqYin4pzG+qiunaqJjpV3c/EeHMlfK8bBc7MXAylKzGRccQ==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.826.0", + "@aws-sdk/credential-provider-web-identity": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.826.0.tgz", + "integrity": "sha512-UfIJXxHjmSxH6bea00HBPLkjNI2D04enQA/xNLZvB+4xtzt1/gYdCis1P4/73f5aGVVVB4/zQMobBbnjkrmbQw==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-ini": "3.826.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.826.0", + "@aws-sdk/credential-provider-web-identity": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.826.0.tgz", + "integrity": "sha512-kURrc4amu3NLtw1yZw7EoLNEVhmOMRUTs+chaNcmS+ERm3yK0nKjaJzmKahmwlTQTSl3wJ8jjK7x962VPo+zWw==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.826.0.tgz", + "integrity": "sha512-F19J3zcfoom6OnQ0MyAtvduVKQXPgkz9i5ExSO01J2CzjbyMhCDA99qAjHYe+LwhW+W7P/jzBPd0+uOQ2Nhh9Q==", + "dependencies": { + "@aws-sdk/client-sso": "3.826.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/token-providers": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.826.0.tgz", + "integrity": "sha512-o27GZ6Hy7qhuvMFVUL2eFEpBzf33Jaa/x3u3SHwU0nL7ko7jmbpeF0x4+wmagpI9X2IvVlUxIs0VaQ3YayPLEA==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.826.0.tgz", + "integrity": "sha512-2wuJFyI5I1LTN3dAF9AzyPDX5zn8/3hWxE8+M3Q1iAP/JH4dBB3SFyvE88Ts01iQ/n4Hu8cAlU5Ke1dnrCxUnw==", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.826.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-cognito-identity": "3.826.0", + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-ini": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.826.0", + "@aws-sdk/credential-provider-web-identity": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.821.0.tgz", + "integrity": "sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.821.0.tgz", + "integrity": "sha512-0cvI0ipf2tGx7fXYEEN5fBeZDz2RnHyb9xftSgUsEq7NBxjV0yTZfLJw6Za5rjE6snC80dRN8+bTNR1tuG89zA==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.821.0.tgz", + "integrity": "sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.826.0.tgz", + "integrity": "sha512-j404+EcfBbtTlAhyObjXbdKwwDXO1pCxHvR5Fw8FXNvp/H330j6YnXgs3SJ6d3bZUwUJ/ztPx2S5AlBbLVLDFw==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@smithy/core": "^3.5.3", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.826.0.tgz", + "integrity": "sha512-p7olPq0uTtHqGuXI1GSc/gzKDvV55PMbLtnmupEDfnY9SoRu+QatbWQ6da9sI1lhOcNmRMgiNQBXFzaUFrG+SQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/middleware-host-header": "3.821.0", + "@aws-sdk/middleware-logger": "3.821.0", + "@aws-sdk/middleware-recursion-detection": "3.821.0", + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/region-config-resolver": "3.821.0", + "@aws-sdk/types": "3.821.0", + "@aws-sdk/util-endpoints": "3.821.0", + "@aws-sdk/util-user-agent-browser": "3.821.0", + "@aws-sdk/util-user-agent-node": "3.826.0", + "@smithy/config-resolver": "^4.1.4", + "@smithy/core": "^3.5.3", + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/hash-node": "^4.0.4", + "@smithy/invalid-dependency": "^4.0.4", + "@smithy/middleware-content-length": "^4.0.4", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/protocol-http": "^5.1.2", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", + "@smithy/util-endpoints": "^3.0.6", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.821.0.tgz", + "integrity": "sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.826.0.tgz", + "integrity": "sha512-iCOcVAqGPSHtQL8ZBXifZMEcHyUl9wJ8HvLZ5l1ohA/3ZNP+dqEPGi7jfhR5jZKs+xyp2jxByFqfil9PjI9c5A==", + "dependencies": { + "@aws-sdk/core": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.821.0.tgz", + "integrity": "sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.821.0.tgz", + "integrity": "sha512-Uknt/zUZnLE76zaAAPEayOeF5/4IZ2puTFXvcSCWHsi9m3tqbb9UozlnlVqvCZLCRWfQryZQoG2W4XSS3qgk5A==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/types": "^4.3.1", + "@smithy/util-endpoints": "^3.0.6", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.821.0.tgz", + "integrity": "sha512-h+xqmPToxDrZ0a7rxE1a8Oh4zpWfZe9oiQUphGtfiGFA6j75UiURH5J3MmGHa/G4t15I3iLLbYtUXxvb1i7evg==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/querystring-builder": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.804.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.804.0.tgz", + "integrity": "sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.821.0.tgz", + "integrity": "sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==", + "dependencies": { + "@aws-sdk/types": "3.821.0", + "@smithy/types": "^4.3.1", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.826.0.tgz", + "integrity": "sha512-wHw6bZQWIMcFF/8r03aY9Itp6JLBYY4absGGhCDK1dc3tPEfi8NVSdb05a/Oz+g4TVaDdxLo0OQ/OKMS1DFRHQ==", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.826.0", + "@aws-sdk/types": "3.821.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.821.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.821.0.tgz", + "integrity": "sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", + "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz", + "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz", + "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==", + "dev": true, + "dependencies": { + "@eslint/core": "^0.14.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", + "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.4.tgz", + "integrity": "sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.4.tgz", + "integrity": "sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==", + "dependencies": { + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.5.3.tgz", + "integrity": "sha512-xa5byV9fEguZNofCclv6v9ra0FYh5FATQW/da7FQUVTic94DfrN/NvmKZjrMyzbpqfot9ZjBaO8U1UeTbmSLuA==", + "dependencies": { + "@smithy/middleware-serde": "^4.0.8", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-stream": "^4.2.2", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.6.tgz", + "integrity": "sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==", + "dependencies": { + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.4.tgz", + "integrity": "sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==", + "dependencies": { + "@smithy/protocol-http": "^5.1.2", + "@smithy/querystring-builder": "^4.0.4", + "@smithy/types": "^4.3.1", + "@smithy/util-base64": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/hash-node": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.4.tgz", + "integrity": "sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==", + "dependencies": { + "@smithy/types": "^4.3.1", + "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.4.tgz", + "integrity": "sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz", + "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-compression": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-compression/-/middleware-compression-4.1.11.tgz", + "integrity": "sha512-NDmQHZu4s+MEPC7GMa+68GDJjhlWq0K6jpjf93TPdaOlg+eT/IFLA5CXbjsSWFQj80sBgjU18U3ny1iP+sbG7A==", + "dependencies": { + "@smithy/core": "^3.5.3", + "@smithy/is-array-buffer": "^4.0.0", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-utf8": "^4.0.0", + "fflate": "0.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.4.tgz", + "integrity": "sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==", + "dependencies": { + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.11.tgz", + "integrity": "sha512-zDogwtRLzKl58lVS8wPcARevFZNBOOqnmzWWxVe9XiaXU2CADFjvJ9XfNibgkOWs08sxLuSr81NrpY4mgp9OwQ==", + "dependencies": { + "@smithy/core": "^3.5.3", + "@smithy/middleware-serde": "^4.0.8", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "@smithy/url-parser": "^4.0.4", + "@smithy/util-middleware": "^4.0.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.12.tgz", + "integrity": "sha512-wvIH70c4e91NtRxdaLZF+mbLZ/HcC6yg7ySKUiufL6ESp6zJUSnJucZ309AvG9nqCFHSRB5I6T3Ez1Q9wCh0Ww==", + "dependencies": { + "@smithy/node-config-provider": "^4.1.3", + "@smithy/protocol-http": "^5.1.2", + "@smithy/service-error-classification": "^4.0.5", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-retry": "^4.0.5", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.8.tgz", + "integrity": "sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==", + "dependencies": { + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.4.tgz", + "integrity": "sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.1.3.tgz", + "integrity": "sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==", + "dependencies": { + "@smithy/property-provider": "^4.0.4", + "@smithy/shared-ini-file-loader": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.6.tgz", + "integrity": "sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==", + "dependencies": { + "@smithy/abort-controller": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/querystring-builder": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.4.tgz", + "integrity": "sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.1.2.tgz", + "integrity": "sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.4.tgz", + "integrity": "sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==", + "dependencies": { + "@smithy/types": "^4.3.1", + "@smithy/util-uri-escape": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.4.tgz", + "integrity": "sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.5.tgz", + "integrity": "sha512-LvcfhrnCBvCmTee81pRlh1F39yTS/+kYleVeLCwNtkY8wtGg8V/ca9rbZZvYIl8OjlMtL6KIjaiL/lgVqHD2nA==", + "dependencies": { + "@smithy/types": "^4.3.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.4.tgz", + "integrity": "sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.1.2.tgz", + "integrity": "sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==", + "dependencies": { + "@smithy/is-array-buffer": "^4.0.0", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "@smithy/util-hex-encoding": "^4.0.0", + "@smithy/util-middleware": "^4.0.4", + "@smithy/util-uri-escape": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.4.3.tgz", + "integrity": "sha512-xxzNYgA0HD6ETCe5QJubsxP0hQH3QK3kbpJz3QrosBCuIWyEXLR/CO5hFb2OeawEKUxMNhz3a1nuJNN2np2RMA==", + "dependencies": { + "@smithy/core": "^3.5.3", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-stack": "^4.0.4", + "@smithy/protocol-http": "^5.1.2", + "@smithy/types": "^4.3.1", + "@smithy/util-stream": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.3.1.tgz", + "integrity": "sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.4.tgz", + "integrity": "sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==", + "dependencies": { + "@smithy/querystring-parser": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-base64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz", + "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==", + "dependencies": { + "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz", + "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz", + "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz", + "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==", + "dependencies": { + "@smithy/is-array-buffer": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz", + "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.19.tgz", + "integrity": "sha512-mvLMh87xSmQrV5XqnUYEPoiFFeEGYeAKIDDKdhE2ahqitm8OHM3aSvhqL6rrK6wm1brIk90JhxDf5lf2hbrLbQ==", + "dependencies": { + "@smithy/property-provider": "^4.0.4", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.19.tgz", + "integrity": "sha512-8tYnx+LUfj6m+zkUUIrIQJxPM1xVxfRBvoGHua7R/i6qAxOMjqR6CpEpDwKoIs1o0+hOjGvkKE23CafKL0vJ9w==", + "dependencies": { + "@smithy/config-resolver": "^4.1.4", + "@smithy/credential-provider-imds": "^4.0.6", + "@smithy/node-config-provider": "^4.1.3", + "@smithy/property-provider": "^4.0.4", + "@smithy/smithy-client": "^4.4.3", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.6.tgz", + "integrity": "sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==", + "dependencies": { + "@smithy/node-config-provider": "^4.1.3", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz", + "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.4.tgz", + "integrity": "sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==", + "dependencies": { + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.5.tgz", + "integrity": "sha512-V7MSjVDTlEt/plmOFBn1762Dyu5uqMrV2Pl2X0dYk4XvWfdWJNe9Bs5Bzb56wkCuiWjSfClVMGcsuKrGj7S/yg==", + "dependencies": { + "@smithy/service-error-classification": "^4.0.5", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.2.2.tgz", + "integrity": "sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==", + "dependencies": { + "@smithy/fetch-http-handler": "^5.0.4", + "@smithy/node-http-handler": "^4.0.6", + "@smithy/types": "^4.3.1", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-hex-encoding": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz", + "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz", + "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==", + "dependencies": { + "@smithy/util-buffer-from": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-waiter": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.5.tgz", + "integrity": "sha512-4QvC49HTteI1gfemu0I1syWovJgPvGn7CVUoN9ZFkdvr/cCFkrEL7qNCdx/2eICqDWEGnnr68oMdSIPCLAriSQ==", + "dependencies": { + "@smithy/abort-controller": "^4.0.4", + "@smithy/types": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/buffers": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/@types/buffers/-/buffers-0.1.31.tgz", + "integrity": "sha512-wEZBb3o0Kh5RAj3V172vJCcxaCV8C2HJ7YLBBlG5Mwue0g4uRg5LWv8C6ap8MyFbXE6UbYEuvtHY7oTWAPeXEw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "22.15.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz", + "integrity": "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz", + "integrity": "sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.33.1", + "@typescript-eslint/type-utils": "8.33.1", + "@typescript-eslint/utils": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.33.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz", + "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.33.1", + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/typescript-estree": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.1.tgz", + "integrity": "sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.33.1", + "@typescript-eslint/types": "^8.33.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz", + "integrity": "sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz", + "integrity": "sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz", + "integrity": "sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.33.1", + "@typescript-eslint/utils": "8.33.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.1.tgz", + "integrity": "sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz", + "integrity": "sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.33.1", + "@typescript-eslint/tsconfig-utils": "8.33.1", + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/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, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/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, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.1.tgz", + "integrity": "sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.33.1", + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/typescript-estree": "8.33.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz", + "integrity": "sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.33.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@workspace/app": { + "resolved": "app", + "link": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.200.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.200.1.tgz", + "integrity": "sha512-kLeDtMJPYX3qSAGPONNa3XZk8Z/K3d0As8ui10/Hbv0ohsEsphxSy0xRoxdyj58/hGxOwj1TZsBezMp+TuPPrg==", + "bundleDependencies": [ + "@balena/dockerignore", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "table", + "yaml", + "mime-types" + ], + "dependencies": { + "@aws-cdk/asset-awscli-v1": "2.2.237", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", + "@aws-cdk/cloud-assembly-schema": "^44.1.0", + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^11.3.0", + "ignore": "^5.3.2", + "jsonschema": "^1.5.0", + "mime-types": "^2.1.35", + "minimatch": "^3.1.2", + "punycode": "^2.3.1", + "semver": "^7.7.2", + "table": "^6.9.0", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "constructs": "^10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/aws-cdk-lib/node_modules/ajv": { + "version": "8.17.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/astral-regex": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-deep-equal": { + "version": "3.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-uri": { + "version": "3.0.6", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "11.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.3.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/json-schema-traverse": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.5.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lodash.truncate": { + "version": "4.4.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/mime-db": { + "version": "1.52.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-types": { + "version": "2.1.35", + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "3.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.3.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/require-from-string": { + "version": "2.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.7.2", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/slice-ansi": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/table": { + "version": "6.9.0", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/aws-msk-iam-sasl-signer-js/-/aws-msk-iam-sasl-signer-js-1.0.0.tgz", + "integrity": "sha512-L0Jk0k2XNHMSGipJ8rRdTq51KrH/gwrfZ39iKY9BWHGOAv7EygsG4qJC7lIRsbu5/ZHB886Z3WsOsFxqR2R4XQ==", + "dependencies": { + "@aws-crypto/sha256-js": "^4.0.0", + "@aws-sdk/client-sts": "^3.378.0", + "@aws-sdk/credential-providers": "^3.370.0", + "@aws-sdk/util-format-url": "^3.347.0", + "@smithy/signature-v4": "^2.0.1", + "@types/buffers": "0.1.31" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@aws-crypto/sha256-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-4.0.0.tgz", + "integrity": "sha512-MHGJyjE7TX9aaqXj7zk2ppnFUOhaDs5sP+HtNS0evOxn72c+5njUmyJmpGd7TfyoDznZlHMmdo/xGUdu2NIjNQ==", + "dependencies": { + "@aws-crypto/util": "^4.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@aws-crypto/util": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-4.0.0.tgz", + "integrity": "sha512-2EnmPy2gsFZ6m8bwUQN4jq+IyXV3quHAcwPOS6ZA3k+geujiqI8aRokO2kFJe+idJ/P3v4qWI186rVMo0+zLDQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/signature-v4": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz", + "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-uri-escape": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/util-hex-encoding": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz", + "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/util-middleware": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz", + "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/util-uri-escape": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz", + "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/aws-msk-iam-sasl-signer-js/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cdk": { + "resolved": "cdk", + "link": true + }, + "node_modules/cdk-nag": { + "version": "2.36.12", + "resolved": "https://registry.npmjs.org/cdk-nag/-/cdk-nag-2.36.12.tgz", + "integrity": "sha512-asPA15WkriIgxVZpGdbSW7wIRs+TLB5cJgFaqhYwrsqqrr1LqMvg+0p7oFv1ocW4Wuk3Yu3VskjaYF+K2nqBSQ==", + "peerDependencies": { + "aws-cdk-lib": "^2.156.0", + "constructs": "^10.0.5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/constructs": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.4.2.tgz", + "integrity": "sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/eslint": { + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz", + "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.14.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.28.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", + "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz", + "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "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, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-xml-parser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fflate": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.1.tgz", + "integrity": "sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "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==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/kafkajs": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz", + "integrity": "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pino": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", + "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.6.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sonic-boom": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ] + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/synckit": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", + "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.2.4" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/thread-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/MskWorkloadSimulationWorkbench/package.json b/MskWorkloadSimulationWorkbench/package.json new file mode 100644 index 0000000..bfa5270 --- /dev/null +++ b/MskWorkloadSimulationWorkbench/package.json @@ -0,0 +1,45 @@ +{ + "name": "workspace-root", + "version": "1.0.0", + "description": "TypeScript workspace with CDK and App projects", + "private": true, + "workspaces": [ + "cdk", + "app" + ], + "engines": { + "node": ">=22.0.0" + }, + "scripts": { + "build": "npm run build --workspaces", + "clean": "npm run clean --workspaces", + "deploy": "cd cdk && npx cdk deploy --require-approval never", + "deploy:stack": "npm run build && npm run deploy", + "destroy": "cd cdk && npx cdk destroy --force", + "destroy:stack": "npm run destroy", + "lint": "eslint . --ext .ts,.js", + "lint:fix": "eslint . --ext .ts,.js --fix", + "format": "prettier --write .", + "format:check": "prettier --check .", + "type-check": "tsc --noEmit", + "nag-check": "cd cdk && npm run nag-check" + }, + "devDependencies": { + "@types/node": "^22.9.0", + "@typescript-eslint/eslint-plugin": "^8.33.1", + "@typescript-eslint/parser": "^8.33.1", + "eslint": "^9.28.0", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-prettier": "^5.4.1", + "prettier": "^3.5.3", + "typescript": "^5.6.3" + }, + "keywords": [ + "typescript", + "workspace", + "cdk", + "nodejs" + ], + "author": "", + "license": "ISC" +} diff --git a/MskWorkloadSimulationWorkbench/tsconfig.json b/MskWorkloadSimulationWorkbench/tsconfig.json new file mode 100644 index 0000000..e7ccaaf --- /dev/null +++ b/MskWorkloadSimulationWorkbench/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "commonjs", + "lib": ["ES2022", "DOM"], + "types": ["node"], + "outDir": "./dist", + "rootDir": "./", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "removeComments": true, + "noImplicitAny": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "noImplicitThis": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true, + "resolveJsonModule": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true + }, + "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts", "**/test/**"] +} diff --git a/README.md b/README.md index 05664bb..3b42770 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This repository contains projects that are 100% generated using Amazon Q Develop | Project | Description | Technologies Used | |---------|-------------|------------------| | BedrockAgentsProxy | A proxy-based solution that integrates [Bedrock Agents](https://aws.amazon.com/bedrock/agents/) with existing systems while meeting specialized security and governance needs. Enables generative AI agentic flows to enhance existing applications. | [Amazon API Gateway](https://aws.amazon.com/api-gateway/), [Amazon Bedrock](https://aws.amazon.com/bedrock/), [Amazon CloudFront](https://aws.amazon.com/cloudfront/), [AWS CDK](https://aws.amazon.com/cdk/), [AWS Cognito](https://aws.amazon.com/cognito/), [AWS Lambda](https://aws.amazon.com/lambda/), Express, Node.js, React | +| MskWorkloadSimulationWorkbench | A configurable workload simulation platform for learning and preparing [Amazon MSK Express](https://aws.amazon.com/msk/) production deployments. Features customizable workloads, real-time monitoring, and hands-on experience with MSK Express broker capabilities through multi-service architecture testing. | [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/), [Amazon ECS](https://aws.amazon.com/ecs/), [Amazon MSK](https://aws.amazon.com/msk/), [Amazon VPC](https://aws.amazon.com/vpc/), [AWS CDK](https://aws.amazon.com/cdk/), Node.js, TypeScript | | MusicLibraryServerlessApplication | A serverless music library application that enables users to manage their music collections and create playlists. Features user authentication, music collection management, playlist creation, and responsive design with comprehensive search and filtering capabilities. | [Amazon API Gateway](https://aws.amazon.com/api-gateway/), [Amazon DynamoDB](https://aws.amazon.com/dynamodb/), [Amazon S3](https://aws.amazon.com/s3/), [AWS Cognito](https://aws.amazon.com/cognito/), [AWS Lambda](https://aws.amazon.com/lambda/), [AWS SAM](https://aws.amazon.com/serverless/sam/), FastAPI, Material-UI, Python, React | | NovaSonicVoiceAssistant | A voice-enabled task management system that combines traditional todo functionality with AI-powered voice interactions using [Amazon Nova Sonic](https://aws.amazon.com/ai/generative-ai/nova/speech/) - a state-of-the-art speech-to-speech model for conversational AI. Users can manage tasks through both a web interface and natural language voice commands. | [Amazon Bedrock](https://aws.amazon.com/bedrock/), [Amazon CloudFront](https://aws.amazon.com/cloudfront/), [Amazon DynamoDB](https://aws.amazon.com/dynamodb/), [Amazon ECS](https://aws.amazon.com/ecs/), [AWS CDK](https://aws.amazon.com/cdk/), [AWS Cognito](https://aws.amazon.com/cognito/), [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/), Node.js/Express, React, TypeScript | From 9009bc85ec9a1a9155bfbba7bf17d114af558b57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Sep 2025 05:24:31 +0000 Subject: [PATCH 6/9] Bump brace-expansion in /MskWorkloadSimulationWorkbench Bumps and [brace-expansion](https://github.com/juliangruber/brace-expansion). These dependencies needed to be updated together. Updates `brace-expansion` from 1.1.11 to 1.1.12 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12) Updates `brace-expansion` from 2.0.1 to 2.0.2 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect - dependency-name: brace-expansion dependency-version: 2.0.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- MskWorkloadSimulationWorkbench/package-lock.json | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/MskWorkloadSimulationWorkbench/package-lock.json b/MskWorkloadSimulationWorkbench/package-lock.json index 83af8f3..45f6315 100644 --- a/MskWorkloadSimulationWorkbench/package-lock.json +++ b/MskWorkloadSimulationWorkbench/package-lock.json @@ -2153,10 +2153,11 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "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" } @@ -2909,10 +2910,11 @@ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" From 0afd83523b794218563909f8a26827994e932432 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 01:54:43 +0000 Subject: [PATCH 7/9] Bump vite from 4.5.14 to 5.4.21 in /BedrockAgentsProxy Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.14 to 5.4.21. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 5.4.21 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- BedrockAgentsProxy/package-lock.json | 586 ++++++++++++++++++++++----- BedrockAgentsProxy/ui/package.json | 2 +- 2 files changed, 479 insertions(+), 109 deletions(-) diff --git a/BedrockAgentsProxy/package-lock.json b/BedrockAgentsProxy/package-lock.json index 77ef391..e1a66a7 100644 --- a/BedrockAgentsProxy/package-lock.json +++ b/BedrockAgentsProxy/package-lock.json @@ -9079,6 +9079,314 @@ "node": ">=14.0.0" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@smart-todo-app/api": { "resolved": "api", "link": true @@ -10437,9 +10745,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, "node_modules/@types/estree-jsx": { @@ -16366,19 +16674,44 @@ } }, "node_modules/rollup": { - "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", - "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", "fsevents": "~2.3.2" } }, @@ -17562,33 +17895,34 @@ } }, "node_modules/vite": { - "version": "4.5.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", - "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -17606,6 +17940,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -17617,10 +17954,27 @@ } } }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -17635,9 +17989,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -17652,9 +18006,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -17669,9 +18023,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -17686,9 +18040,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -17703,9 +18057,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -17720,9 +18074,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -17737,9 +18091,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -17754,9 +18108,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -17771,9 +18125,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -17788,9 +18142,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -17805,9 +18159,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -17822,9 +18176,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -17839,9 +18193,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -17856,9 +18210,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -17873,9 +18227,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -17890,9 +18244,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -17907,9 +18261,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -17924,9 +18278,9 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -17941,9 +18295,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -17958,9 +18312,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -17975,9 +18329,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -17992,9 +18346,9 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -18005,28 +18359,44 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite/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/which": { @@ -18264,7 +18634,7 @@ "postcss": "^8.4.27", "tailwindcss": "^3.3.3", "typescript": "^5.0.2", - "vite": "^4.5.14" + "vite": "^5.4.21" } } } diff --git a/BedrockAgentsProxy/ui/package.json b/BedrockAgentsProxy/ui/package.json index 3e2f1f4..77e1d31 100644 --- a/BedrockAgentsProxy/ui/package.json +++ b/BedrockAgentsProxy/ui/package.json @@ -38,6 +38,6 @@ "postcss": "^8.4.27", "tailwindcss": "^3.3.3", "typescript": "^5.0.2", - "vite": "^4.5.14" + "vite": "^5.4.21" } } From c545bb40ff4948f61db6ad5b00da2bfb72e8d5f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Nov 2025 07:29:39 +0000 Subject: [PATCH 8/9] Bump node-forge in /MusicLibraryServerlessApplication/frontend Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2. - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: node-forge dependency-version: 1.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .../frontend/package-lock.json | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/MusicLibraryServerlessApplication/frontend/package-lock.json b/MusicLibraryServerlessApplication/frontend/package-lock.json index fcf0dc5..4127a87 100644 --- a/MusicLibraryServerlessApplication/frontend/package-lock.json +++ b/MusicLibraryServerlessApplication/frontend/package-lock.json @@ -127,6 +127,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -782,6 +783,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1665,6 +1667,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-module-imports": "^7.27.1", @@ -2493,6 +2496,7 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2536,6 +2540,7 @@ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -3985,6 +3990,7 @@ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.18.0.tgz", "integrity": "sha512-bbH/HaJZpFtXGvWg3TsBWG4eyt3gah3E7nCNU8GLyRjVoWcA91Vm/T+sjHfUcwgJSw9iLtucfHBoq+qW/T30aA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.23.9", "@mui/core-downloads-tracker": "^5.18.0", @@ -5318,6 +5324,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.62.0", @@ -5371,6 +5378,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -5740,6 +5748,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5838,6 +5847,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6836,6 +6846,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001737", "electron-to-chromium": "^1.5.211", @@ -8809,6 +8820,7 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -11716,6 +11728,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", @@ -15193,9 +15206,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", + "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" @@ -15878,6 +15891,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -17065,6 +17079,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17442,6 +17457,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -17592,6 +17608,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -17623,6 +17640,7 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -18144,6 +18162,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "license": "MIT", + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -18401,6 +18420,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -20044,6 +20064,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=10" }, @@ -20476,6 +20497,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -20547,6 +20569,7 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "license": "MIT", + "peer": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -20967,6 +20990,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", From 4ec35d38522d05602e1dbef7c78b0f14e72add55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 04:07:33 +0000 Subject: [PATCH 9/9] Bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /BedrockAgentsProxy/ui Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1. - [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases) - [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1) --- updated-dependencies: - dependency-name: mdast-util-to-hast dependency-version: 13.2.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- BedrockAgentsProxy/ui/package-lock.json | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/BedrockAgentsProxy/ui/package-lock.json b/BedrockAgentsProxy/ui/package-lock.json index d196bfd..695b72c 100644 --- a/BedrockAgentsProxy/ui/package-lock.json +++ b/BedrockAgentsProxy/ui/package-lock.json @@ -171,6 +171,7 @@ "version": "6.11.1", "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-6.11.1.tgz", "integrity": "sha512-4JCANRSrCJX/arDaNbiqvJgvQE2KW3tBTVrESsh63PyAm8S4sg2bplpGJYF5e7fjqYs/qp0iwO9VFH/57HbroA==", + "peer": true, "dependencies": { "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/types": "3.398.0", @@ -720,6 +721,7 @@ "version": "3.621.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.621.0.tgz", "integrity": "sha512-mMjk3mFUwV2Y68POf1BQMTF+F6qxt5tPu6daEUCNGC9Cenk3h2YXQQoS4/eSyYzuBiYk3vx49VgleRvdvkg8rg==", + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", @@ -866,6 +868,7 @@ "version": "3.621.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.621.0.tgz", "integrity": "sha512-707uiuReSt+nAx6d0c21xLjLm2lxeKc7padxjv92CIrIocnQSlJPxSCM7r5zBhwiahJA6MNQwmTl2xznU67KgA==", + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", @@ -1518,6 +1521,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", @@ -3983,6 +3987,7 @@ "version": "18.3.20", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -3993,6 +3998,7 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.6.tgz", "integrity": "sha512-nf22//wEbKXusP6E9pfOCDwFdHAX4u172eaJI4YkDRQEZiorm6KfYnSC2SWLDMVWUOWPERmJnN0ujeAfTBLvrw==", "devOptional": true, + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -4051,6 +4057,7 @@ "version": "6.21.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", @@ -4246,6 +4253,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4397,6 +4405,7 @@ "version": "6.14.1", "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-6.14.1.tgz", "integrity": "sha512-O/hGulvMjHHdf+VqIpRdfM9fHzE0eOG7zxnBl7yEvZpAejj2/jnSSzUf2sXoQM2Kdvqw7KuaTERZD3U3v6Z74g==", + "peer": true, "dependencies": { "@aws-amplify/analytics": "7.0.77", "@aws-amplify/api": "6.3.8", @@ -4510,6 +4519,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -5062,6 +5072,7 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -6425,9 +6436,10 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -7286,6 +7298,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -7501,6 +7514,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -7512,6 +7526,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -8408,6 +8423,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8656,6 +8672,7 @@ "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -8776,6 +8793,7 @@ "version": "4.38.3", "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.38.3.tgz", "integrity": "sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/xstate"

    PcjfAd^NDFD|$%nB78``=0&L@9h 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