From e45372760d26d263a84dc1a37964e4e830348e58 Mon Sep 17 00:00:00 2001 From: bombies Date: Tue, 31 Oct 2023 10:13:58 -0500 Subject: [PATCH] Integrate AWS S3 and CloudFront for handling user avatar updates --- .gitignore | 2 + package-lock.json | 5352 +++++++++++------ package.json | 11 +- .../components/EditableUserProfile.tsx | 57 +- src/app/(site)/components/FileUpload.tsx | 114 + src/app/(site)/components/UserProfile.tsx | 4 +- .../inputs/editable/EditableAvatar.tsx | 72 + .../providers/user-data/useUserDataState.tsx | 28 +- src/app/(site)/components/sidebar/Sidebar.tsx | 2 +- src/app/(site)/hooks/s3/UploadS3File.ts | 35 + src/app/(site)/hooks/s3/useCloudFrontUrl.tsx | 13 + src/app/(site)/hooks/user/UpdateSelfMember.ts | 10 + src/app/api/me/route.ts | 10 + src/app/api/me/self-user.dto.ts | 16 + src/app/api/me/self-user.service.ts | 26 +- src/app/api/s3/route.ts | 13 + src/app/api/s3/s3.dto.ts | 20 + src/app/api/s3/s3.service.ts | 110 + src/app/api/utils/MediaType.ts | 14 + src/app/api/utils/node-utils.ts | 4 + src/libs/S3.ts | 11 + src/libs/cloudfront.ts | 11 + src/utils/client/client-data-utils.tsx | 3 +- 23 files changed, 4186 insertions(+), 1752 deletions(-) create mode 100644 src/app/(site)/components/FileUpload.tsx create mode 100644 src/app/(site)/components/inputs/editable/EditableAvatar.tsx create mode 100644 src/app/(site)/hooks/s3/UploadS3File.ts create mode 100644 src/app/(site)/hooks/s3/useCloudFrontUrl.tsx create mode 100644 src/app/(site)/hooks/user/UpdateSelfMember.ts create mode 100644 src/app/api/me/self-user.dto.ts create mode 100644 src/app/api/s3/route.ts create mode 100644 src/app/api/s3/s3.dto.ts create mode 100644 src/app/api/s3/s3.service.ts create mode 100644 src/app/api/utils/MediaType.ts create mode 100644 src/app/api/utils/node-utils.ts create mode 100644 src/libs/S3.ts create mode 100644 src/libs/cloudfront.ts diff --git a/.gitignore b/.gitignore index dfc2033..3c3e096 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,5 @@ yarn-error.log* next-env.d.ts .idea + +/private diff --git a/package-lock.json b/package-lock.json index 5a3e8dd..1654320 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,22 @@ "version": "0.1.0", "dependencies": { "@auth/prisma-adapter": "^1.0.5", + "@aws-sdk/client-cloudfront": "^3.438.0", + "@aws-sdk/client-s3": "^3.438.0", + "@aws-sdk/cloudfront-signer": "^3.433.0", + "@aws-sdk/credential-providers": "^3.438.0", + "@aws-sdk/s3-request-presigner": "^3.438.0", "@nextui-org/react": "^2.1.13", "@prisma/client": "^5.5.2", "@theinternetfolks/snowflake": "^1.3.0", "@uidotdev/usehooks": "^2.4.1", + "aws-sdk": "^2.1483.0", "axios": "^1.5.1", "bcrypt": "^5.1.1", "framer-motion": "^10.16.4", "next": "^13.5.6", "next-auth": "^4.24.3", + "next-connect": "^1.0.0-next.4", "next-nprogress-bar": "^2.1.2", "next-themes": "^0.2.1", "react": "^18.2.0", @@ -26,11 +33,13 @@ "react-hot-toast": "^2.4.1", "sass": "^1.69.4", "swr": "^2.2.4", - "zod": "^3.22.4" + "zod": "^3.22.4", + "zod-form-data": "^2.0.2" }, "devDependencies": { "@next-auth/prisma-adapter": "^1.0.7", "@types/bcrypt": "^5.0.1", + "@types/multer": "^1.4.9", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", @@ -115,1581 +124,3178 @@ "@prisma/client": ">=2.26.0 || >=3 || >=4 || >=5" } }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" } }, - "node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "optional": true, + "node_modules/@aws-crypto/crc32/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-crypto/crc32c": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", + "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", "dependencies": { - "@emotion/memoize": "0.7.4" + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" } }, - "node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "optional": true + "node_modules/@aws-crypto/crc32c/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/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/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-crypto/sha1-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", + "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha1-browser/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-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/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-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "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-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/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-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "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-sdk/client-cloudfront": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.438.0.tgz", + "integrity": "sha512-phuvJDZa/O4xINbyHI+YVZcpez/aKj3Z14eYRx4oqQR3fQbXlI95AWUOAsKqarFfPIX9DqbUaeOyNxyzgRAdfQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.438.0", + "@aws-sdk/core": "3.436.0", + "@aws-sdk/credential-provider-node": "3.438.0", + "@aws-sdk/middleware-host-header": "3.433.0", + "@aws-sdk/middleware-logger": "3.433.0", + "@aws-sdk/middleware-recursion-detection": "3.433.0", + "@aws-sdk/middleware-signing": "3.433.0", + "@aws-sdk/middleware-user-agent": "3.438.0", + "@aws-sdk/region-config-resolver": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@aws-sdk/util-user-agent-browser": "3.433.0", + "@aws-sdk/util-user-agent-node": "3.437.0", + "@aws-sdk/xml-builder": "3.310.0", + "@smithy/config-resolver": "^2.0.16", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/hash-node": "^2.0.12", + "@smithy/invalid-dependency": "^2.0.12", + "@smithy/middleware-content-length": "^2.0.14", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/middleware-retry": "^2.0.18", + "@smithy/middleware-serde": "^2.0.12", + "@smithy/middleware-stack": "^2.0.6", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.16", + "@smithy/util-defaults-mode-node": "^2.0.21", + "@smithy/util-endpoints": "^1.0.2", + "@smithy/util-retry": "^2.0.5", + "@smithy/util-stream": "^2.0.17", + "@smithy/util-utf8": "^2.0.0", + "@smithy/util-waiter": "^2.0.12", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=14.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.438.0.tgz", + "integrity": "sha512-ZaMx8S2Uex5UXk1R5Qje2aE8lhXz1bw5Pk0Kjjz/8mo+CBiQDgtHu5SrS9ccLfBrFIcz6HtDWsJazEQaBaLplQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.438.0", + "@aws-sdk/core": "3.436.0", + "@aws-sdk/credential-provider-node": "3.438.0", + "@aws-sdk/middleware-host-header": "3.433.0", + "@aws-sdk/middleware-logger": "3.433.0", + "@aws-sdk/middleware-recursion-detection": "3.433.0", + "@aws-sdk/middleware-signing": "3.433.0", + "@aws-sdk/middleware-user-agent": "3.438.0", + "@aws-sdk/region-config-resolver": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@aws-sdk/util-user-agent-browser": "3.433.0", + "@aws-sdk/util-user-agent-node": "3.437.0", + "@smithy/config-resolver": "^2.0.16", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/hash-node": "^2.0.12", + "@smithy/invalid-dependency": "^2.0.12", + "@smithy/middleware-content-length": "^2.0.14", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/middleware-retry": "^2.0.18", + "@smithy/middleware-serde": "^2.0.12", + "@smithy/middleware-stack": "^2.0.6", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.16", + "@smithy/util-defaults-mode-node": "^2.0.21", + "@smithy/util-endpoints": "^1.0.2", + "@smithy/util-retry": "^2.0.5", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=14.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "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" + "node_modules/@aws-sdk/client-s3": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.438.0.tgz", + "integrity": "sha512-5VxdfyZ9oovbK5qzIYW4ZeJ1waD6VqfclSDQLHmgulekM2JYo/goEQJSjWnI4VMWuMsopzvqyeA+L9xq9uXLBQ==", + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.438.0", + "@aws-sdk/core": "3.436.0", + "@aws-sdk/credential-provider-node": "3.438.0", + "@aws-sdk/middleware-bucket-endpoint": "3.433.0", + "@aws-sdk/middleware-expect-continue": "3.433.0", + "@aws-sdk/middleware-flexible-checksums": "3.433.0", + "@aws-sdk/middleware-host-header": "3.433.0", + "@aws-sdk/middleware-location-constraint": "3.433.0", + "@aws-sdk/middleware-logger": "3.433.0", + "@aws-sdk/middleware-recursion-detection": "3.433.0", + "@aws-sdk/middleware-sdk-s3": "3.433.0", + "@aws-sdk/middleware-signing": "3.433.0", + "@aws-sdk/middleware-ssec": "3.433.0", + "@aws-sdk/middleware-user-agent": "3.438.0", + "@aws-sdk/region-config-resolver": "3.433.0", + "@aws-sdk/signature-v4-multi-region": "3.437.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@aws-sdk/util-user-agent-browser": "3.433.0", + "@aws-sdk/util-user-agent-node": "3.437.0", + "@aws-sdk/xml-builder": "3.310.0", + "@smithy/config-resolver": "^2.0.16", + "@smithy/eventstream-serde-browser": "^2.0.12", + "@smithy/eventstream-serde-config-resolver": "^2.0.12", + "@smithy/eventstream-serde-node": "^2.0.12", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/hash-blob-browser": "^2.0.12", + "@smithy/hash-node": "^2.0.12", + "@smithy/hash-stream-node": "^2.0.12", + "@smithy/invalid-dependency": "^2.0.12", + "@smithy/md5-js": "^2.0.12", + "@smithy/middleware-content-length": "^2.0.14", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/middleware-retry": "^2.0.18", + "@smithy/middleware-serde": "^2.0.12", + "@smithy/middleware-stack": "^2.0.6", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.16", + "@smithy/util-defaults-mode-node": "^2.0.21", + "@smithy/util-endpoints": "^1.0.2", + "@smithy/util-retry": "^2.0.5", + "@smithy/util-stream": "^2.0.17", + "@smithy/util-utf8": "^2.0.0", + "@smithy/util-waiter": "^2.0.12", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.438.0.tgz", + "integrity": "sha512-L/xKq+K78PShLku8x5gM6lZDUp7LhFJ2ksKH7Vll+exSZq+QUaxuzjp4gqdzh6B0oIshv2jssQlUa0ScOmVRMg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.436.0", + "@aws-sdk/middleware-host-header": "3.433.0", + "@aws-sdk/middleware-logger": "3.433.0", + "@aws-sdk/middleware-recursion-detection": "3.433.0", + "@aws-sdk/middleware-user-agent": "3.438.0", + "@aws-sdk/region-config-resolver": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@aws-sdk/util-user-agent-browser": "3.433.0", + "@aws-sdk/util-user-agent-node": "3.437.0", + "@smithy/config-resolver": "^2.0.16", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/hash-node": "^2.0.12", + "@smithy/invalid-dependency": "^2.0.12", + "@smithy/middleware-content-length": "^2.0.14", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/middleware-retry": "^2.0.18", + "@smithy/middleware-serde": "^2.0.12", + "@smithy/middleware-stack": "^2.0.6", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.16", + "@smithy/util-defaults-mode-node": "^2.0.21", + "@smithy/util-endpoints": "^1.0.2", + "@smithy/util-retry": "^2.0.5", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", - "dev": true, + "node_modules/@aws-sdk/client-sts": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.438.0.tgz", + "integrity": "sha512-UBxLZKVVvbR4LHwSNSqaKx22YBSOGkavrh4SyDP8o8XOlXeRxTCllfSfjL9K5Mktp+ZwQ2NiubNcwmvUcGKbbg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.436.0", + "@aws-sdk/credential-provider-node": "3.438.0", + "@aws-sdk/middleware-host-header": "3.433.0", + "@aws-sdk/middleware-logger": "3.433.0", + "@aws-sdk/middleware-recursion-detection": "3.433.0", + "@aws-sdk/middleware-sdk-sts": "3.433.0", + "@aws-sdk/middleware-signing": "3.433.0", + "@aws-sdk/middleware-user-agent": "3.438.0", + "@aws-sdk/region-config-resolver": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@aws-sdk/util-user-agent-browser": "3.433.0", + "@aws-sdk/util-user-agent-node": "3.437.0", + "@smithy/config-resolver": "^2.0.16", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/hash-node": "^2.0.12", + "@smithy/invalid-dependency": "^2.0.12", + "@smithy/middleware-content-length": "^2.0.14", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/middleware-retry": "^2.0.18", + "@smithy/middleware-serde": "^2.0.12", + "@smithy/middleware-stack": "^2.0.6", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.16", + "@smithy/util-defaults-mode-node": "^2.0.21", + "@smithy/util-endpoints": "^1.0.2", + "@smithy/util-retry": "^2.0.5", + "@smithy/util-utf8": "^2.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=14.0.0" } }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "1.17.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz", - "integrity": "sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg==", + "node_modules/@aws-sdk/cloudfront-signer": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/cloudfront-signer/-/cloudfront-signer-3.433.0.tgz", + "integrity": "sha512-I86TTLVSAFb0nMVPWxNipVwkmf0dw0FEchoA1sJx5j9YPyBhc0gzg3Af1Qkzzty+Pkwwc+CtPbqHkYxbXI1tFg==", "dependencies": { - "@formatjs/intl-localematcher": "0.4.2", - "tslib": "^2.4.0" + "@smithy/url-parser": "^2.0.12" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "node_modules/@aws-sdk/core": { + "version": "3.436.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.436.0.tgz", + "integrity": "sha512-vX5/LjXvCejC2XUY6TSg1oozjqK6BvkE75t0ys9dgqyr5PlZyZksMoeAFHUlj0sCjhT3ziWCujP1oiSpPWY9hg==", "dependencies": { - "tslib": "^2.4.0" + "@smithy/smithy-client": "^2.1.12" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.0.tgz", - "integrity": "sha512-7uqC4C2RqOaBQtcjqXsSpGRYVn+ckjhNga5T/otFh6MgxRrCJQqvjfbrGLpX1Lcbxdm5WH3Z2WZqt1+Tm/cn/Q==", + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.438.0.tgz", + "integrity": "sha512-/HgSPPvzIQ25SMII0vYlarJbijOAsXZCjayKWZ7+hilzju22hMB0ZTPM1E3QopWoZ6os76K59aAACfjhVAfIUg==", "dependencies": { - "@formatjs/ecma402-abstract": "1.17.2", - "@formatjs/icu-skeleton-parser": "1.6.2", - "tslib": "^2.4.0" + "@aws-sdk/client-cognito-identity": "3.438.0", + "@aws-sdk/types": "3.433.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.2.tgz", - "integrity": "sha512-VtB9Slo4ZL6QgtDFJ8Injvscf0xiDd4bIV93SOJTBjUF4xe2nAWOoSjLEtqIG+hlIs1sNrVKAaFo3nuTI4r5ZA==", + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz", + "integrity": "sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==", "dependencies": { - "@formatjs/ecma402-abstract": "1.17.2", - "tslib": "^2.4.0" + "@aws-sdk/types": "3.433.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz", - "integrity": "sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA==", + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.435.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.435.0.tgz", + "integrity": "sha512-i07YSy3+IrXwAzp3goCMo2OYzAwqRGIWPNMUX5ziFgA1eMlRWNC2slnbqJzax6xHrU8HdpNESAfflnQvUVBqYQ==", "dependencies": { - "tslib": "^2.4.0" + "@aws-sdk/types": "3.433.0", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/util-stream": "^2.0.17", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.438.0.tgz", + "integrity": "sha512-WYPQR3pXoHJjn9/RMWipUhsUNFy6zhOiII6u8LJ5w84aNqIjV4+BdRYztRNGJD98jdtekhbkX0YKoSuZqP+unQ==", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@aws-sdk/credential-provider-env": "3.433.0", + "@aws-sdk/credential-provider-process": "3.433.0", + "@aws-sdk/credential-provider-sso": "3.438.0", + "@aws-sdk/credential-provider-web-identity": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=14.0.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, - "engines": { - "node": ">=12.22" + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.438.0.tgz", + "integrity": "sha512-uaw3D2R0svyrC32qyZ2aOv/l0AT9eClh+eQsZJTQD3Kz9q+2VdeOBThQ8fsMfRtm26nUbZo6A/CRwxkm6okI+w==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.433.0", + "@aws-sdk/credential-provider-ini": "3.438.0", + "@aws-sdk/credential-provider-process": "3.433.0", + "@aws-sdk/credential-provider-sso": "3.438.0", + "@aws-sdk/credential-provider-web-identity": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@internationalized/date": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.0.tgz", - "integrity": "sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ==", + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz", + "integrity": "sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==", "dependencies": { - "@swc/helpers": "^0.5.0" + "@aws-sdk/types": "3.433.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@internationalized/message": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.1.tgz", - "integrity": "sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==", + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.438.0.tgz", + "integrity": "sha512-Xykli/64xR18cBV5P0XFxcH120omtfAjC/cFy/9nFU/+dPvbk0uu1yEOZYteWHyGGkPN4PkHmbh60GiUCLQkWQ==", "dependencies": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" + "@aws-sdk/client-sso": "3.438.0", + "@aws-sdk/token-providers": "3.438.0", + "@aws-sdk/types": "3.433.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@internationalized/number": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.3.0.tgz", - "integrity": "sha512-PuxgnKE5NJMOGKUcX1QROo8jq7sW7UWLrL5B6Rfe8BdWgU/be04cVvLyCeALD46vvbAv3d1mUvyHav/Q9a237g==", + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz", + "integrity": "sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==", "dependencies": { - "@swc/helpers": "^0.5.0" + "@aws-sdk/types": "3.433.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@internationalized/string": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.1.1.tgz", - "integrity": "sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA==", + "node_modules/@aws-sdk/credential-providers": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.438.0.tgz", + "integrity": "sha512-EBtcczPtUyXsN/yNGvZxGU/Ildl8kJeq7Vt7MsFLtOmYXDWoMsSIEVuSYbBdzBal1z03fmd/Mmjr0DhYiSAqMg==", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.438.0", + "@aws-sdk/client-sso": "3.438.0", + "@aws-sdk/client-sts": "3.438.0", + "@aws-sdk/credential-provider-cognito-identity": "3.438.0", + "@aws-sdk/credential-provider-env": "3.433.0", + "@aws-sdk/credential-provider-http": "3.435.0", + "@aws-sdk/credential-provider-ini": "3.438.0", + "@aws-sdk/credential-provider-node": "3.438.0", + "@aws-sdk/credential-provider-process": "3.433.0", + "@aws-sdk/credential-provider-sso": "3.438.0", + "@aws-sdk/credential-provider-web-identity": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.433.0.tgz", + "integrity": "sha512-Lk1xIu2tWTRa1zDw5hCF1RrpWQYSodUhrS/q3oKz8IAoFqEy+lNaD5jx+fycuZb5EkE4IzWysT+8wVkd0mAnOg==", "dependencies": { - "@swc/helpers": "^0.5.0" + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-arn-parser": "3.310.0", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "@smithy/util-config-provider": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.433.0.tgz", + "integrity": "sha512-Uq2rPIsjz0CR2sulM/HyYr5WiqiefrSRLdwUZuA7opxFSfE808w5DBWSprHxbH3rbDSQR4nFiOiVYIH8Eth7nA==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@aws-sdk/types": "3.433.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.433.0.tgz", + "integrity": "sha512-Ptssx373+I7EzFUWjp/i/YiNFt6I6sDuRHz6DOUR9nmmRTlHHqmdcBXlJL2d9wwFxoBRCN8/PXGsTc/DJ4c95Q==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.433.0", + "@smithy/is-array-buffer": "^2.0.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz", + "integrity": "sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.433.0.tgz", + "integrity": "sha512-2YD860TGntwZifIUbxm+lFnNJJhByR/RB/+fV1I8oGKg+XX2rZU+94pRfHXRywoZKlCA0L+LGDA1I56jxrB9sw==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz", + "integrity": "sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@aws-sdk/types": "3.433.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz", + "integrity": "sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==", "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" + "@aws-sdk/types": "3.433.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@next-auth/prisma-adapter": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.7.tgz", - "integrity": "sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==", - "dev": true, - "peerDependencies": { - "@prisma/client": ">=2.26.0 || >=3", - "next-auth": "^4" + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.433.0.tgz", + "integrity": "sha512-mkn3DiSuMVh4NTLsduC42Av+ApcOor52LMoQY0Wc6M5Mx7Xd05U+G1j8sjI9n/1bs5cZ/PoeRYJ/9bL1Xxznnw==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-arn-parser": "3.310.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@next/env": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", - "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.6.tgz", - "integrity": "sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==", - "dev": true, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz", + "integrity": "sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==", "dependencies": { - "glob": "7.1.7" + "@aws-sdk/middleware-signing": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@next/swc-darwin-arm64": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz", - "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz", + "integrity": "sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.4.0", + "@smithy/util-middleware": "^2.0.5", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-darwin-x64": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz", - "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.433.0.tgz", + "integrity": "sha512-2AMaPx0kYfCiekxoL7aqFqSSoA9du+yI4zefpQNLr+1cZOerYiDxdsZ4mbqStR1CVFaX6U6hrYokXzjInsvETw==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz", - "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.438.0.tgz", + "integrity": "sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz", - "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz", + "integrity": "sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==", + "dependencies": { + "@smithy/node-config-provider": "^2.1.3", + "@smithy/types": "^2.4.0", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.5", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz", - "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/s3-request-presigner": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.438.0.tgz", + "integrity": "sha512-fVJIeNuSZsVX0eiF+cvcPPn1jpbGY54xignn3mDcYDiAw1+qkkYEDHjnR4e4JPlx3zkR3hsTT3b1GzgjQ+1sSQ==", + "dependencies": { + "@aws-sdk/signature-v4-multi-region": "3.437.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-format-url": "3.433.0", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/protocol-http": "^3.0.8", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz", - "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.437.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.437.0.tgz", + "integrity": "sha512-MmrqudssOs87JgVg7HGVdvJws/t4kcOrJJd+975ki+DPeSoyK2U4zBDfDkJ+n0tFuZBs3sLwLh0QXE7BV28rRA==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz", - "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@aws-sdk/token-providers": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.438.0.tgz", + "integrity": "sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.433.0", + "@aws-sdk/middleware-logger": "3.433.0", + "@aws-sdk/middleware-recursion-detection": "3.433.0", + "@aws-sdk/middleware-user-agent": "3.438.0", + "@aws-sdk/region-config-resolver": "3.433.0", + "@aws-sdk/types": "3.433.0", + "@aws-sdk/util-endpoints": "3.438.0", + "@aws-sdk/util-user-agent-browser": "3.433.0", + "@aws-sdk/util-user-agent-node": "3.437.0", + "@smithy/config-resolver": "^2.0.16", + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/hash-node": "^2.0.12", + "@smithy/invalid-dependency": "^2.0.12", + "@smithy/middleware-content-length": "^2.0.14", + "@smithy/middleware-endpoint": "^2.1.3", + "@smithy/middleware-retry": "^2.0.18", + "@smithy/middleware-serde": "^2.0.12", + "@smithy/middleware-stack": "^2.0.6", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.8", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.16", + "@smithy/util-defaults-mode-node": "^2.0.21", + "@smithy/util-endpoints": "^1.0.2", + "@smithy/util-retry": "^2.0.5", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz", - "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@aws-sdk/types": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz", + "integrity": "sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==", + "dependencies": { + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz", - "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz", + "integrity": "sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==", + "dependencies": { + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/@nextui-org/accordion": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@nextui-org/accordion/-/accordion-2.0.23.tgz", - "integrity": "sha512-P8TEo79eSMh56VudWF0SvAV8ISC5Qwlx4v03SP3w+Chubl9nrbFbEWyAizOc7KR3ge+VOaS88wyjiZ5BzpG1XQ==", + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.438.0.tgz", + "integrity": "sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA==", "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/divider": "2.0.20", - "@nextui-org/framer-transitions": "2.0.10", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-accordion": "2.0.1", - "@react-aria/button": "^3.8.2", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/utils": "^3.20.0", - "@react-stately/tree": "^3.7.2", - "@react-types/accordion": "3.0.0-alpha.16", - "@react-types/shared": "^3.20.0" + "@aws-sdk/types": "3.433.0", + "@smithy/util-endpoints": "^1.0.2", + "tslib": "^2.5.0" }, - "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@nextui-org/aria-utils": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.0.10.tgz", - "integrity": "sha512-16ITgeF7N/PlbSWPpP1sktEqvSCFGDtY3DwE8xUk1hReRsixOARJGf7p8VgUXKOnqsDoRU6IO3FU4V/ZJ6pmlA==", + "node_modules/@aws-sdk/util-format-url": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.433.0.tgz", + "integrity": "sha512-Z6T7I4hELoQ4eeIuKIKx+52B9bc3SCPhjgMcFAFQeesjmHAr0drHyoGNJIat6ckvgI6zzFaeaBZTvWDA2hyDkA==", "dependencies": { - "@nextui-org/system": "2.0.10", - "@react-aria/utils": "^3.20.0", - "@react-stately/collections": "^3.10.1", - "@react-types/overlays": "^3.8.2", - "@react-types/shared": "^3.20.0" + "@aws-sdk/types": "3.433.0", + "@smithy/querystring-builder": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": ">=18" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@nextui-org/avatar": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/avatar/-/avatar-2.0.21.tgz", - "integrity": "sha512-CK6C49/BmSyDYsq+jOUkJTxQtqy3qGAI+m7p+wd7si8u5h6RmEQnqRG//wKUMkb1W3tA9DUexCLP+q+ybjqrcA==", + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz", + "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-image": "2.0.3", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/utils": "^3.20.0" + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": ">=18" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@nextui-org/badge": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@nextui-org/badge/-/badge-2.0.19.tgz", - "integrity": "sha512-kzWoOj+P1H+CfAPC7tdu3EJ6zhpKOjE6vLoZvLVtD9LVp3x+LJArbjGrCJrJtnmSKiH5cFc/vK9XytKnJi/ggA==", + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz", + "integrity": "sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9" + "@aws-sdk/types": "3.433.0", + "@smithy/types": "^2.4.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.437.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.437.0.tgz", + "integrity": "sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA==", + "dependencies": { + "@aws-sdk/types": "3.433.0", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "react": ">=18" + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@nextui-org/button": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/button/-/button-2.0.21.tgz", - "integrity": "sha512-Y0iSrRdyALe0paImTwhtkLSbdXBhxJxqUUcIxUK20DQiG2ZFO+UL4DsrshOox7D7HpDpbf7Pn/5Lwm04skrc3Q==", + "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": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/ripple": "2.0.21", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/spinner": "2.0.19", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-button": "2.0.5", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz", + "integrity": "sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz", + "integrity": "sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg==", + "dependencies": { + "@formatjs/intl-localematcher": "0.4.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.0.tgz", + "integrity": "sha512-7uqC4C2RqOaBQtcjqXsSpGRYVn+ckjhNga5T/otFh6MgxRrCJQqvjfbrGLpX1Lcbxdm5WH3Z2WZqt1+Tm/cn/Q==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.17.2", + "@formatjs/icu-skeleton-parser": "1.6.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.2.tgz", + "integrity": "sha512-VtB9Slo4ZL6QgtDFJ8Injvscf0xiDd4bIV93SOJTBjUF4xe2nAWOoSjLEtqIG+hlIs1sNrVKAaFo3nuTI4r5ZA==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.17.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz", + "integrity": "sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@internationalized/date": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.0.tgz", + "integrity": "sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.1.tgz", + "integrity": "sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.3.0.tgz", + "integrity": "sha512-PuxgnKE5NJMOGKUcX1QROo8jq7sW7UWLrL5B6Rfe8BdWgU/be04cVvLyCeALD46vvbAv3d1mUvyHav/Q9a237g==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.1.1.tgz", + "integrity": "sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@next-auth/prisma-adapter": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.7.tgz", + "integrity": "sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==", + "dev": true, + "peerDependencies": { + "@prisma/client": ">=2.26.0 || >=3", + "next-auth": "^4" + } + }, + "node_modules/@next/env": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", + "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.6.tgz", + "integrity": "sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==", + "dev": true, + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz", + "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz", + "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz", + "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz", + "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz", + "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz", + "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz", + "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz", + "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz", + "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nextui-org/accordion": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@nextui-org/accordion/-/accordion-2.0.23.tgz", + "integrity": "sha512-P8TEo79eSMh56VudWF0SvAV8ISC5Qwlx4v03SP3w+Chubl9nrbFbEWyAizOc7KR3ge+VOaS88wyjiZ5BzpG1XQ==", + "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/divider": "2.0.20", + "@nextui-org/framer-transitions": "2.0.10", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-accordion": "2.0.1", + "@react-aria/button": "^3.8.2", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-stately/tree": "^3.7.2", + "@react-types/accordion": "3.0.0-alpha.16", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/aria-utils": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.0.10.tgz", + "integrity": "sha512-16ITgeF7N/PlbSWPpP1sktEqvSCFGDtY3DwE8xUk1hReRsixOARJGf7p8VgUXKOnqsDoRU6IO3FU4V/ZJ6pmlA==", + "dependencies": { + "@nextui-org/system": "2.0.10", + "@react-aria/utils": "^3.20.0", + "@react-stately/collections": "^3.10.1", + "@react-types/overlays": "^3.8.2", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/avatar": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/avatar/-/avatar-2.0.21.tgz", + "integrity": "sha512-CK6C49/BmSyDYsq+jOUkJTxQtqy3qGAI+m7p+wd7si8u5h6RmEQnqRG//wKUMkb1W3tA9DUexCLP+q+ybjqrcA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-image": "2.0.3", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/badge": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@nextui-org/badge/-/badge-2.0.19.tgz", + "integrity": "sha512-kzWoOj+P1H+CfAPC7tdu3EJ6zhpKOjE6vLoZvLVtD9LVp3x+LJArbjGrCJrJtnmSKiH5cFc/vK9XytKnJi/ggA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/button": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/button/-/button-2.0.21.tgz", + "integrity": "sha512-Y0iSrRdyALe0paImTwhtkLSbdXBhxJxqUUcIxUK20DQiG2ZFO+UL4DsrshOox7D7HpDpbf7Pn/5Lwm04skrc3Q==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/ripple": "2.0.21", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/spinner": "2.0.19", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-button": "2.0.5", + "@react-aria/button": "^3.8.2", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-types/button": "^3.8.0", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/card": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/card/-/card-2.0.21.tgz", + "integrity": "sha512-yu0hpPkHg/3mwQ0rgxMnMgRSh+ZNw8mRB8BngpfXYPrANahi0jOvEEC8PDaAxIxiOrDKdlxiAt+kkwADo0R6nw==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/ripple": "2.0.21", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-button": "2.0.5", "@react-aria/button": "^3.8.2", "@react-aria/focus": "^3.14.1", "@react-aria/interactions": "^3.18.0", "@react-aria/utils": "^3.20.0", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/checkbox": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@nextui-org/checkbox/-/checkbox-2.0.22.tgz", + "integrity": "sha512-SSZUwcMsqkB1MtBibEk/WfBNLRQKtTS+54H82ZC6vzPzrSqhUlxN1yThWz3MLAw2qSQ1KGyx/4YDJSI9325XUg==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@react-aria/checkbox": "^3.11.0", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-aria/visually-hidden": "^3.8.4", + "@react-stately/checkbox": "^3.5.0", + "@react-stately/toggle": "^3.6.2", + "@react-types/checkbox": "^3.5.1", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/chip": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/chip/-/chip-2.0.21.tgz", + "integrity": "sha512-z5akLSpElF/j0b13hCywkRGWbI+9PEgawYMktLUnnokXRoUH7XOaq3XoP4Fa5rzBt4ajVButtXwxCsXc3izspQ==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-types/checkbox": "^3.5.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/code": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@nextui-org/code/-/code-2.0.19.tgz", + "integrity": "sha512-t3/tZf3uZu3lA4ah+BIogToUsX9BRYe+vyQMzPAY3D54QtdNz/HuB5pxZimpRPlOaxUeDGXzrfWwm3pB7E6iqQ==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/divider": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/@nextui-org/divider/-/divider-2.0.20.tgz", + "integrity": "sha512-q4pg+T0krjZiETBk2ZnV5icg7X88GHIaIyi7uT7ZdpJalMiN4+V9pxWDpvqV383B7W3tp8splIY1Hjb2e4bdLA==", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/dropdown": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@nextui-org/dropdown/-/dropdown-2.1.10.tgz", + "integrity": "sha512-hDlTHlsq1VellMsuZkmYcFhMoYz81vMeqthXIKxSOr5samcBkOvuyBx6qtJ1kJGSmmeSZSDuvSQLd+LyFj1EpQ==", + "dependencies": { + "@nextui-org/menu": "2.0.11", + "@nextui-org/popover": "2.1.9", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@react-aria/focus": "^3.14.1", + "@react-aria/menu": "^3.10.2", + "@react-aria/utils": "^3.20.0", + "@react-stately/menu": "^3.5.5", + "@react-types/menu": "^3.9.4" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/framer-transitions": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/framer-transitions/-/framer-transitions-2.0.10.tgz", + "integrity": "sha512-focG+CjyMPxZbPWMV4VdqoqeD8exDzwnAq1hLR2iBRtzl15hSwiznajdDs0PKzGAe5jz5ShlQLq3EYCFl/zTGw==", + "dependencies": { + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/image": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.0.21.tgz", + "integrity": "sha512-J1cYO+hBd7Ktr4JI0Hm7/ZW6UlhAyz3hx/BhNLhVQdQPtuUIlIkLWFahdVTIhYiq3hi1hD9JAGdRWhpRs2iDfA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-image": "2.0.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/input": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@nextui-org/input/-/input-2.1.9.tgz", + "integrity": "sha512-Qf5xCjzEtDag7Cd3czXgM0iSmfhOr0DedNekxLSWxPoM12pInZHAx7bVPF103d3/A5ZJi3O9O8Iu+Xro4p9J+A==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/textfield": "^3.12.0", + "@react-aria/utils": "^3.20.0", + "@react-stately/utils": "^3.7.0", + "@react-types/shared": "^3.20.0", + "@react-types/textfield": "^3.8.0", + "react-textarea-autosize": "^8.5.2" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/kbd": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.0.20.tgz", + "integrity": "sha512-2P3wfGHrJ91NJR0ADVpcdEhysuRW3VwNaxNqiHGs7SRpr2ewyj8I0za7gA9u+E0H8IcHkg/Riad8DIXwNXqmNg==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9", + "@react-aria/utils": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/link": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@nextui-org/link/-/link-2.0.22.tgz", + "integrity": "sha512-m6M3/tNinrsiIw6elj5JzY6lzK4pWquLVqjRrhDR3kNGRP48ymgKsN64T/pUgKTTlm70hS3ew3xhRs+s4budMw==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-link": "2.0.14", + "@react-aria/focus": "^3.14.1", + "@react-aria/link": "^3.5.4", + "@react-aria/utils": "^3.20.0", + "@react-types/link": "^3.4.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/listbox": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@nextui-org/listbox/-/listbox-2.1.10.tgz", + "integrity": "sha512-lhcCdr/Q9tVFi26ehvy/G6UEhcx2CvuYikiKX/9zomMcCCYARq3duB7G+/muJs3mQ3/IYyQ2VHIh7f5XLAmZgg==", + "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/divider": "2.0.20", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-is-mobile": "2.0.5", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/listbox": "^3.10.2", + "@react-aria/utils": "^3.20.0", + "@react-stately/list": "^3.9.2", + "@react-types/menu": "^3.9.4", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/menu": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@nextui-org/menu/-/menu-2.0.11.tgz", + "integrity": "sha512-OgpvihGNIpq1YQFfgtUHWGyqf9FV6qik7yiTSfhKbF0HUVemN8y7VLtFErVjrP4LQP3NMkujYXBel7pYD9jdqA==", + "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/divider": "2.0.20", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-is-mobile": "2.0.5", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/menu": "^3.10.2", + "@react-aria/utils": "^3.20.0", + "@react-stately/menu": "^3.5.5", + "@react-stately/tree": "^3.7.2", + "@react-types/menu": "^3.9.4", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/modal": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@nextui-org/modal/-/modal-2.0.23.tgz", + "integrity": "sha512-D6+iXe62beRtSNQqryAE0un+4uoAHDD80CeCBmpne2vrE+nM5o2cMz6n1q4ww/7HWh+Sp5fXCyjl7jZ1aO8Eeg==", + "dependencies": { + "@nextui-org/framer-transitions": "2.0.10", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-button": "2.0.5", + "@nextui-org/use-aria-modal-overlay": "2.0.5", + "@nextui-org/use-disclosure": "2.0.5", + "@react-aria/dialog": "^3.5.5", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/overlays": "^3.17.0", + "@react-aria/utils": "^3.20.0", + "@react-stately/overlays": "^3.6.2", + "@react-types/overlays": "^3.8.2", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/navbar": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.0.22.tgz", + "integrity": "sha512-s6XJUcx7p+8tUBVPK5QPqk8jjrnUt083r8hoa0SA5WWe4TY4QiEFWX2maaDFINo00/6mZmMlql0QJh1OrhdsDA==", + "dependencies": { + "@nextui-org/framer-transitions": "2.0.10", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-toggle-button": "2.0.5", + "@nextui-org/use-scroll-position": "2.0.3", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/overlays": "^3.17.0", + "@react-aria/utils": "^3.20.0", + "@react-stately/toggle": "^3.6.2", + "@react-stately/utils": "^3.7.0", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/pagination": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@nextui-org/pagination/-/pagination-2.0.22.tgz", + "integrity": "sha512-kQTAhWSOJZIuzr15jWTpX+DFFCAQx8/hGRIzbjHBrmQMrGsCuLtpaMyawddjC22ZWAyCK7N+Q4CvoUZYWjZnPQ==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-pagination": "2.0.3", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "scroll-into-view-if-needed": "3.0.10" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/popover": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@nextui-org/popover/-/popover-2.1.9.tgz", + "integrity": "sha512-pn4ATf0/fAOrZO7RYuBQVH2mZc+QgP62UY8lhwxomA0aEz9RAfpzRjdM7LRk/7YOdzunfG5dd7L9UTEB57uUxw==", + "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/button": "2.0.21", + "@nextui-org/framer-transitions": "2.0.10", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-button": "2.0.5", + "@react-aria/dialog": "^3.5.5", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/overlays": "^3.17.0", + "@react-aria/utils": "^3.20.0", + "@react-stately/overlays": "^3.6.2", "@react-types/button": "^3.8.0", + "@react-types/overlays": "^3.8.2", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/progress": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/progress/-/progress-2.0.21.tgz", + "integrity": "sha512-5g6NdFJfJECcOeRYXZkDx41qoqZvy8LoR1i2EPQMHJ2f5OTJNj8gNqLw99x5ciFalbcCL5yCzrZBIJkCTK8r+A==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-is-mounted": "2.0.3", + "@react-aria/i18n": "^3.8.2", + "@react-aria/progress": "^3.4.5", + "@react-aria/utils": "^3.20.0", + "@react-types/progress": "^3.4.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/radio": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@nextui-org/radio/-/radio-2.0.22.tgz", + "integrity": "sha512-MXjxIwwZJdgpZ6/E7DBzfSErzxHKlF1jbvW9DlYM8i6BRGd0lOze5zH1R2UY0oGVGB7vx39pFJrDdPHVOqE5OA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/radio": "^3.8.0", + "@react-aria/utils": "^3.20.0", + "@react-aria/visually-hidden": "^3.8.4", + "@react-stately/radio": "^3.9.0", + "@react-types/radio": "^3.5.1", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/react": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@nextui-org/react/-/react-2.1.13.tgz", + "integrity": "sha512-NXlQhRKRK+XW9RbRUQiENN/Lk6zxWaWNu82Qz0zs6IuBY83iPFCCKXI7bDDAlcKud+/KlGBuji6GtaKJQJskqA==", + "dependencies": { + "@nextui-org/accordion": "2.0.23", + "@nextui-org/avatar": "2.0.21", + "@nextui-org/badge": "2.0.19", + "@nextui-org/button": "2.0.21", + "@nextui-org/card": "2.0.21", + "@nextui-org/checkbox": "2.0.22", + "@nextui-org/chip": "2.0.21", + "@nextui-org/code": "2.0.19", + "@nextui-org/divider": "2.0.20", + "@nextui-org/dropdown": "2.1.10", + "@nextui-org/image": "2.0.21", + "@nextui-org/input": "2.1.9", + "@nextui-org/kbd": "2.0.20", + "@nextui-org/link": "2.0.22", + "@nextui-org/listbox": "2.1.10", + "@nextui-org/menu": "2.0.11", + "@nextui-org/modal": "2.0.23", + "@nextui-org/navbar": "2.0.22", + "@nextui-org/pagination": "2.0.22", + "@nextui-org/popover": "2.1.9", + "@nextui-org/progress": "2.0.21", + "@nextui-org/radio": "2.0.22", + "@nextui-org/ripple": "2.0.21", + "@nextui-org/scroll-shadow": "2.1.9", + "@nextui-org/select": "2.1.11", + "@nextui-org/skeleton": "2.0.19", + "@nextui-org/snippet": "2.0.25", + "@nextui-org/spacer": "2.0.19", + "@nextui-org/spinner": "2.0.19", + "@nextui-org/switch": "2.0.21", + "@nextui-org/system": "2.0.10", + "@nextui-org/table": "2.0.23", + "@nextui-org/tabs": "2.0.21", + "@nextui-org/theme": "2.1.9", + "@nextui-org/tooltip": "2.0.24", + "@nextui-org/user": "2.0.22", + "@react-aria/visually-hidden": "^3.8.4" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/react-rsc-utils": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.9.tgz", + "integrity": "sha512-RrA6LzLPj6y9LJIILeqJ5JKmXUFZDbTRZDTTz0rd8qv3yyt5zNgOI07dkG6P43+q5cLNnG9j+P11+Nr0W81cDg==" + }, + "node_modules/@nextui-org/react-utils": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.9.tgz", + "integrity": "sha512-UK4/9uy7A6A2vMnbIWprJo7b/8+N/zg4D5Hf36pI6xR0mkt4RY9OGuo24I/ZBwoU0k5kjaod/hTW6nCQwCPtvg==", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/ripple": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.0.21.tgz", + "integrity": "sha512-6jXCwSN5wAj3SZIP4pQncS6W/TIdgpcgXX5Oxrlpqk0m04TcEIe+3FeLroCZ/MLz5+ml3GUPWxHD8hVTwE3Ddw==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/scroll-shadow": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.9.tgz", + "integrity": "sha512-ipB9br95RTrDzM7K2gEQVRJGCzh+QSCRO8mNMxIkO7MuxHuVW9zyZ5SevstR5W0rgbQuvfxEZq1xlL0eUB8RlA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-data-scroll-overflow": "2.1.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/select": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@nextui-org/select/-/select-2.1.11.tgz", + "integrity": "sha512-SDFlzgyKtUd+dL8gSYmw+olVtePr0Z3RVjAc7qQPFkZR156Bh7MrldYi98e5BxdRaAHppYawtcj3EAByFr8iuA==", + "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/listbox": "2.1.10", + "@nextui-org/popover": "2.1.9", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/scroll-shadow": "2.1.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/spinner": "2.0.19", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/use-aria-button": "2.0.5", + "@nextui-org/use-aria-multiselect": "2.1.2", + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-aria/visually-hidden": "^3.8.4", "@react-types/shared": "^3.20.0" }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/shared-icons": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.0.4.tgz", + "integrity": "sha512-I0gzreq1E3ji+OSTtsOYBnbdLboHoCAzPa+r//Qkf16I2gq6xxjjkfeNXFdFJjouRnPCLtR5eihlxt/ozWK8oA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/shared-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.3.tgz", + "integrity": "sha512-4Q4RfYU+fRUPbisjq6RYw3+oq4kn9nEp3eP5+0oD+nS9at8uSlovn7Kj3N2iz6clN6vVxxbyXi35DPTs63heRQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/skeleton": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@nextui-org/skeleton/-/skeleton-2.0.19.tgz", + "integrity": "sha512-bTNtHzD5smMe2sj4rkxGamCXMyJPR3y9nm5bVNYpyg5BUbvdowJIZw/KE3q55DPjArc3EkKs0QwDZXdRaKZRyA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/snippet": { + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.0.25.tgz", + "integrity": "sha512-9zQnoFgaogdQkZN2IkmPHDUG3jM0egpT64eUsQpn8aC44SjhboTqS8jix8f+NTJ/WF9A8upLkiVOJUoPtLaCjQ==", + "dependencies": { + "@nextui-org/button": "2.0.21", + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@nextui-org/tooltip": "2.0.24", + "@nextui-org/use-clipboard": "2.0.3", + "@react-aria/focus": "^3.14.1", + "@react-aria/utils": "^3.20.0" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/spacer": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@nextui-org/spacer/-/spacer-2.0.19.tgz", + "integrity": "sha512-43998t3Bf/vqmAXJVpDa7gWMcxAey+c7ZDB/urfV4GmO10bpp86xS00jV2INpqT6N4rjXTiRfjMdU82GZFz9+w==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/spinner": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.0.19.tgz", + "integrity": "sha512-zXMq2lk1UNj5H/GbepXDBdwwzL8tTSbyJl8L0WsTSIPAFo8WhvLp44griLNgd8Zqxh7dbTax2GENGzE/zq1UUQ==", + "dependencies": { + "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/system-rsc": "2.0.6", + "@nextui-org/theme": "2.1.9" + }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/card": { + "node_modules/@nextui-org/switch": { "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/card/-/card-2.0.21.tgz", - "integrity": "sha512-yu0hpPkHg/3mwQ0rgxMnMgRSh+ZNw8mRB8BngpfXYPrANahi0jOvEEC8PDaAxIxiOrDKdlxiAt+kkwADo0R6nw==", + "resolved": "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.0.21.tgz", + "integrity": "sha512-FrbSUcHY7RtJHtB5Ddsso2MDo58HgmwWbyHTi1E/zVTawONosBmkdV/v3Y2rKAFcqSz1VK973hrtYztYWUzkTA==", "dependencies": { "@nextui-org/react-utils": "2.0.9", - "@nextui-org/ripple": "2.0.21", "@nextui-org/shared-utils": "2.0.3", "@nextui-org/system": "2.0.10", "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-button": "2.0.5", - "@react-aria/button": "^3.8.2", "@react-aria/focus": "^3.14.1", "@react-aria/interactions": "^3.18.0", + "@react-aria/switch": "^3.5.4", "@react-aria/utils": "^3.20.0", + "@react-aria/visually-hidden": "^3.8.4", + "@react-stately/toggle": "^3.6.2", "@react-types/shared": "^3.20.0" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/checkbox": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/checkbox/-/checkbox-2.0.22.tgz", - "integrity": "sha512-SSZUwcMsqkB1MtBibEk/WfBNLRQKtTS+54H82ZC6vzPzrSqhUlxN1yThWz3MLAw2qSQ1KGyx/4YDJSI9325XUg==", + "node_modules/@nextui-org/system": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.0.10.tgz", + "integrity": "sha512-5F6739zMOYSYR5CM/N8FQsRlQn8yCKiU5VNNPFkk022P5cA2NZXrhZ08mQSmFw2BU7OWxa/ieLivjDptKcRozQ==", + "dependencies": { + "@nextui-org/system-rsc": "2.0.6", + "@react-aria/i18n": "^3.8.2", + "@react-aria/overlays": "^3.17.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/system-rsc": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.0.6.tgz", + "integrity": "sha512-Q3ojwiFggjLONG8Lyv1xuP8AhrVk7ShuiHkJ08dpNnJ7HQTYaKlwoFR3CFSWvgJbGsK6YkLLFSFFPTFvTuNpUg==", + "dependencies": { + "clsx": "^1.2.1", + "tailwind-variants": "^0.1.14" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/table": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@nextui-org/table/-/table-2.0.23.tgz", + "integrity": "sha512-xuYvcsmx4lXRFK7NbzQ9+O81PM3cTx3gHHKBg3VXkjAnQmUr8Pik6dUMLHiGwm501FDiY/pxnw91WEmuJ5e/Hg==", "dependencies": { + "@nextui-org/checkbox": "2.0.22", "@nextui-org/react-utils": "2.0.9", + "@nextui-org/shared-icons": "2.0.4", "@nextui-org/shared-utils": "2.0.3", + "@nextui-org/spacer": "2.0.19", "@nextui-org/system": "2.0.10", "@nextui-org/theme": "2.1.9", - "@react-aria/checkbox": "^3.11.0", "@react-aria/focus": "^3.14.1", "@react-aria/interactions": "^3.18.0", + "@react-aria/table": "^3.12.0", "@react-aria/utils": "^3.20.0", "@react-aria/visually-hidden": "^3.8.4", - "@react-stately/checkbox": "^3.5.0", - "@react-stately/toggle": "^3.6.2", - "@react-types/checkbox": "^3.5.1", - "@react-types/shared": "^3.20.0" + "@react-stately/table": "^3.11.1", + "@react-stately/virtualizer": "^3.6.2", + "@react-types/grid": "^3.2.1", + "@react-types/table": "^3.8.1" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/chip": { + "node_modules/@nextui-org/tabs": { "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/chip/-/chip-2.0.21.tgz", - "integrity": "sha512-z5akLSpElF/j0b13hCywkRGWbI+9PEgawYMktLUnnokXRoUH7XOaq3XoP4Fa5rzBt4ajVButtXwxCsXc3izspQ==", + "resolved": "https://registry.npmjs.org/@nextui-org/tabs/-/tabs-2.0.21.tgz", + "integrity": "sha512-2/5QTAAspG1BvIdadtuW0cBfcZt2PTfd84gucUygpBHv5VJ+FBDGAyorhe+1XZW7DUZzhx5US4wc97mF78oMwg==", "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/framer-transitions": "2.0.10", "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", "@nextui-org/shared-utils": "2.0.3", "@nextui-org/system": "2.0.10", "@nextui-org/theme": "2.1.9", + "@nextui-org/use-is-mounted": "2.0.3", + "@nextui-org/use-update-effect": "2.0.3", "@react-aria/focus": "^3.14.1", "@react-aria/interactions": "^3.18.0", + "@react-aria/tabs": "^3.7.0", "@react-aria/utils": "^3.20.0", - "@react-types/checkbox": "^3.5.1" + "@react-stately/tabs": "^3.6.0", + "@react-types/shared": "^3.20.0", + "@react-types/tabs": "^3.3.2", + "scroll-into-view-if-needed": "3.0.10" }, "peerDependencies": { + "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/code": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@nextui-org/code/-/code-2.0.19.tgz", - "integrity": "sha512-t3/tZf3uZu3lA4ah+BIogToUsX9BRYe+vyQMzPAY3D54QtdNz/HuB5pxZimpRPlOaxUeDGXzrfWwm3pB7E6iqQ==", + "node_modules/@nextui-org/theme": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.1.9.tgz", + "integrity": "sha512-DmSv6yWb8zp3dQ4ic5XDWGc1rNjEOPphrfc5E4tzUZqgsLisNjr2Gm3bMzM51Kquepv8OzYojoaB2nO2zmI6mw==", + "dependencies": { + "@types/color": "^3.0.3", + "@types/flat": "^5.0.2", + "@types/lodash.foreach": "^4.5.7", + "@types/lodash.get": "^4.4.7", + "@types/lodash.kebabcase": "^4.1.7", + "@types/lodash.mapkeys": "^4.6.7", + "@types/lodash.omit": "^4.5.7", + "color": "^4.2.3", + "color2k": "^2.0.2", + "deepmerge": "4.3.1", + "flat": "^5.0.2", + "lodash.foreach": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.kebabcase": "^4.1.1", + "lodash.mapkeys": "^4.6.0", + "lodash.omit": "^4.5.0", + "tailwind-variants": "^0.1.14", + "tailwindcss": "^3.2.7" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/@nextui-org/tooltip": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.0.24.tgz", + "integrity": "sha512-TD7Y2wOLPKDhXRduguhA8/Li7XSI/tkSah5uQmussJX9VybJnlEMpBuW2USU//lfoD+ruFIerd63NGQNYCh86g==", "dependencies": { + "@nextui-org/aria-utils": "2.0.10", + "@nextui-org/framer-transitions": "2.0.10", "@nextui-org/react-utils": "2.0.9", "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9" + "@nextui-org/system": "2.0.10", + "@nextui-org/theme": "2.1.9", + "@react-aria/interactions": "^3.18.0", + "@react-aria/overlays": "^3.17.0", + "@react-aria/tooltip": "^3.6.2", + "@react-aria/utils": "^3.20.0", + "@react-stately/tooltip": "^3.4.4", + "@react-types/overlays": "^3.8.2", + "@react-types/tooltip": "^3.4.4" }, "peerDependencies": { + "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/divider": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@nextui-org/divider/-/divider-2.0.20.tgz", - "integrity": "sha512-q4pg+T0krjZiETBk2ZnV5icg7X88GHIaIyi7uT7ZdpJalMiN4+V9pxWDpvqV383B7W3tp8splIY1Hjb2e4bdLA==", + "node_modules/@nextui-org/use-aria-accordion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.1.tgz", + "integrity": "sha512-QKMjaExzTbfcZF+F/r2AdvA4VAez4C76a28QMpLnLioCSL297KFQ/kQ8b0nBwU4o0lniBGe5UpdP+EavSnfbSg==", "dependencies": { - "@nextui-org/react-rsc-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9", + "@react-aria/button": "^3.8.2", + "@react-aria/focus": "^3.14.1", + "@react-aria/selection": "^3.16.2", + "@react-aria/utils": "^3.20.0", + "@react-stately/tree": "^3.7.2", + "@react-types/accordion": "3.0.0-alpha.16", "@react-types/shared": "^3.20.0" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/dropdown": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@nextui-org/dropdown/-/dropdown-2.1.10.tgz", - "integrity": "sha512-hDlTHlsq1VellMsuZkmYcFhMoYz81vMeqthXIKxSOr5samcBkOvuyBx6qtJ1kJGSmmeSZSDuvSQLd+LyFj1EpQ==", + "node_modules/@nextui-org/use-aria-button": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.0.5.tgz", + "integrity": "sha512-Ef7ame2dmnIWRCYoyJkRFjkMl+AanvRDsAv5q99MW3etAwI0pOFZHbCj9RqDGBQ5BUMSN2qFO1jo39XweRtCrQ==", + "dependencies": { + "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-types/button": "^3.8.0", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-link": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.0.14.tgz", + "integrity": "sha512-pUwM8tzfxa2+l7K/njKErd0JE34BVTWmW1BmpiJ0dnRj90+DtbijR3utMwtBBxb7UEC8lmWPXGcfq22LQoVZdg==", "dependencies": { - "@nextui-org/menu": "2.0.11", - "@nextui-org/popover": "2.1.9", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", "@react-aria/focus": "^3.14.1", + "@react-aria/interactions": "^3.18.0", + "@react-aria/utils": "^3.20.0", + "@react-types/link": "^3.4.5", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-modal-overlay": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.5.tgz", + "integrity": "sha512-Py8UPpO/rjZzJH6JwHURd6gwH0F+93OxmpFYxdloB0/my+I8/nx0jAg6xKc6GpVWrx1cylGOuI0gE0R8wLmaAw==", + "dependencies": { + "@react-aria/overlays": "^3.17.0", + "@react-aria/utils": "^3.20.0", + "@react-stately/overlays": "^3.6.2", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-multiselect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.1.2.tgz", + "integrity": "sha512-dPqDsrKijJwRsOEhOoV4IxXMxFNvtF9Rnl06p4Y/ORTUtQvwP45B9gE6n4+SDhuSwUGXLWnnalzgsWs0FKgO1A==", + "dependencies": { + "@react-aria/i18n": "^3.8.2", + "@react-aria/interactions": "^3.18.0", + "@react-aria/label": "^3.7.0", + "@react-aria/listbox": "^3.10.2", "@react-aria/menu": "^3.10.2", + "@react-aria/selection": "^3.16.2", "@react-aria/utils": "^3.20.0", + "@react-stately/list": "^3.9.2", "@react-stately/menu": "^3.5.5", - "@react-types/menu": "^3.9.4" + "@react-types/button": "^3.8.0", + "@react-types/overlays": "^3.8.2", + "@react-types/select": "^3.8.3", + "@react-types/shared": "^3.20.0" }, "peerDependencies": { - "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/framer-transitions": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@nextui-org/framer-transitions/-/framer-transitions-2.0.10.tgz", - "integrity": "sha512-focG+CjyMPxZbPWMV4VdqoqeD8exDzwnAq1hLR2iBRtzl15hSwiznajdDs0PKzGAe5jz5ShlQLq3EYCFl/zTGw==", + "node_modules/@nextui-org/use-aria-toggle-button": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.5.tgz", + "integrity": "sha512-ut/T53QmTZHWPKo7t+zpMX6nC/LYjmqgfJGO+c5SCTK4PCXcH9nfgv1rU0hl7e0WPrTOYitw1dKBeFFq3CoPVw==", "dependencies": { - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10" + "@nextui-org/use-aria-button": "2.0.5", + "@react-aria/utils": "^3.20.0", + "@react-stately/toggle": "^3.6.2", + "@react-types/button": "^3.8.0", + "@react-types/shared": "^3.20.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-callback-ref": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.3.tgz", + "integrity": "sha512-SMa7hCFRbrMiG0H/4BtMLrpzPcqMGbbC8VxosvDnWaRd6Uo4curcZlK2JQS/zQ3kMphnUyMVqXHgUZsSh8ASJg==", + "dependencies": { + "@nextui-org/use-safe-layout-effect": "2.0.3" }, "peerDependencies": { - "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/image": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.0.21.tgz", - "integrity": "sha512-J1cYO+hBd7Ktr4JI0Hm7/ZW6UlhAyz3hx/BhNLhVQdQPtuUIlIkLWFahdVTIhYiq3hi1hD9JAGdRWhpRs2iDfA==", - "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-image": "2.0.3" - }, + "node_modules/@nextui-org/use-clipboard": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.0.3.tgz", + "integrity": "sha512-vaeIKczCUPor0PTj6MHng70p3XPhwzW/lK6iOXbmM4iHQjtb4+GLVPdCAZ6NChT6aNiz7wfIlnySnt28XdOpfw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-data-scroll-overflow": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.1.tgz", + "integrity": "sha512-1NFrjOfTcypxR5S/Ar3HBNFkNC8nMt9YGLAZa4c8bA9T9uKiwpqcKQJxzGk8HmWJqPQStcZnuTZ1nRvuLUVoAA==", "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/input": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@nextui-org/input/-/input-2.1.9.tgz", - "integrity": "sha512-Qf5xCjzEtDag7Cd3czXgM0iSmfhOr0DedNekxLSWxPoM12pInZHAx7bVPF103d3/A5ZJi3O9O8Iu+Xro4p9J+A==", + "node_modules/@nextui-org/use-disclosure": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nextui-org/use-disclosure/-/use-disclosure-2.0.5.tgz", + "integrity": "sha512-4gSr9Wox1LXflc9lJRVXcosHVuSsWNhCc4+w6VzCD88DS8J8n/zHm3AF3NzcybyfIYQn8eJjvPaUNrR5wVcETQ==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/textfield": "^3.12.0", + "@nextui-org/use-callback-ref": "2.0.3", "@react-aria/utils": "^3.20.0", - "@react-stately/utils": "^3.7.0", - "@react-types/shared": "^3.20.0", - "@react-types/textfield": "^3.8.0", - "react-textarea-autosize": "^8.5.2" + "@react-stately/utils": "^3.7.0" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/kbd": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.0.20.tgz", - "integrity": "sha512-2P3wfGHrJ91NJR0ADVpcdEhysuRW3VwNaxNqiHGs7SRpr2ewyj8I0za7gA9u+E0H8IcHkg/Riad8DIXwNXqmNg==", + "node_modules/@nextui-org/use-image": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.0.3.tgz", + "integrity": "sha512-IukzfYn7Q1z872bg7lX/Wl2y6hGGPpiSu6tdU4bzQ6Q1WoNoVzc66K4WYVWsxLtWHcGf1iuwa2QrBXFkbe82ZA==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9", - "@react-aria/utils": "^3.20.0" + "@nextui-org/use-safe-layout-effect": "2.0.3" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/link": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/link/-/link-2.0.22.tgz", - "integrity": "sha512-m6M3/tNinrsiIw6elj5JzY6lzK4pWquLVqjRrhDR3kNGRP48ymgKsN64T/pUgKTTlm70hS3ew3xhRs+s4budMw==", + "node_modules/@nextui-org/use-is-mobile": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.5.tgz", + "integrity": "sha512-/VlIHfWpY929t4A4p4aOQPv5px7Qy8N1OgO6mmXUokTWnFq9VyOwhBtOAuzaShT+PzuNzqqK+IvRPWyPc/9tAA==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-link": "2.0.14", - "@react-aria/focus": "^3.14.1", - "@react-aria/link": "^3.5.4", - "@react-aria/utils": "^3.20.0", - "@react-types/link": "^3.4.5" + "@react-aria/ssr": "^3.8.0" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/listbox": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@nextui-org/listbox/-/listbox-2.1.10.tgz", - "integrity": "sha512-lhcCdr/Q9tVFi26ehvy/G6UEhcx2CvuYikiKX/9zomMcCCYARq3duB7G+/muJs3mQ3/IYyQ2VHIh7f5XLAmZgg==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/divider": "2.0.20", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-is-mobile": "2.0.5", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/listbox": "^3.10.2", - "@react-aria/utils": "^3.20.0", - "@react-stately/list": "^3.9.2", - "@react-types/menu": "^3.9.4", - "@react-types/shared": "^3.20.0" - }, + "node_modules/@nextui-org/use-is-mounted": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.3.tgz", + "integrity": "sha512-gyDtlbgXzG+TxPTWApduzkbXRHn+FX3ZlizEUML9/X0HmwsmEwecb+VFobXIVdu0Szi/r+fULSMBpGHvOSjaiw==", "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/menu": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@nextui-org/menu/-/menu-2.0.11.tgz", - "integrity": "sha512-OgpvihGNIpq1YQFfgtUHWGyqf9FV6qik7yiTSfhKbF0HUVemN8y7VLtFErVjrP4LQP3NMkujYXBel7pYD9jdqA==", + "node_modules/@nextui-org/use-pagination": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-pagination/-/use-pagination-2.0.3.tgz", + "integrity": "sha512-FEL//pNtAEjoVE7nCRWmn8kTbgmifMU0xFcAalHA3KRnzeLMqsXa/5y5a+QU4Wa1K7ZCLRby5fp5Cy2fsJtXRg==", "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/divider": "2.0.20", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-is-mobile": "2.0.5", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/menu": "^3.10.2", - "@react-aria/utils": "^3.20.0", - "@react-stately/menu": "^3.5.5", - "@react-stately/tree": "^3.7.2", - "@react-types/menu": "^3.9.4", - "@react-types/shared": "^3.20.0" + "@nextui-org/shared-utils": "2.0.3" }, "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/modal": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@nextui-org/modal/-/modal-2.0.23.tgz", - "integrity": "sha512-D6+iXe62beRtSNQqryAE0un+4uoAHDD80CeCBmpne2vrE+nM5o2cMz6n1q4ww/7HWh+Sp5fXCyjl7jZ1aO8Eeg==", - "dependencies": { - "@nextui-org/framer-transitions": "2.0.10", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-button": "2.0.5", - "@nextui-org/use-aria-modal-overlay": "2.0.5", - "@nextui-org/use-disclosure": "2.0.5", - "@react-aria/dialog": "^3.5.5", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/overlays": "^3.17.0", - "@react-aria/utils": "^3.20.0", - "@react-stately/overlays": "^3.6.2", - "@react-types/overlays": "^3.8.2", - "react-remove-scroll": "^2.5.6" - }, + "node_modules/@nextui-org/use-safe-layout-effect": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.3.tgz", + "integrity": "sha512-h11gOuOmJ8q3mpax72Aw31/qp3xZVB+81qhe6gZIA02Cf61HdHkqBVY2QFl3JWEJ+n+aBAPtxsLA65T7Ab/bXg==", "peerDependencies": { - "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/navbar": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.0.22.tgz", - "integrity": "sha512-s6XJUcx7p+8tUBVPK5QPqk8jjrnUt083r8hoa0SA5WWe4TY4QiEFWX2maaDFINo00/6mZmMlql0QJh1OrhdsDA==", - "dependencies": { - "@nextui-org/framer-transitions": "2.0.10", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-toggle-button": "2.0.5", - "@nextui-org/use-scroll-position": "2.0.3", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/overlays": "^3.17.0", - "@react-aria/utils": "^3.20.0", - "@react-stately/toggle": "^3.6.2", - "@react-stately/utils": "^3.7.0", - "react-remove-scroll": "^2.5.6" - }, + "node_modules/@nextui-org/use-scroll-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.3.tgz", + "integrity": "sha512-p+dw9V++u4diMqjZjtL+9jmE2BQ+CywL9JDIXOiu7r3Ku+dT+wxtizh0IJMtMIvXrVRdipm3HPjOwszwkQoXqw==", "peerDependencies": { - "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/pagination": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/pagination/-/pagination-2.0.22.tgz", - "integrity": "sha512-kQTAhWSOJZIuzr15jWTpX+DFFCAQx8/hGRIzbjHBrmQMrGsCuLtpaMyawddjC22ZWAyCK7N+Q4CvoUZYWjZnPQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-pagination": "2.0.3", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/utils": "^3.20.0", - "scroll-into-view-if-needed": "3.0.10" - }, + "node_modules/@nextui-org/use-update-effect": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-update-effect/-/use-update-effect-2.0.3.tgz", + "integrity": "sha512-CFtGDRh4ZutX8nNv8s9VJbNRD1Hr1XW5jGtGZ6G2VkrWehrEdcFeeWCJ3dT4koFjfZq18nBBYRArlK+KjpOW5g==", "peerDependencies": { "react": ">=18" } }, - "node_modules/@nextui-org/popover": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@nextui-org/popover/-/popover-2.1.9.tgz", - "integrity": "sha512-pn4ATf0/fAOrZO7RYuBQVH2mZc+QgP62UY8lhwxomA0aEz9RAfpzRjdM7LRk/7YOdzunfG5dd7L9UTEB57uUxw==", + "node_modules/@nextui-org/user": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@nextui-org/user/-/user-2.0.22.tgz", + "integrity": "sha512-OPuzGABfm/IFfjaEGeIDkn2UNHGgmR4nuWn4Xs1OESLiW4BFqZ0ZgRO1QzZk7YQVxlhb8hLKpBCN7Wc9/Y03fQ==", "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/button": "2.0.21", - "@nextui-org/framer-transitions": "2.0.10", + "@nextui-org/avatar": "2.0.21", "@nextui-org/react-utils": "2.0.9", "@nextui-org/shared-utils": "2.0.3", "@nextui-org/system": "2.0.10", "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-button": "2.0.5", - "@react-aria/dialog": "^3.5.5", "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/overlays": "^3.17.0", - "@react-aria/utils": "^3.20.0", - "@react-stately/overlays": "^3.6.2", - "@react-types/button": "^3.8.0", - "@react-types/overlays": "^3.8.2", - "react-remove-scroll": "^2.5.6" + "@react-aria/utils": "^3.20.0" }, "peerDependencies": { - "framer-motion": ">=4.0.0", "react": ">=18" } }, - "node_modules/@nextui-org/progress": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/progress/-/progress-2.0.21.tgz", - "integrity": "sha512-5g6NdFJfJECcOeRYXZkDx41qoqZvy8LoR1i2EPQMHJ2f5OTJNj8gNqLw99x5ciFalbcCL5yCzrZBIJkCTK8r+A==", + "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==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-is-mounted": "2.0.3", - "@react-aria/i18n": "^3.8.2", - "@react-aria/progress": "^3.4.5", - "@react-aria/utils": "^3.20.0", - "@react-types/progress": "^3.4.3" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, - "peerDependencies": { - "react": ">=18" + "engines": { + "node": ">= 8" } }, - "node_modules/@nextui-org/radio": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/radio/-/radio-2.0.22.tgz", - "integrity": "sha512-MXjxIwwZJdgpZ6/E7DBzfSErzxHKlF1jbvW9DlYM8i6BRGd0lOze5zH1R2UY0oGVGB7vx39pFJrDdPHVOqE5OA==", + "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==", + "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==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/radio": "^3.8.0", - "@react-aria/utils": "^3.20.0", - "@react-aria/visually-hidden": "^3.8.4", - "@react-stately/radio": "^3.9.0", - "@react-types/radio": "^3.5.1", - "@react-types/shared": "^3.20.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "react": ">=18" + "engines": { + "node": ">= 8" } }, - "node_modules/@nextui-org/react": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@nextui-org/react/-/react-2.1.13.tgz", - "integrity": "sha512-NXlQhRKRK+XW9RbRUQiENN/Lk6zxWaWNu82Qz0zs6IuBY83iPFCCKXI7bDDAlcKud+/KlGBuji6GtaKJQJskqA==", + "node_modules/@panva/hkdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", + "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/@prisma/client": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.5.2.tgz", + "integrity": "sha512-54XkqR8M+fxbzYqe+bIXimYnkkcGqgOh0dn0yWtIk6CQT4IUCAvNFNcQZwk2KqaLU+/1PHTSWrcHtx4XjluR5w==", + "hasInstallScript": true, "dependencies": { - "@nextui-org/accordion": "2.0.23", - "@nextui-org/avatar": "2.0.21", - "@nextui-org/badge": "2.0.19", - "@nextui-org/button": "2.0.21", - "@nextui-org/card": "2.0.21", - "@nextui-org/checkbox": "2.0.22", - "@nextui-org/chip": "2.0.21", - "@nextui-org/code": "2.0.19", - "@nextui-org/divider": "2.0.20", - "@nextui-org/dropdown": "2.1.10", - "@nextui-org/image": "2.0.21", - "@nextui-org/input": "2.1.9", - "@nextui-org/kbd": "2.0.20", - "@nextui-org/link": "2.0.22", - "@nextui-org/listbox": "2.1.10", - "@nextui-org/menu": "2.0.11", - "@nextui-org/modal": "2.0.23", - "@nextui-org/navbar": "2.0.22", - "@nextui-org/pagination": "2.0.22", - "@nextui-org/popover": "2.1.9", - "@nextui-org/progress": "2.0.21", - "@nextui-org/radio": "2.0.22", - "@nextui-org/ripple": "2.0.21", - "@nextui-org/scroll-shadow": "2.1.9", - "@nextui-org/select": "2.1.11", - "@nextui-org/skeleton": "2.0.19", - "@nextui-org/snippet": "2.0.25", - "@nextui-org/spacer": "2.0.19", - "@nextui-org/spinner": "2.0.19", - "@nextui-org/switch": "2.0.21", - "@nextui-org/system": "2.0.10", - "@nextui-org/table": "2.0.23", - "@nextui-org/tabs": "2.0.21", - "@nextui-org/theme": "2.1.9", - "@nextui-org/tooltip": "2.0.24", - "@nextui-org/user": "2.0.22", - "@react-aria/visually-hidden": "^3.8.4" + "@prisma/engines-version": "5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a" + }, + "engines": { + "node": ">=16.13" }, "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } } }, - "node_modules/@nextui-org/react-rsc-utils": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.9.tgz", - "integrity": "sha512-RrA6LzLPj6y9LJIILeqJ5JKmXUFZDbTRZDTTz0rd8qv3yyt5zNgOI07dkG6P43+q5cLNnG9j+P11+Nr0W81cDg==" + "node_modules/@prisma/engines": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.5.2.tgz", + "integrity": "sha512-Be5hoNF8k+lkB3uEMiCHbhbfF6aj1GnrTBnn5iYFT7GEr3TsOEp1soviEcBR0tYCgHbxjcIxJMhdbvxALJhAqg==", + "devOptional": true, + "hasInstallScript": true }, - "node_modules/@nextui-org/react-utils": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.9.tgz", - "integrity": "sha512-UK4/9uy7A6A2vMnbIWprJo7b/8+N/zg4D5Hf36pI6xR0mkt4RY9OGuo24I/ZBwoU0k5kjaod/hTW6nCQwCPtvg==", + "node_modules/@prisma/engines-version": { + "version": "5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a.tgz", + "integrity": "sha512-O+qHFnZvAyOFk1tUco2/VdiqS0ym42a3+6CYLScllmnpbyiTplgyLt2rK/B9BTjYkSHjrgMhkG47S0oqzdIckA==" + }, + "node_modules/@react-aria/button": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.8.4.tgz", + "integrity": "sha512-rTGZk5zu+lQNjfij2fwnw2PAgBgzNLi3zbMw1FL5/XwVx+lEH2toeqKLoqULtd7nSxskYuQz56VhmjUok6Qkmg==", "dependencies": { - "@nextui-org/react-rsc-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3" + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/toggle": "^3.6.3", + "@react-types/button": "^3.9.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/ripple": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.0.21.tgz", - "integrity": "sha512-6jXCwSN5wAj3SZIP4pQncS6W/TIdgpcgXX5Oxrlpqk0m04TcEIe+3FeLroCZ/MLz5+ml3GUPWxHD8hVTwE3Ddw==", + "node_modules/@react-aria/checkbox": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.11.2.tgz", + "integrity": "sha512-8cgXxpc7IMJ9buw+Rbhr1xc66zNp2ePuFpjw3uWyH7S3IJEd2f5kXUDNWLXQRADJso95UlajRlJQiG4QIObEnA==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9" + "@react-aria/label": "^3.7.2", + "@react-aria/toggle": "^3.8.2", + "@react-aria/utils": "^3.21.1", + "@react-stately/checkbox": "^3.5.1", + "@react-stately/toggle": "^3.6.3", + "@react-types/checkbox": "^3.5.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/scroll-shadow": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.9.tgz", - "integrity": "sha512-ipB9br95RTrDzM7K2gEQVRJGCzh+QSCRO8mNMxIkO7MuxHuVW9zyZ5SevstR5W0rgbQuvfxEZq1xlL0eUB8RlA==", + "node_modules/@react-aria/dialog": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.7.tgz", + "integrity": "sha512-IKeBaIQBl+WYkhytyE0eISW4ApOEvCJZuw9Xq7gjlKFBlF4X6ffo8souv12KpaznK6/fp1vtEXMmy1AfejiT8Q==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-data-scroll-overflow": "2.1.1" + "@react-aria/focus": "^3.14.3", + "@react-aria/overlays": "^3.18.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/overlays": "^3.6.3", + "@react-types/dialog": "^3.5.6", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/select": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@nextui-org/select/-/select-2.1.11.tgz", - "integrity": "sha512-SDFlzgyKtUd+dL8gSYmw+olVtePr0Z3RVjAc7qQPFkZR156Bh7MrldYi98e5BxdRaAHppYawtcj3EAByFr8iuA==", + "node_modules/@react-aria/focus": { + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.14.3.tgz", + "integrity": "sha512-gvO/frZ7SxyfyHJYC+kRsUXnXct8hGHKlG1TwbkzCCXim9XIPKDgRzfNGuFfj0i8ZpR9xmsjOBUkHZny0uekFA==", "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/listbox": "2.1.10", - "@nextui-org/popover": "2.1.9", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/scroll-shadow": "2.1.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/spinner": "2.0.19", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-aria-button": "2.0.5", - "@nextui-org/use-aria-multiselect": "2.1.2", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/utils": "^3.20.0", - "@react-aria/visually-hidden": "^3.8.4", - "@react-types/shared": "^3.20.0" + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" }, "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/shared-icons": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.0.4.tgz", - "integrity": "sha512-I0gzreq1E3ji+OSTtsOYBnbdLboHoCAzPa+r//Qkf16I2gq6xxjjkfeNXFdFJjouRnPCLtR5eihlxt/ozWK8oA==", + "node_modules/@react-aria/grid": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.4.tgz", + "integrity": "sha512-UxEz98Z6yxVAOq7QSZ9OmSsvMwxJDVl7dVRwUHeqWxNprk9o5GGCLjhMv948XBUEnOvLV2qgtI7UoGzSdliUJA==", + "dependencies": { + "@react-aria/focus": "^3.14.3", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/selection": "^3.17.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/collections": "^3.10.2", + "@react-stately/grid": "^3.8.2", + "@react-stately/selection": "^3.14.0", + "@react-stately/virtualizer": "^3.6.4", + "@react-types/checkbox": "^3.5.2", + "@react-types/grid": "^3.2.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/shared-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.3.tgz", - "integrity": "sha512-4Q4RfYU+fRUPbisjq6RYw3+oq4kn9nEp3eP5+0oD+nS9at8uSlovn7Kj3N2iz6clN6vVxxbyXi35DPTs63heRQ==", + "node_modules/@react-aria/i18n": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.8.4.tgz", + "integrity": "sha512-YlTJn7YJlUxds/T5dNtme551qc118NoDQhK+IgGpzcmPQ3xSnwBAQP4Zwc7wCpAU+xEwnNcsGw+L1wJd49He/A==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@internationalized/message": "^3.1.1", + "@internationalized/number": "^3.3.0", + "@internationalized/string": "^3.1.1", + "@react-aria/ssr": "^3.8.0", + "@react-aria/utils": "^3.21.1", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/skeleton": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@nextui-org/skeleton/-/skeleton-2.0.19.tgz", - "integrity": "sha512-bTNtHzD5smMe2sj4rkxGamCXMyJPR3y9nm5bVNYpyg5BUbvdowJIZw/KE3q55DPjArc3EkKs0QwDZXdRaKZRyA==", + "node_modules/@react-aria/interactions": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.19.1.tgz", + "integrity": "sha512-2QFOvq/rJfMGEezmtYcGcJmfaD16kHKcSTLFrZ8aeBK6hYFddGVZJZk+dXf+G7iNaffa8rMt6uwzVe/malJPBA==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9" + "@react-aria/ssr": "^3.8.0", + "@react-aria/utils": "^3.21.1", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/snippet": { - "version": "2.0.25", - "resolved": "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.0.25.tgz", - "integrity": "sha512-9zQnoFgaogdQkZN2IkmPHDUG3jM0egpT64eUsQpn8aC44SjhboTqS8jix8f+NTJ/WF9A8upLkiVOJUoPtLaCjQ==", + "node_modules/@react-aria/label": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.2.tgz", + "integrity": "sha512-rS0xQy+4RH1+JLESzLZd9H285McjNNf2kKwBhzU0CW3akjlu7gqaMKEJhX9MlpPDIVOUc2oEObGdU3UMmqa8ew==", "dependencies": { - "@nextui-org/button": "2.0.21", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/tooltip": "2.0.24", - "@nextui-org/use-clipboard": "2.0.3", - "@react-aria/focus": "^3.14.1", - "@react-aria/utils": "^3.20.0" + "@react-aria/utils": "^3.21.1", + "@react-types/label": "^3.8.1", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/spacer": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@nextui-org/spacer/-/spacer-2.0.19.tgz", - "integrity": "sha512-43998t3Bf/vqmAXJVpDa7gWMcxAey+c7ZDB/urfV4GmO10bpp86xS00jV2INpqT6N4rjXTiRfjMdU82GZFz9+w==", + "node_modules/@react-aria/link": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.1.tgz", + "integrity": "sha512-uVkuNHabxE11Eqeo0d1RA86EckOlfJ2Ld8uN8HnTxiLetXLZYUMBwlZfBJvT3RdwPtTG7jC3OK3BvwiyIJrtZw==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9" + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-types/link": "^3.5.1", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/spinner": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.0.19.tgz", - "integrity": "sha512-zXMq2lk1UNj5H/GbepXDBdwwzL8tTSbyJl8L0WsTSIPAFo8WhvLp44griLNgd8Zqxh7dbTax2GENGzE/zq1UUQ==", + "node_modules/@react-aria/listbox": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.1.tgz", + "integrity": "sha512-AkguQaIkqpP5oe++EZqYHowD7FfeQs+yY0QZVSsVPpNExcBug8/GcXvhSclcOxdh6ekZg4Wwcq7K0zhuTSOPzg==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system-rsc": "2.0.6", - "@nextui-org/theme": "2.1.9" + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/label": "^3.7.2", + "@react-aria/selection": "^3.17.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/collections": "^3.10.2", + "@react-stately/list": "^3.10.0", + "@react-types/listbox": "^3.4.5", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/switch": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.0.21.tgz", - "integrity": "sha512-FrbSUcHY7RtJHtB5Ddsso2MDo58HgmwWbyHTi1E/zVTawONosBmkdV/v3Y2rKAFcqSz1VK973hrtYztYWUzkTA==", + "node_modules/@react-aria/live-announcer": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.1.tgz", + "integrity": "sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==", "dependencies": { - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/switch": "^3.5.4", - "@react-aria/utils": "^3.20.0", - "@react-aria/visually-hidden": "^3.8.4", - "@react-stately/toggle": "^3.6.2", - "@react-types/shared": "^3.20.0" + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-aria/menu": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.11.1.tgz", + "integrity": "sha512-1eVVDrGnSExaL7e8IiaM9ndWTjT23rsnQGUK3p66R1Ojs8Q5rPBuJpP74rsmIpYiKOCr8WyZunjm5Fjv5KfA5Q==", + "dependencies": { + "@react-aria/focus": "^3.14.3", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/overlays": "^3.18.1", + "@react-aria/selection": "^3.17.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/collections": "^3.10.2", + "@react-stately/menu": "^3.5.6", + "@react-stately/tree": "^3.7.3", + "@react-types/button": "^3.9.0", + "@react-types/menu": "^3.9.5", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/system": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.0.10.tgz", - "integrity": "sha512-5F6739zMOYSYR5CM/N8FQsRlQn8yCKiU5VNNPFkk022P5cA2NZXrhZ08mQSmFw2BU7OWxa/ieLivjDptKcRozQ==", + "node_modules/@react-aria/overlays": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.18.1.tgz", + "integrity": "sha512-C74eZbTp3OA/gXy9/+4iPrZiz7g27Zy6Q1+plbg5QTLpsFLBt2Ypy9jTTANNRZfW7a5NW/Bnw9WIRjCdtTBRXw==", "dependencies": { - "@nextui-org/system-rsc": "2.0.6", - "@react-aria/i18n": "^3.8.2", - "@react-aria/overlays": "^3.17.0" + "@react-aria/focus": "^3.14.3", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/ssr": "^3.8.0", + "@react-aria/utils": "^3.21.1", + "@react-aria/visually-hidden": "^3.8.6", + "@react-stately/overlays": "^3.6.3", + "@react-types/button": "^3.9.0", + "@react-types/overlays": "^3.8.3", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/system-rsc": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.0.6.tgz", - "integrity": "sha512-Q3ojwiFggjLONG8Lyv1xuP8AhrVk7ShuiHkJ08dpNnJ7HQTYaKlwoFR3CFSWvgJbGsK6YkLLFSFFPTFvTuNpUg==", + "node_modules/@react-aria/progress": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.7.tgz", + "integrity": "sha512-wQ+xnzt5bBdbyQ2Qx80HxaFrPZRFKge57tmJWg4qelo7tzmgb3a22tf0Ug4C3gEz/uAv0JQWOtqLKTxjsiVP7g==", "dependencies": { - "clsx": "^1.2.1", - "tailwind-variants": "^0.1.14" + "@react-aria/i18n": "^3.8.4", + "@react-aria/label": "^3.7.2", + "@react-aria/utils": "^3.21.1", + "@react-types/progress": "^3.5.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/table": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@nextui-org/table/-/table-2.0.23.tgz", - "integrity": "sha512-xuYvcsmx4lXRFK7NbzQ9+O81PM3cTx3gHHKBg3VXkjAnQmUr8Pik6dUMLHiGwm501FDiY/pxnw91WEmuJ5e/Hg==", + "node_modules/@react-aria/radio": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.8.2.tgz", + "integrity": "sha512-j8yyGjboTgoBEQWlnJbQVvegKiUeQEUvU/kZ7ZAdj+eAL3BqfO6FO7yt6WzK7ZIBzjGS9YbesaUa3hwIjDi3LA==", "dependencies": { - "@nextui-org/checkbox": "2.0.22", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-icons": "2.0.4", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/spacer": "2.0.19", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/table": "^3.12.0", - "@react-aria/utils": "^3.20.0", - "@react-aria/visually-hidden": "^3.8.4", - "@react-stately/table": "^3.11.1", - "@react-stately/virtualizer": "^3.6.2", - "@react-types/grid": "^3.2.1", - "@react-types/table": "^3.8.1" + "@react-aria/focus": "^3.14.3", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/label": "^3.7.2", + "@react-aria/utils": "^3.21.1", + "@react-stately/radio": "^3.9.1", + "@react-types/radio": "^3.5.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/tabs": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@nextui-org/tabs/-/tabs-2.0.21.tgz", - "integrity": "sha512-2/5QTAAspG1BvIdadtuW0cBfcZt2PTfd84gucUygpBHv5VJ+FBDGAyorhe+1XZW7DUZzhx5US4wc97mF78oMwg==", + "node_modules/@react-aria/selection": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.1.tgz", + "integrity": "sha512-g5gkSc/M+zJiVgWbUpKN095ea0D4fxdluH9ZcXxN4AAvcrVfEJyAnMmWOIKRebN8xR0KPfNRnKB7E6jld2tbuQ==", "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/framer-transitions": "2.0.10", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@nextui-org/use-is-mounted": "2.0.3", - "@nextui-org/use-update-effect": "2.0.3", - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/tabs": "^3.7.0", - "@react-aria/utils": "^3.20.0", - "@react-stately/tabs": "^3.6.0", - "@react-types/shared": "^3.20.0", - "@react-types/tabs": "^3.3.2", - "scroll-into-view-if-needed": "3.0.10" + "@react-aria/focus": "^3.14.3", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/collections": "^3.10.2", + "@react-stately/selection": "^3.14.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/theme": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.1.9.tgz", - "integrity": "sha512-DmSv6yWb8zp3dQ4ic5XDWGc1rNjEOPphrfc5E4tzUZqgsLisNjr2Gm3bMzM51Kquepv8OzYojoaB2nO2zmI6mw==", - "dependencies": { - "@types/color": "^3.0.3", - "@types/flat": "^5.0.2", - "@types/lodash.foreach": "^4.5.7", - "@types/lodash.get": "^4.4.7", - "@types/lodash.kebabcase": "^4.1.7", - "@types/lodash.mapkeys": "^4.6.7", - "@types/lodash.omit": "^4.5.7", - "color": "^4.2.3", - "color2k": "^2.0.2", - "deepmerge": "4.3.1", - "flat": "^5.0.2", - "lodash.foreach": "^4.5.0", - "lodash.get": "^4.4.2", - "lodash.kebabcase": "^4.1.1", - "lodash.mapkeys": "^4.6.0", - "lodash.omit": "^4.5.0", - "tailwind-variants": "^0.1.14", - "tailwindcss": "^3.2.7" + "node_modules/@react-aria/ssr": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.8.0.tgz", + "integrity": "sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" }, "peerDependencies": { - "tailwindcss": "*" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/tooltip": { - "version": "2.0.24", - "resolved": "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.0.24.tgz", - "integrity": "sha512-TD7Y2wOLPKDhXRduguhA8/Li7XSI/tkSah5uQmussJX9VybJnlEMpBuW2USU//lfoD+ruFIerd63NGQNYCh86g==", + "node_modules/@react-aria/switch": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.5.6.tgz", + "integrity": "sha512-W6H/0TFa72MJY02AatUERt5HKgaDTF8lOaTjNNmS6U6U20+//uvrVCqcBof8OMe4M60mQpkp7Bd6756CJAMX1w==", "dependencies": { - "@nextui-org/aria-utils": "2.0.10", - "@nextui-org/framer-transitions": "2.0.10", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@react-aria/interactions": "^3.18.0", - "@react-aria/overlays": "^3.17.0", - "@react-aria/tooltip": "^3.6.2", - "@react-aria/utils": "^3.20.0", - "@react-stately/tooltip": "^3.4.4", - "@react-types/overlays": "^3.8.2", - "@react-types/tooltip": "^3.4.4" + "@react-aria/toggle": "^3.8.2", + "@react-stately/toggle": "^3.6.3", + "@react-types/switch": "^3.4.2", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-aria-accordion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.1.tgz", - "integrity": "sha512-QKMjaExzTbfcZF+F/r2AdvA4VAez4C76a28QMpLnLioCSL297KFQ/kQ8b0nBwU4o0lniBGe5UpdP+EavSnfbSg==", + "node_modules/@react-aria/table": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.1.tgz", + "integrity": "sha512-TBtCmJsKl3rJW/dCzA0ZxPGb8mN7ndbryLh3u+iV/+GVAVsytvAenOGrq9sLHHWXwQo5RJoO1bkUudvrZrJ5/g==", "dependencies": { - "@react-aria/button": "^3.8.2", - "@react-aria/focus": "^3.14.1", - "@react-aria/selection": "^3.16.2", - "@react-aria/utils": "^3.20.0", - "@react-stately/tree": "^3.7.2", - "@react-types/accordion": "3.0.0-alpha.16", - "@react-types/shared": "^3.20.0" + "@react-aria/focus": "^3.14.3", + "@react-aria/grid": "^3.8.4", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/selection": "^3.17.1", + "@react-aria/utils": "^3.21.1", + "@react-aria/visually-hidden": "^3.8.6", + "@react-stately/collections": "^3.10.2", + "@react-stately/flags": "^3.0.0", + "@react-stately/table": "^3.11.2", + "@react-stately/virtualizer": "^3.6.4", + "@react-types/checkbox": "^3.5.2", + "@react-types/grid": "^3.2.2", + "@react-types/shared": "^3.21.0", + "@react-types/table": "^3.9.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-aria-button": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.0.5.tgz", - "integrity": "sha512-Ef7ame2dmnIWRCYoyJkRFjkMl+AanvRDsAv5q99MW3etAwI0pOFZHbCj9RqDGBQ5BUMSN2qFO1jo39XweRtCrQ==", + "node_modules/@react-aria/tabs": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.1.tgz", + "integrity": "sha512-3kRd5rYKclmW9lllcANq0oun2d1pZq7Onma95laYfrWtPBZ3YDVKOkujGSqdfSQAFVshWBjl2Q03yyvcRiwzbQ==", "dependencies": { - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/utils": "^3.20.0", - "@react-types/button": "^3.8.0", - "@react-types/shared": "^3.20.0" + "@react-aria/focus": "^3.14.3", + "@react-aria/i18n": "^3.8.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/selection": "^3.17.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/list": "^3.10.0", + "@react-stately/tabs": "^3.6.1", + "@react-types/shared": "^3.21.0", + "@react-types/tabs": "^3.3.3", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-aria-link": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.0.14.tgz", - "integrity": "sha512-pUwM8tzfxa2+l7K/njKErd0JE34BVTWmW1BmpiJ0dnRj90+DtbijR3utMwtBBxb7UEC8lmWPXGcfq22LQoVZdg==", + "node_modules/@react-aria/textfield": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.12.2.tgz", + "integrity": "sha512-wRg8LJjZV6o4S/LRFqxs5waGDTiuIa/CRN+/X37Fu7GeZFeK0IBvWjKPlXLe7gMswaFqRmTKnQCU42mzUdDK1g==", "dependencies": { - "@react-aria/focus": "^3.14.1", - "@react-aria/interactions": "^3.18.0", - "@react-aria/utils": "^3.20.0", - "@react-types/link": "^3.4.5", - "@react-types/shared": "^3.20.0" + "@react-aria/focus": "^3.14.3", + "@react-aria/label": "^3.7.2", + "@react-aria/utils": "^3.21.1", + "@react-types/shared": "^3.21.0", + "@react-types/textfield": "^3.8.1", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-aria-modal-overlay": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.5.tgz", - "integrity": "sha512-Py8UPpO/rjZzJH6JwHURd6gwH0F+93OxmpFYxdloB0/my+I8/nx0jAg6xKc6GpVWrx1cylGOuI0gE0R8wLmaAw==", + "node_modules/@react-aria/toggle": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.8.2.tgz", + "integrity": "sha512-0+RmlOQtyRmU+Dd9qM9od4DPpITC7jqA+n3aZn732XtCsosz5gPGbhFuLbSdWRZ42FQgqo7pZQWaDRZpJPkipA==", "dependencies": { - "@react-aria/overlays": "^3.17.0", - "@react-aria/utils": "^3.20.0", - "@react-stately/overlays": "^3.6.2", - "@react-types/shared": "^3.20.0" + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/toggle": "^3.6.3", + "@react-types/checkbox": "^3.5.2", + "@react-types/shared": "^3.21.0", + "@react-types/switch": "^3.4.2", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-aria-multiselect": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.1.2.tgz", - "integrity": "sha512-dPqDsrKijJwRsOEhOoV4IxXMxFNvtF9Rnl06p4Y/ORTUtQvwP45B9gE6n4+SDhuSwUGXLWnnalzgsWs0FKgO1A==", + "node_modules/@react-aria/tooltip": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.6.4.tgz", + "integrity": "sha512-5WCOiRSugzbfEOH+Bjpuf6EsNyynqq5S1uDh/P6J8qiYDjc0xLRJ5dyLdytX7c8MK9Y0pIHi6xb0xR9jDqJXTw==", "dependencies": { - "@react-aria/i18n": "^3.8.2", - "@react-aria/interactions": "^3.18.0", - "@react-aria/label": "^3.7.0", - "@react-aria/listbox": "^3.10.2", - "@react-aria/menu": "^3.10.2", - "@react-aria/selection": "^3.16.2", - "@react-aria/utils": "^3.20.0", - "@react-stately/list": "^3.9.2", - "@react-stately/menu": "^3.5.5", - "@react-types/button": "^3.8.0", - "@react-types/overlays": "^3.8.2", - "@react-types/select": "^3.8.3", - "@react-types/shared": "^3.20.0" + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/tooltip": "^3.4.5", + "@react-types/shared": "^3.21.0", + "@react-types/tooltip": "^3.4.5", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-aria-toggle-button": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.5.tgz", - "integrity": "sha512-ut/T53QmTZHWPKo7t+zpMX6nC/LYjmqgfJGO+c5SCTK4PCXcH9nfgv1rU0hl7e0WPrTOYitw1dKBeFFq3CoPVw==", + "node_modules/@react-aria/utils": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.21.1.tgz", + "integrity": "sha512-tySfyWHXOhd/b6JSrSOl7krngEXN3N6pi1hCAXObRu3+MZlaZOMDf/j18aoteaIF2Jpv8HMWUJUJtQKGmBJGRA==", "dependencies": { - "@nextui-org/use-aria-button": "2.0.5", - "@react-aria/utils": "^3.20.0", - "@react-stately/toggle": "^3.6.2", - "@react-types/button": "^3.8.0", - "@react-types/shared": "^3.20.0" + "@react-aria/ssr": "^3.8.0", + "@react-stately/utils": "^3.8.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-callback-ref": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.3.tgz", - "integrity": "sha512-SMa7hCFRbrMiG0H/4BtMLrpzPcqMGbbC8VxosvDnWaRd6Uo4curcZlK2JQS/zQ3kMphnUyMVqXHgUZsSh8ASJg==", + "node_modules/@react-aria/visually-hidden": { + "version": "3.8.6", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.6.tgz", + "integrity": "sha512-6DmS/JLbK9KgU/ClK1WjwOyvpn8HtwYn+uisMLdP7HlCm692peYOkXDR1jqYbHL4GlyLCD0JLI+/xGdVh5aR/w==", "dependencies": { - "@nextui-org/use-safe-layout-effect": "2.0.3" + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-clipboard": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.0.3.tgz", - "integrity": "sha512-vaeIKczCUPor0PTj6MHng70p3XPhwzW/lK6iOXbmM4iHQjtb4+GLVPdCAZ6NChT6aNiz7wfIlnySnt28XdOpfw==", + "node_modules/@react-stately/checkbox": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.5.1.tgz", + "integrity": "sha512-j+EbHpZgS8J2LbysbVDK3vQAJc7YZHOjHRX20auEzVmulAFKwkRpevo/R5gEL4EpOz4bRyu+BH/jbssHXG+Ezw==", + "dependencies": { + "@react-stately/toggle": "^3.6.3", + "@react-stately/utils": "^3.8.0", + "@react-types/checkbox": "^3.5.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-data-scroll-overflow": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.1.tgz", - "integrity": "sha512-1NFrjOfTcypxR5S/Ar3HBNFkNC8nMt9YGLAZa4c8bA9T9uKiwpqcKQJxzGk8HmWJqPQStcZnuTZ1nRvuLUVoAA==", + "node_modules/@react-stately/collections": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.2.tgz", + "integrity": "sha512-h+LzCa1gWhVRWVH8uR+ZxsKmFSx7kW3RIlcjWjhfyc59BzXCuojsOJKTTAyPVFP/3kOdJeltw8g/reV1Cw/x6Q==", + "dependencies": { + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-disclosure": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-disclosure/-/use-disclosure-2.0.5.tgz", - "integrity": "sha512-4gSr9Wox1LXflc9lJRVXcosHVuSsWNhCc4+w6VzCD88DS8J8n/zHm3AF3NzcybyfIYQn8eJjvPaUNrR5wVcETQ==", + "node_modules/@react-stately/flags": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.0.tgz", + "integrity": "sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@react-stately/flags/node_modules/@swc/helpers": { + "version": "0.4.36", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", + "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", "dependencies": { - "@nextui-org/use-callback-ref": "2.0.3", - "@react-aria/utils": "^3.20.0", - "@react-stately/utils": "^3.7.0" - }, - "peerDependencies": { - "react": ">=18" + "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", + "tslib": "^2.4.0" } }, - "node_modules/@nextui-org/use-image": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.0.3.tgz", - "integrity": "sha512-IukzfYn7Q1z872bg7lX/Wl2y6hGGPpiSu6tdU4bzQ6Q1WoNoVzc66K4WYVWsxLtWHcGf1iuwa2QrBXFkbe82ZA==", + "node_modules/@react-stately/grid": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.2.tgz", + "integrity": "sha512-CB5QpYjXFatuXZodj3r0vIiqTysUe6DURZdJu6RKG2Elx19n2k49fKyx7P7CTKD2sPBOMSSX4edWuTzpL8Tl+A==", "dependencies": { - "@nextui-org/use-safe-layout-effect": "2.0.3" + "@react-stately/collections": "^3.10.2", + "@react-stately/selection": "^3.14.0", + "@react-types/grid": "^3.2.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-is-mobile": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.5.tgz", - "integrity": "sha512-/VlIHfWpY929t4A4p4aOQPv5px7Qy8N1OgO6mmXUokTWnFq9VyOwhBtOAuzaShT+PzuNzqqK+IvRPWyPc/9tAA==", + "node_modules/@react-stately/list": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.0.tgz", + "integrity": "sha512-Yspumiln2fvzoO8AND8jNAIfBu1XPaYioeeDmsB5Vrya2EvOkzEGsauQSNBJ6Vhee1fQqpnmzH1HB0jfIKUfzg==", "dependencies": { - "@react-aria/ssr": "^3.8.0" + "@react-stately/collections": "^3.10.2", + "@react-stately/selection": "^3.14.0", + "@react-stately/utils": "^3.8.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-is-mounted": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.3.tgz", - "integrity": "sha512-gyDtlbgXzG+TxPTWApduzkbXRHn+FX3ZlizEUML9/X0HmwsmEwecb+VFobXIVdu0Szi/r+fULSMBpGHvOSjaiw==", + "node_modules/@react-stately/menu": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.5.6.tgz", + "integrity": "sha512-Cm82SVda1qP71Fcz8ohIn3JYKmKCuSUIFr1WsEo/YwDPkX0x9+ev6rmphHTsxDdkCLcYHSTQL6e2KL0wAg50zA==", + "dependencies": { + "@react-stately/overlays": "^3.6.3", + "@react-stately/utils": "^3.8.0", + "@react-types/menu": "^3.9.5", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-pagination": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-pagination/-/use-pagination-2.0.3.tgz", - "integrity": "sha512-FEL//pNtAEjoVE7nCRWmn8kTbgmifMU0xFcAalHA3KRnzeLMqsXa/5y5a+QU4Wa1K7ZCLRby5fp5Cy2fsJtXRg==", + "node_modules/@react-stately/overlays": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.3.tgz", + "integrity": "sha512-K3eIiYAdAGTepYqNf2pVb+lPqLoVudXwmxPhyOSZXzjgpynD6tR3E9QfWQtkMazBuU73PnNX7zkH4l87r2AmTg==", "dependencies": { - "@nextui-org/shared-utils": "2.0.3" + "@react-stately/utils": "^3.8.0", + "@react-types/overlays": "^3.8.3", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-safe-layout-effect": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.3.tgz", - "integrity": "sha512-h11gOuOmJ8q3mpax72Aw31/qp3xZVB+81qhe6gZIA02Cf61HdHkqBVY2QFl3JWEJ+n+aBAPtxsLA65T7Ab/bXg==", + "node_modules/@react-stately/radio": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.9.1.tgz", + "integrity": "sha512-DrQPHiP9pz1uQbBP/NDFdO8uOZigPbvuAWPUNK7Gq6kye5lW+RsS97IUnYJePNTSMvhiAVz/aleBt05Gr/PZmg==", + "dependencies": { + "@react-stately/utils": "^3.8.0", + "@react-types/radio": "^3.5.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-scroll-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.3.tgz", - "integrity": "sha512-p+dw9V++u4diMqjZjtL+9jmE2BQ+CywL9JDIXOiu7r3Ku+dT+wxtizh0IJMtMIvXrVRdipm3HPjOwszwkQoXqw==", + "node_modules/@react-stately/selection": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.0.tgz", + "integrity": "sha512-E5rNH+gVGDJQDSnPO30ynu6jZ0Z0++VPUbM5Bu3P/bZ3+TgoTtDDvlONba3fspgSBDfdnHpsuG9eqYnDtEAyYA==", + "dependencies": { + "@react-stately/collections": "^3.10.2", + "@react-stately/utils": "^3.8.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/use-update-effect": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/use-update-effect/-/use-update-effect-2.0.3.tgz", - "integrity": "sha512-CFtGDRh4ZutX8nNv8s9VJbNRD1Hr1XW5jGtGZ6G2VkrWehrEdcFeeWCJ3dT4koFjfZq18nBBYRArlK+KjpOW5g==", + "node_modules/@react-stately/table": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.2.tgz", + "integrity": "sha512-EVgksPAsnEoqeT+5ej4aGJdu9kAu3LCDqQfnmif2P/R1BP5eDU1Kv0N/mV/90Xp546g7kuZ1wS2if/hWDXEA5g==", + "dependencies": { + "@react-stately/collections": "^3.10.2", + "@react-stately/flags": "^3.0.0", + "@react-stately/grid": "^3.8.2", + "@react-stately/selection": "^3.14.0", + "@react-stately/utils": "^3.8.0", + "@react-types/grid": "^3.2.2", + "@react-types/shared": "^3.21.0", + "@react-types/table": "^3.9.0", + "@swc/helpers": "^0.5.0" + }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@nextui-org/user": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/user/-/user-2.0.22.tgz", - "integrity": "sha512-OPuzGABfm/IFfjaEGeIDkn2UNHGgmR4nuWn4Xs1OESLiW4BFqZ0ZgRO1QzZk7YQVxlhb8hLKpBCN7Wc9/Y03fQ==", + "node_modules/@react-stately/tabs": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.1.tgz", + "integrity": "sha512-akGmejEaXg2RMZuWbRZ0W1MLr515e0uV0iVZefKBlcHtD/mK9K9Bo2XxBScf0TIhaPJ6Qa2w2k2+V7RmT7r8Ag==", "dependencies": { - "@nextui-org/avatar": "2.0.21", - "@nextui-org/react-utils": "2.0.9", - "@nextui-org/shared-utils": "2.0.3", - "@nextui-org/system": "2.0.10", - "@nextui-org/theme": "2.1.9", - "@react-aria/focus": "^3.14.1", - "@react-aria/utils": "^3.20.0" + "@react-stately/list": "^3.10.0", + "@react-stately/utils": "^3.8.0", + "@react-types/shared": "^3.21.0", + "@react-types/tabs": "^3.3.3", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": ">=18" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "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/@react-stately/toggle": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.6.3.tgz", + "integrity": "sha512-4kIMTjRjtaapFk4NVmBoFDUYfkmyqDaYAmHpRyEIHTDpBYn0xpxZL/MHv9WuLYa4MjJLRp0MeicuWiZ4ai7f6Q==", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@react-stately/utils": "^3.8.0", + "@react-types/checkbox": "^3.5.2", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, - "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==", - "engines": { - "node": ">= 8" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.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/@react-stately/tooltip": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.5.tgz", + "integrity": "sha512-VrwQcjnrNddSulh+Zql8P8cORRnWqSPkHPqQwD/Ly91Rva3gUIy+VwnYeThbGDxRzlUv1wfN+UQraEcrgwSZ/Q==", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@react-stately/overlays": "^3.6.3", + "@react-stately/utils": "^3.8.0", + "@react-types/tooltip": "^3.4.5", + "@swc/helpers": "^0.5.0" }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@panva/hkdf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", - "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", - "funding": { - "url": "https://github.com/sponsors/panva" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@prisma/client": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.5.2.tgz", - "integrity": "sha512-54XkqR8M+fxbzYqe+bIXimYnkkcGqgOh0dn0yWtIk6CQT4IUCAvNFNcQZwk2KqaLU+/1PHTSWrcHtx4XjluR5w==", - "hasInstallScript": true, + "node_modules/@react-stately/tree": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.3.tgz", + "integrity": "sha512-wB/68qetgCYTe7OMqbTFmtWRrEqVdIH2VlACPCsMlECr3lW9TrrbrOwlHIJfLhkxWvY3kSCoKcOJ5KTiJC9LGA==", "dependencies": { - "@prisma/engines-version": "5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a" - }, - "engines": { - "node": ">=16.13" + "@react-stately/collections": "^3.10.2", + "@react-stately/selection": "^3.14.0", + "@react-stately/utils": "^3.8.0", + "@react-types/shared": "^3.21.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "prisma": "*" - }, - "peerDependenciesMeta": { - "prisma": { - "optional": true - } + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@prisma/engines": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.5.2.tgz", - "integrity": "sha512-Be5hoNF8k+lkB3uEMiCHbhbfF6aj1GnrTBnn5iYFT7GEr3TsOEp1soviEcBR0tYCgHbxjcIxJMhdbvxALJhAqg==", - "devOptional": true, - "hasInstallScript": true - }, - "node_modules/@prisma/engines-version": { - "version": "5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a.tgz", - "integrity": "sha512-O+qHFnZvAyOFk1tUco2/VdiqS0ym42a3+6CYLScllmnpbyiTplgyLt2rK/B9BTjYkSHjrgMhkG47S0oqzdIckA==" - }, - "node_modules/@react-aria/button": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.8.4.tgz", - "integrity": "sha512-rTGZk5zu+lQNjfij2fwnw2PAgBgzNLi3zbMw1FL5/XwVx+lEH2toeqKLoqULtd7nSxskYuQz56VhmjUok6Qkmg==", + "node_modules/@react-stately/utils": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.8.0.tgz", + "integrity": "sha512-wCIoFDbt/uwNkWIBF+xV+21k8Z8Sj5qGO3uptTcVmjYcZngOaGGyB4NkiuZhmhG70Pkv+yVrRwoC1+4oav9cCg==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/toggle": "^3.6.3", - "@react-types/button": "^3.9.0", - "@react-types/shared": "^3.21.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/checkbox": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.11.2.tgz", - "integrity": "sha512-8cgXxpc7IMJ9buw+Rbhr1xc66zNp2ePuFpjw3uWyH7S3IJEd2f5kXUDNWLXQRADJso95UlajRlJQiG4QIObEnA==", + "node_modules/@react-stately/virtualizer": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.4.tgz", + "integrity": "sha512-lf3+FDRnyLyY1IhLfwA6GuE/9F3nIEc5p245NkUSN1ngKlXI5PvLHNatiVbONC3wt90abkpMK+WMhu2S/B+4lA==", "dependencies": { - "@react-aria/label": "^3.7.2", - "@react-aria/toggle": "^3.8.2", "@react-aria/utils": "^3.21.1", - "@react-stately/checkbox": "^3.5.1", - "@react-stately/toggle": "^3.6.3", - "@react-types/checkbox": "^3.5.2", "@react-types/shared": "^3.21.0", "@swc/helpers": "^0.5.0" }, @@ -1697,862 +3303,840 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/dialog": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.7.tgz", - "integrity": "sha512-IKeBaIQBl+WYkhytyE0eISW4ApOEvCJZuw9Xq7gjlKFBlF4X6ffo8souv12KpaznK6/fp1vtEXMmy1AfejiT8Q==", + "node_modules/@react-types/accordion": { + "version": "3.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.16.tgz", + "integrity": "sha512-/wMd/XPPJy7oQituxnZubUhyXNHpGlPJXSjbCBydKU8Q+txznHcyXqFqqcktvwwe44p7maYQg4j5QjAJq77v/A==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/overlays": "^3.18.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/overlays": "^3.6.3", - "@react-types/dialog": "^3.5.6", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.20.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/focus": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.14.3.tgz", - "integrity": "sha512-gvO/frZ7SxyfyHJYC+kRsUXnXct8hGHKlG1TwbkzCCXim9XIPKDgRzfNGuFfj0i8ZpR9xmsjOBUkHZny0uekFA==", + "node_modules/@react-types/button": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.0.tgz", + "integrity": "sha512-YhbchUDB7yL88ZFA0Zqod6qOMdzCLD5yVRmhWymk0yNLvB7EB1XX4c5sRANalfZSFP0RpCTlkjB05Hzp4+xOYg==", "dependencies": { - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0", - "clsx": "^1.1.1" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/grid": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.4.tgz", - "integrity": "sha512-UxEz98Z6yxVAOq7QSZ9OmSsvMwxJDVl7dVRwUHeqWxNprk9o5GGCLjhMv948XBUEnOvLV2qgtI7UoGzSdliUJA==", + "node_modules/@react-types/checkbox": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.5.2.tgz", + "integrity": "sha512-iRQrbY8vRRya3bt3i7sHAifhP/ozfkly1/TItkRK5MNPRNPRDKns55D8ZFkRMj4NSyKQpjVt1zzlBXrnSOxWdQ==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/live-announcer": "^3.3.1", - "@react-aria/selection": "^3.17.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/collections": "^3.10.2", - "@react-stately/grid": "^3.8.2", - "@react-stately/selection": "^3.14.0", - "@react-stately/virtualizer": "^3.6.4", - "@react-types/checkbox": "^3.5.2", - "@react-types/grid": "^3.2.2", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/i18n": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.8.4.tgz", - "integrity": "sha512-YlTJn7YJlUxds/T5dNtme551qc118NoDQhK+IgGpzcmPQ3xSnwBAQP4Zwc7wCpAU+xEwnNcsGw+L1wJd49He/A==", + "node_modules/@react-types/dialog": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.6.tgz", + "integrity": "sha512-lwwaAgoi4xe4eEJxBns+cBIRstIPTKWWddMkp51r7Teeh2uKs1Wki7N+Acb9CfT6JQTQDqtVJm6K76rcqNBVwg==", "dependencies": { - "@internationalized/date": "^3.5.0", - "@internationalized/message": "^3.1.1", - "@internationalized/number": "^3.3.0", - "@internationalized/string": "^3.1.1", - "@react-aria/ssr": "^3.8.0", - "@react-aria/utils": "^3.21.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/overlays": "^3.8.3", + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/interactions": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.19.1.tgz", - "integrity": "sha512-2QFOvq/rJfMGEezmtYcGcJmfaD16kHKcSTLFrZ8aeBK6hYFddGVZJZk+dXf+G7iNaffa8rMt6uwzVe/malJPBA==", + "node_modules/@react-types/grid": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.2.tgz", + "integrity": "sha512-R4USOpn1xfsWVGwZsakRlIdsBA10XNCnAUcRXQTn2JmzLjDCtcln6uYo9IFob080lQuvjkSw3j4zkw7Yo4Qepg==", "dependencies": { - "@react-aria/ssr": "^3.8.0", - "@react-aria/utils": "^3.21.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/label": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.2.tgz", - "integrity": "sha512-rS0xQy+4RH1+JLESzLZd9H285McjNNf2kKwBhzU0CW3akjlu7gqaMKEJhX9MlpPDIVOUc2oEObGdU3UMmqa8ew==", + "node_modules/@react-types/label": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.8.1.tgz", + "integrity": "sha512-fA6zMTF2TmfU7H8JBJi0pNd8t5Ak4gO+ZA3cZBysf8r3EmdAsgr3LLqFaGTnZzPH1Fux6c7ARI3qjVpyNiejZQ==", "dependencies": { - "@react-aria/utils": "^3.21.1", - "@react-types/label": "^3.8.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/link": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.1.tgz", - "integrity": "sha512-uVkuNHabxE11Eqeo0d1RA86EckOlfJ2Ld8uN8HnTxiLetXLZYUMBwlZfBJvT3RdwPtTG7jC3OK3BvwiyIJrtZw==", + "node_modules/@react-types/link": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.1.tgz", + "integrity": "sha512-hX2KpjB7wSuJw5Pia63+WEgEql53VfVG1Vu2cTUJDxfrgUtawwHtxB8B0K3cs3jBanq69amgAInEx0FfqYY0uQ==", "dependencies": { - "@react-aria/focus": "^3.14.3", "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-types/link": "^3.5.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/listbox": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.1.tgz", - "integrity": "sha512-AkguQaIkqpP5oe++EZqYHowD7FfeQs+yY0QZVSsVPpNExcBug8/GcXvhSclcOxdh6ekZg4Wwcq7K0zhuTSOPzg==", + "node_modules/@react-types/listbox": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.5.tgz", + "integrity": "sha512-nuRY3l8h/rBYQWTXWdZz5YJdl6QDDmXpHrnPuX7PxTwbXcwjhoMK+ZkJ0arA8Uv3MPs1OUcT6K6CInsPnG2ARQ==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/interactions": "^3.19.1", - "@react-aria/label": "^3.7.2", - "@react-aria/selection": "^3.17.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/collections": "^3.10.2", - "@react-stately/list": "^3.10.0", - "@react-types/listbox": "^3.4.5", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/live-announcer": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.1.tgz", - "integrity": "sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==", + "node_modules/@react-types/menu": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.5.tgz", + "integrity": "sha512-KB5lJM0p9PxwpVlHV9sRdpjh+sqINeHrJgGizy/cQI9bj26nupiEgamSD14dULNI6BFT9DkgKCsobBtE04DDKQ==", "dependencies": { - "@swc/helpers": "^0.5.0" + "@react-types/overlays": "^3.8.3", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/menu": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.11.1.tgz", - "integrity": "sha512-1eVVDrGnSExaL7e8IiaM9ndWTjT23rsnQGUK3p66R1Ojs8Q5rPBuJpP74rsmIpYiKOCr8WyZunjm5Fjv5KfA5Q==", + "node_modules/@react-types/overlays": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.3.tgz", + "integrity": "sha512-TrCG2I2+V+TD0PGi3CqfnyU5jEzcelSGgYJQvVxsl5Vv3ri7naBLIsOjF9x66tPxhINLCPUtOze/WYRAexp8aw==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/overlays": "^3.18.1", - "@react-aria/selection": "^3.17.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/collections": "^3.10.2", - "@react-stately/menu": "^3.5.6", - "@react-stately/tree": "^3.7.3", - "@react-types/button": "^3.9.0", - "@react-types/menu": "^3.9.5", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/overlays": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.18.1.tgz", - "integrity": "sha512-C74eZbTp3OA/gXy9/+4iPrZiz7g27Zy6Q1+plbg5QTLpsFLBt2Ypy9jTTANNRZfW7a5NW/Bnw9WIRjCdtTBRXw==", + "node_modules/@react-types/progress": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.0.tgz", + "integrity": "sha512-c1KLQCfYjdUdkTcPy0ZW31dc2+D86ZiZRHPNOaSYFGJjk9ItbWWi8BQTwlrw6D2l/+0d/YDdUFGaZhHMrY9mBQ==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/ssr": "^3.8.0", - "@react-aria/utils": "^3.21.1", - "@react-aria/visually-hidden": "^3.8.6", - "@react-stately/overlays": "^3.6.3", - "@react-types/button": "^3.9.0", - "@react-types/overlays": "^3.8.3", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/progress": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.7.tgz", - "integrity": "sha512-wQ+xnzt5bBdbyQ2Qx80HxaFrPZRFKge57tmJWg4qelo7tzmgb3a22tf0Ug4C3gEz/uAv0JQWOtqLKTxjsiVP7g==", + "node_modules/@react-types/radio": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.5.2.tgz", + "integrity": "sha512-crYQ+97abd5v0Iw9X+Tt+E7KWdm5ckr4g0+Iy8byV1g6MyiBOsNtq9QT99TOzyWJPqqD8T9qZfAOk49wK7KEDg==", "dependencies": { - "@react-aria/i18n": "^3.8.4", - "@react-aria/label": "^3.7.2", - "@react-aria/utils": "^3.21.1", - "@react-types/progress": "^3.5.0", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/radio": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.8.2.tgz", - "integrity": "sha512-j8yyGjboTgoBEQWlnJbQVvegKiUeQEUvU/kZ7ZAdj+eAL3BqfO6FO7yt6WzK7ZIBzjGS9YbesaUa3hwIjDi3LA==", + "node_modules/@react-types/select": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.8.4.tgz", + "integrity": "sha512-jHBaLiAHTcYPz52kuJpypBbR0WAA+YCZHy2HH+W8711HuTqePZCEp6QAWHK9Fw0qwSZQ052jYaWvOsgEZZ6ojQ==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/label": "^3.7.2", - "@react-aria/utils": "^3.21.1", - "@react-stately/radio": "^3.9.1", - "@react-types/radio": "^3.5.2", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.21.0.tgz", + "integrity": "sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/switch": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.4.2.tgz", + "integrity": "sha512-OQWpawikWhF+ET1/kE0/JeJVr6gHjkR72p/idTsT7RUJySBcehhAscbIA8iWzVWJvdFCVF2hG7uzBAJTeDMr9A==", + "dependencies": { + "@react-types/checkbox": "^3.5.2", + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/selection": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.1.tgz", - "integrity": "sha512-g5gkSc/M+zJiVgWbUpKN095ea0D4fxdluH9ZcXxN4AAvcrVfEJyAnMmWOIKRebN8xR0KPfNRnKB7E6jld2tbuQ==", + "node_modules/@react-types/table": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.0.tgz", + "integrity": "sha512-WOLxZ3tzLA4gxRxvnsZhnnQDbh4Qe/johpHNk4coSOFOP5W8PbunPacXnbvdPkSx6rqrOIzCnYcZCtgk4gDQmg==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/collections": "^3.10.2", - "@react-stately/selection": "^3.14.0", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@react-types/grid": "^3.2.2", + "@react-types/shared": "^3.21.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/ssr": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.8.0.tgz", - "integrity": "sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A==", + "node_modules/@react-types/tabs": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.3.tgz", + "integrity": "sha512-Zc4g5TIwJpKS5fiT9m4dypbCr1xqtauL4wqM76fGERCAZy0FwXTH/yjzHJDYKyWFJrQNWtJ0KAhJR/ZqKDVnIw==", "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/switch": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.5.6.tgz", - "integrity": "sha512-W6H/0TFa72MJY02AatUERt5HKgaDTF8lOaTjNNmS6U6U20+//uvrVCqcBof8OMe4M60mQpkp7Bd6756CJAMX1w==", + "node_modules/@react-types/textfield": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.8.1.tgz", + "integrity": "sha512-p8Xmew9kzJd+tCM7h9LyebZHpv7SH1IE1Nu13hLCOV5cZ/tVVVCwjNGLMv4MtUpSn++H42YLJgAW9Uif+a+RHg==", "dependencies": { - "@react-aria/toggle": "^3.8.2", - "@react-stately/toggle": "^3.6.3", - "@react-types/switch": "^3.4.2", - "@swc/helpers": "^0.5.0" + "@react-types/shared": "^3.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/table": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.1.tgz", - "integrity": "sha512-TBtCmJsKl3rJW/dCzA0ZxPGb8mN7ndbryLh3u+iV/+GVAVsytvAenOGrq9sLHHWXwQo5RJoO1bkUudvrZrJ5/g==", + "node_modules/@react-types/tooltip": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.5.tgz", + "integrity": "sha512-pv87Vlu+Pn1Titw199y5aiSuXF/GHX+fBCihi9BeePqtwYm505e/Si01BNh5ejCeXXOS4JIMuXwmGGzGVdGk6Q==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/grid": "^3.8.4", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/live-announcer": "^3.3.1", - "@react-aria/selection": "^3.17.1", - "@react-aria/utils": "^3.21.1", - "@react-aria/visually-hidden": "^3.8.6", - "@react-stately/collections": "^3.10.2", - "@react-stately/flags": "^3.0.0", - "@react-stately/table": "^3.11.2", - "@react-stately/virtualizer": "^3.6.4", - "@react-types/checkbox": "^3.5.2", - "@react-types/grid": "^3.2.2", - "@react-types/shared": "^3.21.0", - "@react-types/table": "^3.9.0", - "@swc/helpers": "^0.5.0" + "@react-types/overlays": "^3.8.3", + "@react-types/shared": "^3.21.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-aria/tabs": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.1.tgz", - "integrity": "sha512-3kRd5rYKclmW9lllcANq0oun2d1pZq7Onma95laYfrWtPBZ3YDVKOkujGSqdfSQAFVshWBjl2Q03yyvcRiwzbQ==", + "node_modules/@rushstack/eslint-patch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", + "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", + "dev": true + }, + "node_modules/@smithy/abort-controller": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.12.tgz", + "integrity": "sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/selection": "^3.17.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/list": "^3.10.0", - "@react-stately/tabs": "^3.6.1", - "@react-types/shared": "^3.21.0", - "@react-types/tabs": "^3.3.3", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-aria/textfield": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.12.2.tgz", - "integrity": "sha512-wRg8LJjZV6o4S/LRFqxs5waGDTiuIa/CRN+/X37Fu7GeZFeK0IBvWjKPlXLe7gMswaFqRmTKnQCU42mzUdDK1g==", + "node_modules/@smithy/chunked-blob-reader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz", + "integrity": "sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/label": "^3.7.2", - "@react-aria/utils": "^3.21.1", - "@react-types/shared": "^3.21.0", - "@react-types/textfield": "^3.8.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "tslib": "^2.5.0" } }, - "node_modules/@react-aria/toggle": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.8.2.tgz", - "integrity": "sha512-0+RmlOQtyRmU+Dd9qM9od4DPpITC7jqA+n3aZn732XtCsosz5gPGbhFuLbSdWRZ42FQgqo7pZQWaDRZpJPkipA==", + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.0.tgz", + "integrity": "sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/toggle": "^3.6.3", - "@react-types/checkbox": "^3.5.2", - "@react-types/shared": "^3.21.0", - "@react-types/switch": "^3.4.2", - "@swc/helpers": "^0.5.0" + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.16.tgz", + "integrity": "sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==", + "dependencies": { + "@smithy/node-config-provider": "^2.1.3", + "@smithy/types": "^2.4.0", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.5", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-aria/tooltip": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.6.4.tgz", - "integrity": "sha512-5WCOiRSugzbfEOH+Bjpuf6EsNyynqq5S1uDh/P6J8qiYDjc0xLRJ5dyLdytX7c8MK9Y0pIHi6xb0xR9jDqJXTw==", + "node_modules/@smithy/credential-provider-imds": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.18.tgz", + "integrity": "sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==", "dependencies": { - "@react-aria/focus": "^3.14.3", - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-stately/tooltip": "^3.4.5", - "@react-types/shared": "^3.21.0", - "@react-types/tooltip": "^3.4.5", - "@swc/helpers": "^0.5.0" + "@smithy/node-config-provider": "^2.1.3", + "@smithy/property-provider": "^2.0.13", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-aria/utils": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.21.1.tgz", - "integrity": "sha512-tySfyWHXOhd/b6JSrSOl7krngEXN3N6pi1hCAXObRu3+MZlaZOMDf/j18aoteaIF2Jpv8HMWUJUJtQKGmBJGRA==", + "node_modules/@smithy/eventstream-codec": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.12.tgz", + "integrity": "sha512-ZZQLzHBJkbiAAdj2C5K+lBlYp/XJ+eH2uy+jgJgYIFW/o5AM59Hlj7zyI44/ZTDIQWmBxb3EFv/c5t44V8/g8A==", "dependencies": { - "@react-aria/ssr": "^3.8.0", - "@react-stately/utils": "^3.8.0", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0", - "clsx": "^1.1.1" + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.4.0", + "@smithy/util-hex-encoding": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.12.tgz", + "integrity": "sha512-0pi8QlU/pwutNshoeJcbKR1p7Ie5STd8UFAMX5xhSoSJjNlxIv/OsHbF023jscMRN2Prrqd6ToGgdCnsZVQjvg==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-aria/visually-hidden": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.6.tgz", - "integrity": "sha512-6DmS/JLbK9KgU/ClK1WjwOyvpn8HtwYn+uisMLdP7HlCm692peYOkXDR1jqYbHL4GlyLCD0JLI+/xGdVh5aR/w==", + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.12.tgz", + "integrity": "sha512-I0XfwQkIX3gAnbrU5rLMkBSjTM9DHttdbLwf12CXmj7SSI5dT87PxtKLRrZGanaCMbdf2yCep+MW5/4M7IbvQA==", "dependencies": { - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0", - "clsx": "^1.1.1" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/checkbox": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.5.1.tgz", - "integrity": "sha512-j+EbHpZgS8J2LbysbVDK3vQAJc7YZHOjHRX20auEzVmulAFKwkRpevo/R5gEL4EpOz4bRyu+BH/jbssHXG+Ezw==", + "node_modules/@smithy/eventstream-serde-node": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.12.tgz", + "integrity": "sha512-vf1vMHGOkG3uqN9x1zKOhnvW/XgvhJXWqjV6zZiT2FMjlEayugQ1mzpSqr7uf89+BzjTzuZKERmOsEAmewLbxw==", "dependencies": { - "@react-stately/toggle": "^3.6.3", - "@react-stately/utils": "^3.8.0", - "@react-types/checkbox": "^3.5.2", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/eventstream-serde-universal": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/collections": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.2.tgz", - "integrity": "sha512-h+LzCa1gWhVRWVH8uR+ZxsKmFSx7kW3RIlcjWjhfyc59BzXCuojsOJKTTAyPVFP/3kOdJeltw8g/reV1Cw/x6Q==", + "node_modules/@smithy/eventstream-serde-universal": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.12.tgz", + "integrity": "sha512-xZ3ZNpCxIND+q+UCy7y1n1/5VQEYicgSTNCcPqsKawX+Vd+6OcFX7gUHMyPzL8cZr+GdmJuxNleqHlH4giK2tw==", "dependencies": { - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/eventstream-codec": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/flags": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.0.tgz", - "integrity": "sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==", + "node_modules/@smithy/fetch-http-handler": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.4.tgz", + "integrity": "sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==", "dependencies": { - "@swc/helpers": "^0.4.14" + "@smithy/protocol-http": "^3.0.8", + "@smithy/querystring-builder": "^2.0.12", + "@smithy/types": "^2.4.0", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" } }, - "node_modules/@react-stately/flags/node_modules/@swc/helpers": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", - "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", + "node_modules/@smithy/hash-blob-browser": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.12.tgz", + "integrity": "sha512-riLnV16f27yyePX8UF0deRHAeccUK8SrOxyTykSTrnVkgS3DsjNapZtTbd8OGNKEbI60Ncdb5GwN3rHZudXvog==", "dependencies": { - "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" + "@smithy/chunked-blob-reader": "^2.0.0", + "@smithy/chunked-blob-reader-native": "^2.0.0", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" } }, - "node_modules/@react-stately/grid": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.2.tgz", - "integrity": "sha512-CB5QpYjXFatuXZodj3r0vIiqTysUe6DURZdJu6RKG2Elx19n2k49fKyx7P7CTKD2sPBOMSSX4edWuTzpL8Tl+A==", + "node_modules/@smithy/hash-node": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.12.tgz", + "integrity": "sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==", "dependencies": { - "@react-stately/collections": "^3.10.2", - "@react-stately/selection": "^3.14.0", - "@react-types/grid": "^3.2.2", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/list": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.0.tgz", - "integrity": "sha512-Yspumiln2fvzoO8AND8jNAIfBu1XPaYioeeDmsB5Vrya2EvOkzEGsauQSNBJ6Vhee1fQqpnmzH1HB0jfIKUfzg==", + "node_modules/@smithy/hash-stream-node": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.12.tgz", + "integrity": "sha512-x/DrSynPKrW0k00q7aZ/vy531a3mRw79mOajHp+cIF0TrA1SqEMFoy/B8X0XtoAtlJWt/vvgeDNqt/KAeaAqMw==", "dependencies": { - "@react-stately/collections": "^3.10.2", - "@react-stately/selection": "^3.14.0", - "@react-stately/utils": "^3.8.0", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.12.tgz", + "integrity": "sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==", + "dependencies": { + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz", + "integrity": "sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/md5-js": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.12.tgz", + "integrity": "sha512-OgDt+Xnrw+W5z3MSl5KZZzebqmXrYl9UdbCiBYnnjErmNywwSjV6QB/Oic3/7hnsPniSU81n7Rvlhz2kH4EREQ==", + "dependencies": { + "@smithy/types": "^2.4.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" } }, - "node_modules/@react-stately/menu": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.5.6.tgz", - "integrity": "sha512-Cm82SVda1qP71Fcz8ohIn3JYKmKCuSUIFr1WsEo/YwDPkX0x9+ev6rmphHTsxDdkCLcYHSTQL6e2KL0wAg50zA==", + "node_modules/@smithy/middleware-content-length": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.14.tgz", + "integrity": "sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==", "dependencies": { - "@react-stately/overlays": "^3.6.3", - "@react-stately/utils": "^3.8.0", - "@react-types/menu": "^3.9.5", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/protocol-http": "^3.0.8", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/overlays": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.3.tgz", - "integrity": "sha512-K3eIiYAdAGTepYqNf2pVb+lPqLoVudXwmxPhyOSZXzjgpynD6tR3E9QfWQtkMazBuU73PnNX7zkH4l87r2AmTg==", + "node_modules/@smithy/middleware-endpoint": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.1.3.tgz", + "integrity": "sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==", "dependencies": { - "@react-stately/utils": "^3.8.0", - "@react-types/overlays": "^3.8.3", - "@swc/helpers": "^0.5.0" + "@smithy/middleware-serde": "^2.0.12", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.2.2", + "@smithy/types": "^2.4.0", + "@smithy/url-parser": "^2.0.12", + "@smithy/util-middleware": "^2.0.5", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/radio": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.9.1.tgz", - "integrity": "sha512-DrQPHiP9pz1uQbBP/NDFdO8uOZigPbvuAWPUNK7Gq6kye5lW+RsS97IUnYJePNTSMvhiAVz/aleBt05Gr/PZmg==", + "node_modules/@smithy/middleware-retry": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.18.tgz", + "integrity": "sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==", "dependencies": { - "@react-stately/utils": "^3.8.0", - "@react-types/radio": "^3.5.2", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/node-config-provider": "^2.1.3", + "@smithy/protocol-http": "^3.0.8", + "@smithy/service-error-classification": "^2.0.5", + "@smithy/types": "^2.4.0", + "@smithy/util-middleware": "^2.0.5", + "@smithy/util-retry": "^2.0.5", + "tslib": "^2.5.0", + "uuid": "^8.3.2" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/selection": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.0.tgz", - "integrity": "sha512-E5rNH+gVGDJQDSnPO30ynu6jZ0Z0++VPUbM5Bu3P/bZ3+TgoTtDDvlONba3fspgSBDfdnHpsuG9eqYnDtEAyYA==", + "node_modules/@smithy/middleware-serde": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.12.tgz", + "integrity": "sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==", "dependencies": { - "@react-stately/collections": "^3.10.2", - "@react-stately/utils": "^3.8.0", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/table": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.2.tgz", - "integrity": "sha512-EVgksPAsnEoqeT+5ej4aGJdu9kAu3LCDqQfnmif2P/R1BP5eDU1Kv0N/mV/90Xp546g7kuZ1wS2if/hWDXEA5g==", + "node_modules/@smithy/middleware-stack": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.6.tgz", + "integrity": "sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==", "dependencies": { - "@react-stately/collections": "^3.10.2", - "@react-stately/flags": "^3.0.0", - "@react-stately/grid": "^3.8.2", - "@react-stately/selection": "^3.14.0", - "@react-stately/utils": "^3.8.0", - "@react-types/grid": "^3.2.2", - "@react-types/shared": "^3.21.0", - "@react-types/table": "^3.9.0", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/tabs": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.1.tgz", - "integrity": "sha512-akGmejEaXg2RMZuWbRZ0W1MLr515e0uV0iVZefKBlcHtD/mK9K9Bo2XxBScf0TIhaPJ6Qa2w2k2+V7RmT7r8Ag==", + "node_modules/@smithy/node-config-provider": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.3.tgz", + "integrity": "sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==", "dependencies": { - "@react-stately/list": "^3.10.0", - "@react-stately/utils": "^3.8.0", - "@react-types/shared": "^3.21.0", - "@react-types/tabs": "^3.3.3", - "@swc/helpers": "^0.5.0" + "@smithy/property-provider": "^2.0.13", + "@smithy/shared-ini-file-loader": "^2.2.2", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/toggle": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.6.3.tgz", - "integrity": "sha512-4kIMTjRjtaapFk4NVmBoFDUYfkmyqDaYAmHpRyEIHTDpBYn0xpxZL/MHv9WuLYa4MjJLRp0MeicuWiZ4ai7f6Q==", + "node_modules/@smithy/node-http-handler": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.8.tgz", + "integrity": "sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==", "dependencies": { - "@react-stately/utils": "^3.8.0", - "@react-types/checkbox": "^3.5.2", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/abort-controller": "^2.0.12", + "@smithy/protocol-http": "^3.0.8", + "@smithy/querystring-builder": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/tooltip": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.5.tgz", - "integrity": "sha512-VrwQcjnrNddSulh+Zql8P8cORRnWqSPkHPqQwD/Ly91Rva3gUIy+VwnYeThbGDxRzlUv1wfN+UQraEcrgwSZ/Q==", + "node_modules/@smithy/property-provider": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.13.tgz", + "integrity": "sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==", "dependencies": { - "@react-stately/overlays": "^3.6.3", - "@react-stately/utils": "^3.8.0", - "@react-types/tooltip": "^3.4.5", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/tree": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.3.tgz", - "integrity": "sha512-wB/68qetgCYTe7OMqbTFmtWRrEqVdIH2VlACPCsMlECr3lW9TrrbrOwlHIJfLhkxWvY3kSCoKcOJ5KTiJC9LGA==", + "node_modules/@smithy/protocol-http": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.8.tgz", + "integrity": "sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==", "dependencies": { - "@react-stately/collections": "^3.10.2", - "@react-stately/selection": "^3.14.0", - "@react-stately/utils": "^3.8.0", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/utils": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.8.0.tgz", - "integrity": "sha512-wCIoFDbt/uwNkWIBF+xV+21k8Z8Sj5qGO3uptTcVmjYcZngOaGGyB4NkiuZhmhG70Pkv+yVrRwoC1+4oav9cCg==", + "node_modules/@smithy/querystring-builder": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.12.tgz", + "integrity": "sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==", "dependencies": { - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-stately/virtualizer": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.4.tgz", - "integrity": "sha512-lf3+FDRnyLyY1IhLfwA6GuE/9F3nIEc5p245NkUSN1ngKlXI5PvLHNatiVbONC3wt90abkpMK+WMhu2S/B+4lA==", + "node_modules/@smithy/querystring-parser": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.12.tgz", + "integrity": "sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==", "dependencies": { - "@react-aria/utils": "^3.21.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/accordion": { - "version": "3.0.0-alpha.16", - "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.16.tgz", - "integrity": "sha512-/wMd/XPPJy7oQituxnZubUhyXNHpGlPJXSjbCBydKU8Q+txznHcyXqFqqcktvwwe44p7maYQg4j5QjAJq77v/A==", + "node_modules/@smithy/service-error-classification": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.5.tgz", + "integrity": "sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==", "dependencies": { - "@react-types/shared": "^3.20.0" + "@smithy/types": "^2.4.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/button": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.0.tgz", - "integrity": "sha512-YhbchUDB7yL88ZFA0Zqod6qOMdzCLD5yVRmhWymk0yNLvB7EB1XX4c5sRANalfZSFP0RpCTlkjB05Hzp4+xOYg==", + "node_modules/@smithy/shared-ini-file-loader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.2.tgz", + "integrity": "sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==", "dependencies": { - "@react-types/shared": "^3.21.0" + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/checkbox": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.5.2.tgz", - "integrity": "sha512-iRQrbY8vRRya3bt3i7sHAifhP/ozfkly1/TItkRK5MNPRNPRDKns55D8ZFkRMj4NSyKQpjVt1zzlBXrnSOxWdQ==", + "node_modules/@smithy/signature-v4": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.12.tgz", + "integrity": "sha512-6Kc2lCZEVmb1nNYngyNbWpq0d82OZwITH11SW/Q0U6PX5fH7B2cIcFe7o6eGEFPkTZTP8itTzmYiGcECL0D0Lw==", "dependencies": { - "@react-types/shared": "^3.21.0" + "@smithy/eventstream-codec": "^2.0.12", + "@smithy/is-array-buffer": "^2.0.0", + "@smithy/types": "^2.4.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-middleware": "^2.0.5", + "@smithy/util-uri-escape": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/dialog": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.6.tgz", - "integrity": "sha512-lwwaAgoi4xe4eEJxBns+cBIRstIPTKWWddMkp51r7Teeh2uKs1Wki7N+Acb9CfT6JQTQDqtVJm6K76rcqNBVwg==", + "node_modules/@smithy/smithy-client": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.12.tgz", + "integrity": "sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==", "dependencies": { - "@react-types/overlays": "^3.8.3", - "@react-types/shared": "^3.21.0" + "@smithy/middleware-stack": "^2.0.6", + "@smithy/types": "^2.4.0", + "@smithy/util-stream": "^2.0.17", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/grid": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.2.tgz", - "integrity": "sha512-R4USOpn1xfsWVGwZsakRlIdsBA10XNCnAUcRXQTn2JmzLjDCtcln6uYo9IFob080lQuvjkSw3j4zkw7Yo4Qepg==", + "node_modules/@smithy/types": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.4.0.tgz", + "integrity": "sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==", "dependencies": { - "@react-types/shared": "^3.21.0" + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/label": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.8.1.tgz", - "integrity": "sha512-fA6zMTF2TmfU7H8JBJi0pNd8t5Ak4gO+ZA3cZBysf8r3EmdAsgr3LLqFaGTnZzPH1Fux6c7ARI3qjVpyNiejZQ==", + "node_modules/@smithy/url-parser": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.12.tgz", + "integrity": "sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==", "dependencies": { - "@react-types/shared": "^3.21.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "@smithy/querystring-parser": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" } }, - "node_modules/@react-types/link": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.1.tgz", - "integrity": "sha512-hX2KpjB7wSuJw5Pia63+WEgEql53VfVG1Vu2cTUJDxfrgUtawwHtxB8B0K3cs3jBanq69amgAInEx0FfqYY0uQ==", + "node_modules/@smithy/util-base64": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.0.tgz", + "integrity": "sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==", "dependencies": { - "@react-aria/interactions": "^3.19.1", - "@react-types/shared": "^3.21.0" + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/listbox": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.5.tgz", - "integrity": "sha512-nuRY3l8h/rBYQWTXWdZz5YJdl6QDDmXpHrnPuX7PxTwbXcwjhoMK+ZkJ0arA8Uv3MPs1OUcT6K6CInsPnG2ARQ==", + "node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz", + "integrity": "sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==", "dependencies": { - "@react-types/shared": "^3.21.0" + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz", + "integrity": "sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==", + "dependencies": { + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/menu": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.5.tgz", - "integrity": "sha512-KB5lJM0p9PxwpVlHV9sRdpjh+sqINeHrJgGizy/cQI9bj26nupiEgamSD14dULNI6BFT9DkgKCsobBtE04DDKQ==", + "node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz", + "integrity": "sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==", "dependencies": { - "@react-types/overlays": "^3.8.3", - "@react-types/shared": "^3.21.0" + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/overlays": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.3.tgz", - "integrity": "sha512-TrCG2I2+V+TD0PGi3CqfnyU5jEzcelSGgYJQvVxsl5Vv3ri7naBLIsOjF9x66tPxhINLCPUtOze/WYRAexp8aw==", + "node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz", + "integrity": "sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==", "dependencies": { - "@react-types/shared": "^3.21.0" + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/progress": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.0.tgz", - "integrity": "sha512-c1KLQCfYjdUdkTcPy0ZW31dc2+D86ZiZRHPNOaSYFGJjk9ItbWWi8BQTwlrw6D2l/+0d/YDdUFGaZhHMrY9mBQ==", + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.16.tgz", + "integrity": "sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==", "dependencies": { - "@react-types/shared": "^3.21.0" + "@smithy/property-provider": "^2.0.13", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.21.tgz", + "integrity": "sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==", + "dependencies": { + "@smithy/config-resolver": "^2.0.16", + "@smithy/credential-provider-imds": "^2.0.18", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/property-provider": "^2.0.13", + "@smithy/smithy-client": "^2.1.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" } }, - "node_modules/@react-types/radio": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.5.2.tgz", - "integrity": "sha512-crYQ+97abd5v0Iw9X+Tt+E7KWdm5ckr4g0+Iy8byV1g6MyiBOsNtq9QT99TOzyWJPqqD8T9qZfAOk49wK7KEDg==", + "node_modules/@smithy/util-endpoints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.2.tgz", + "integrity": "sha512-QEdq+sP68IJHAMVB2ugKVVZEWeKQtZLuf+akHzc8eTVElsZ2ZdVLWC6Cp+uKjJ/t4yOj1qu6ZzyxJQEQ8jdEjg==", "dependencies": { - "@react-types/shared": "^3.21.0" + "@smithy/node-config-provider": "^2.1.3", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@react-types/select": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.8.4.tgz", - "integrity": "sha512-jHBaLiAHTcYPz52kuJpypBbR0WAA+YCZHy2HH+W8711HuTqePZCEp6QAWHK9Fw0qwSZQ052jYaWvOsgEZZ6ojQ==", + "node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz", + "integrity": "sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==", "dependencies": { - "@react-types/shared": "^3.21.0" + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/shared": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.21.0.tgz", - "integrity": "sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "node_modules/@smithy/util-middleware": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.5.tgz", + "integrity": "sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==", + "dependencies": { + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/switch": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.4.2.tgz", - "integrity": "sha512-OQWpawikWhF+ET1/kE0/JeJVr6gHjkR72p/idTsT7RUJySBcehhAscbIA8iWzVWJvdFCVF2hG7uzBAJTeDMr9A==", + "node_modules/@smithy/util-retry": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.5.tgz", + "integrity": "sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==", "dependencies": { - "@react-types/checkbox": "^3.5.2", - "@react-types/shared": "^3.21.0" + "@smithy/service-error-classification": "^2.0.5", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@react-types/table": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.0.tgz", - "integrity": "sha512-WOLxZ3tzLA4gxRxvnsZhnnQDbh4Qe/johpHNk4coSOFOP5W8PbunPacXnbvdPkSx6rqrOIzCnYcZCtgk4gDQmg==", + "node_modules/@smithy/util-stream": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.17.tgz", + "integrity": "sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==", "dependencies": { - "@react-types/grid": "^3.2.2", - "@react-types/shared": "^3.21.0" + "@smithy/fetch-http-handler": "^2.2.4", + "@smithy/node-http-handler": "^2.1.8", + "@smithy/types": "^2.4.0", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/tabs": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.3.tgz", - "integrity": "sha512-Zc4g5TIwJpKS5fiT9m4dypbCr1xqtauL4wqM76fGERCAZy0FwXTH/yjzHJDYKyWFJrQNWtJ0KAhJR/ZqKDVnIw==", + "node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz", + "integrity": "sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==", "dependencies": { - "@react-types/shared": "^3.21.0" + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/textfield": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.8.1.tgz", - "integrity": "sha512-p8Xmew9kzJd+tCM7h9LyebZHpv7SH1IE1Nu13hLCOV5cZ/tVVVCwjNGLMv4MtUpSn++H42YLJgAW9Uif+a+RHg==", + "node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.0.tgz", + "integrity": "sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==", "dependencies": { - "@react-types/shared": "^3.21.0" + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@react-types/tooltip": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.5.tgz", - "integrity": "sha512-pv87Vlu+Pn1Titw199y5aiSuXF/GHX+fBCihi9BeePqtwYm505e/Si01BNh5ejCeXXOS4JIMuXwmGGzGVdGk6Q==", + "node_modules/@smithy/util-waiter": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.12.tgz", + "integrity": "sha512-3sENmyVa1NnOPoiT2NCApPmu7ukP7S/v7kL9IxNmnygkDldn7/yK0TP42oPJLwB2k3mospNsSePIlqdXEUyPHA==", "dependencies": { - "@react-types/overlays": "^3.8.3", - "@react-types/shared": "^3.21.0" + "@smithy/abort-controller": "^2.0.12", + "@smithy/types": "^2.4.0", + "tslib": "^2.5.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", - "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", - "dev": true - }, "node_modules/@swc/helpers": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", @@ -2566,6 +4150,11 @@ "resolved": "https://registry.npmjs.org/@theinternetfolks/snowflake/-/snowflake-1.3.0.tgz", "integrity": "sha512-/5fjyE+JIa95Lm1uDJ9fx52W7/ZHBVvKo5GbpR+swpchbriLzVgFAIUOVwLsscnUTBixyQ+JsEh5pJQM/zKNzQ==" }, + "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==" + }, "node_modules/@types/bcrypt": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.1.tgz", @@ -2575,6 +4164,16 @@ "@types/node": "*" } }, + "node_modules/@types/body-parser": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", + "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, "node_modules/@types/color": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.5.tgz", @@ -2596,11 +4195,50 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.2.tgz", "integrity": "sha512-JWO/ZyxTKk0bLuOhAavGjnwLR73rUE7qzACnU7gMeyA/gdrSHm2xJwqNPipw2MtaZUaqQ2UG/q7pP6AQiZ8mqw==" }, + "node_modules/@types/connect": { + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", + "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.20.tgz", + "integrity": "sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==", + "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.17.39", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", + "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "node_modules/@types/flat": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/flat/-/flat-5.0.4.tgz", "integrity": "sha512-Qy8SOE+x5F40jebCj4vPoA/Y6J2Zd6h9ihMPYP8U8//dDEOK4Yu0ShOTKqEmWPR+4AdV4sls/VCaR6azEFvKKg==" }, + "node_modules/@types/http-errors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", + "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -2652,6 +4290,21 @@ "@types/lodash": "*" } }, + "node_modules/@types/mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", + "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", + "dev": true + }, + "node_modules/@types/multer": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.9.tgz", + "integrity": "sha512-9NSvPJ2E8bNTc8XtJq1Cimx2Wrn2Ah48F15B2Du/hM8a8CHLhVbJMlF3ZCqhvMdht7Sa+YdP0aKP7N4fxDcrrg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, "node_modules/@types/node": { "version": "20.8.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", @@ -2667,6 +4320,18 @@ "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==", "devOptional": true }, + "node_modules/@types/qs": { + "version": "6.9.9", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", + "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", + "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", + "dev": true + }, "node_modules/@types/react": { "version": "18.2.31", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.31.tgz", @@ -2693,6 +4358,27 @@ "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==", "devOptional": true }, + "node_modules/@types/send": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", + "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", + "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/parser": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz", @@ -3134,7 +4820,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3142,6 +4827,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/aws-sdk": { + "version": "2.1483.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1483.0.tgz", + "integrity": "sha512-u1DVpvBd2UeYLXwXgY8tO/SjbdFEE6nRkQWiLaDJaBoHycHpe+DjPtGl1KaLiOIMaDZ+cnIzf3/aRSss/mCeBQ==", + "dependencies": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.16.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "util": "^0.12.4", + "uuid": "8.0.0", + "xml2js": "0.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-sdk/node_modules/uuid": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", + "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/axe-core": { "version": "4.8.2", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz", @@ -3175,6 +4888,25 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "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/bcrypt": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", @@ -3196,6 +4928,11 @@ "node": ">=8" } }, + "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", @@ -3248,6 +4985,21 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -3263,7 +5015,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", @@ -3545,7 +5296,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -4221,6 +5971,14 @@ "node": ">=0.10.0" } }, + "node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4265,6 +6023,27 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -4363,7 +6142,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, "dependencies": { "is-callable": "^1.1.3" } @@ -4502,7 +6280,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", @@ -4646,7 +6423,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -4696,7 +6472,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.2" }, @@ -4708,7 +6483,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -4720,7 +6494,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -4732,7 +6505,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -4771,6 +6543,11 @@ "node": ">= 6" } }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -4857,6 +6634,21 @@ "loose-envify": "^1.0.0" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -4934,7 +6726,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -5000,7 +6791,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5146,7 +6936,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, "dependencies": { "which-typed-array": "^1.1.11" }, @@ -5224,6 +7013,14 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jmespath": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/jose": { "version": "4.15.4", "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", @@ -5654,6 +7451,18 @@ } } }, + "node_modules/next-connect": { + "version": "1.0.0-next.4", + "resolved": "https://registry.npmjs.org/next-connect/-/next-connect-1.0.0-next.4.tgz", + "integrity": "sha512-Iwfz4BgKyiU1E7PeF+kY0d3Ntjr6ZZv6SlOpQokBjaa4YmWv4zEuf/v5txFcoXDF9fSSjdzSzOQ6C+dQEQxkwA==", + "dependencies": { + "@tsconfig/node16": "^1.0.3", + "regexparam": "^2.0.1" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/next-nprogress-bar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/next-nprogress-bar/-/next-nprogress-bar-2.1.2.tgz", @@ -6255,6 +8064,15 @@ "node": ">=6" } }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6490,6 +8308,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexparam": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.1.tgz", + "integrity": "sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==", + "engines": { + "node": ">=8" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -6636,6 +8462,11 @@ "node": ">=14.0.0" } }, + "node_modules/sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==" + }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -6675,7 +8506,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, "dependencies": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", @@ -6896,6 +8726,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -7315,6 +9150,20 @@ "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + }, "node_modules/use-callback-ref": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", @@ -7401,6 +9250,18 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -7516,7 +9377,6 @@ "version": "1.1.13", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", @@ -7544,6 +9404,26 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -7576,6 +9456,14 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } + }, + "node_modules/zod-form-data": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zod-form-data/-/zod-form-data-2.0.2.tgz", + "integrity": "sha512-sKTi+k0fvkxdakD0V5rq+9WVJA3cuTQUfEmNqvHrTzPLvjfLmkkBLfR0ed3qOi9MScJXTHIDH/jUNnEJ3CBX4g==", + "peerDependencies": { + "zod": ">= 3.11.0" + } } } } diff --git a/package.json b/package.json index 104ef17..464c05c 100644 --- a/package.json +++ b/package.json @@ -11,15 +11,22 @@ }, "dependencies": { "@auth/prisma-adapter": "^1.0.5", + "@aws-sdk/client-cloudfront": "^3.438.0", + "@aws-sdk/client-s3": "^3.438.0", + "@aws-sdk/cloudfront-signer": "^3.433.0", + "@aws-sdk/credential-providers": "^3.438.0", + "@aws-sdk/s3-request-presigner": "^3.438.0", "@nextui-org/react": "^2.1.13", "@prisma/client": "^5.5.2", "@theinternetfolks/snowflake": "^1.3.0", "@uidotdev/usehooks": "^2.4.1", + "aws-sdk": "^2.1483.0", "axios": "^1.5.1", "bcrypt": "^5.1.1", "framer-motion": "^10.16.4", "next": "^13.5.6", "next-auth": "^4.24.3", + "next-connect": "^1.0.0-next.4", "next-nprogress-bar": "^2.1.2", "next-themes": "^0.2.1", "react": "^18.2.0", @@ -28,11 +35,13 @@ "react-hot-toast": "^2.4.1", "sass": "^1.69.4", "swr": "^2.2.4", - "zod": "^3.22.4" + "zod": "^3.22.4", + "zod-form-data": "^2.0.2" }, "devDependencies": { "@next-auth/prisma-adapter": "^1.0.7", "@types/bcrypt": "^5.0.1", + "@types/multer": "^1.4.9", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", diff --git a/src/app/(site)/(internal)/settings/account/components/EditableUserProfile.tsx b/src/app/(site)/(internal)/settings/account/components/EditableUserProfile.tsx index 1c9ed65..9daf28f 100644 --- a/src/app/(site)/(internal)/settings/account/components/EditableUserProfile.tsx +++ b/src/app/(site)/(internal)/settings/account/components/EditableUserProfile.tsx @@ -1,15 +1,22 @@ "use client" -import {FC, Fragment} from "react"; +import {FC, Fragment, useCallback, useState} from "react"; import {useMemberData} from "@/app/(site)/components/providers/user-data/UserProvider"; -import {Avatar, Spacer, Spinner} from "@nextui-org/react"; +import {Spacer, Spinner} from "@nextui-org/react"; import Card from "@/app/(site)/components/Card"; import {CardBody} from "@nextui-org/card"; import EditableInput from "@/app/(site)/components/inputs/editable/EditableInput"; import {USERNAME_REGEX} from "@/app/api/auth/register/register.dto"; import {EditIcon} from "@nextui-org/shared-icons"; +import EditableMemberAvatar from "@/app/(site)/components/inputs/editable/EditableAvatar"; +import toast from "react-hot-toast"; +import UpdateSelfMember from "@/app/(site)/hooks/user/UpdateSelfMember"; +import {PatchSelfDto} from "@/app/api/me/self-user.dto"; +import {handleAxiosError} from "@/utils/client/client-utils"; const EditableUserProfile: FC = () => { + const {trigger: update, isMutating: isUpdating} = UpdateSelfMember() + const [optimisticAvatarSrc, setOptimisticAvatarSrc] = useState() const { memberData: { data: member, @@ -20,6 +27,12 @@ const EditableUserProfile: FC = () => { } } = useMemberData() + const doUpdate = useCallback(async (dto: PatchSelfDto) => ( + update({body: dto}) + .then(res => res.data) + .catch(handleAxiosError) + ), [update]) + return ( { (
- { + const fileBlob = new Blob([Buffer.from(await file.arrayBuffer())]) + const fileSrc = URL.createObjectURL(fileBlob) + setOptimisticAvatarSrc(fileSrc) + + toast.success("Updated your avatar!") + }} + + onUploadSuccess={async (key) => { + if (editMemberData) + await editMemberData( + () => doUpdate({image: key}), + { + ...member!, + image: key + } + ) + }} + + onUploadError={(error) => { + toast.error(error) + }} />

{member?.firstName} {member?.lastName}

@@ -71,7 +109,8 @@ const EditableUserProfile: FC = () => { }} > -

{member?.username}

+

{member?.username}

@@ -88,7 +127,8 @@ const EditableUserProfile: FC = () => { }} > -

{member?.firstName}

+

{member?.firstName}

@@ -104,7 +144,8 @@ const EditableUserProfile: FC = () => { }} > -

{member?.lastName}

+

{member?.lastName}

diff --git a/src/app/(site)/components/FileUpload.tsx b/src/app/(site)/components/FileUpload.tsx new file mode 100644 index 0000000..9385f07 --- /dev/null +++ b/src/app/(site)/components/FileUpload.tsx @@ -0,0 +1,114 @@ +"use client" + +import {FC, Fragment, ReactElement, RefObject, useRef} from "react"; +import {Input} from "@nextui-org/input"; +import MediaType from "@/app/api/utils/MediaType"; +import toast from "react-hot-toast"; +import UploadS3File from "@/app/(site)/hooks/s3/UploadS3File"; + +export type FileUploadProps = { + uploadKey?: string, + /** + * Used to update an image to prevent the cluttering + * of the S3 bucket and CloudFront CDN. + */ + oldKey?: string, + /** + * Must end with a forward slash. + */ + uploadPath?: string, + isPublicObject?: boolean, + onUploadStart?: (file: File) => void, + onUploadSuccess?: (key: string) => void, + onUploadError?: (error: string) => void, + onFileRemove?: () => void, + disabled?: boolean, + fileTypes: MediaType[] + children?: (inputRef: RefObject) => ReactElement | ReactElement[], + showToast?: boolean, + toastOptions?: { + uploadingMsg?: string, + successMsg?: string, + errorHandler?: (error: string) => any + } +} + +export const FileUpload: FC = ({ + uploadKey, + oldKey, + uploadPath, + onUploadStart, + onUploadSuccess, + onUploadError, + onFileRemove, + fileTypes, + disabled, + children, + showToast, + toastOptions, + isPublicObject + }) => { + const {trigger: triggerUpload} = UploadS3File() + const inputRef = useRef(null) + + return ( + + { + e.preventDefault() + + const upload = async () => { + const allFiles = e.target.files; + if (!allFiles || !allFiles.length) { + if (onFileRemove) + onFileRemove(); + return Promise.resolve(); + } + const file = allFiles[0]; + if (onUploadStart) + onUploadStart(file); + + return triggerUpload({ + body: { + file, + key: uploadKey, + oldKey, + path: uploadPath, + isPublic: isPublicObject + } + }).then((res) => { + if (onUploadSuccess) + onUploadSuccess(res.data.key.replace("avatars/", "")); + } + ).catch(e => { + if (onUploadError) + onUploadError(e.message); + }); + }; + + if (showToast) { + const defaultErrorHandler = (msg: string) => `There was an error uploading a new avatar: ${msg}`; + await toast.promise( + upload(), + { + loading: toastOptions?.uploadingMsg ?? "Uploading new avatar...", + success: toastOptions?.successMsg ?? "Successfully updated new avatar!", + error: toastOptions?.errorHandler ?? defaultErrorHandler + } + ) + } else await upload() + + e.target.files = null + }} + /> + {children && children(inputRef)} + + ) +} + +export default FileUpload \ No newline at end of file diff --git a/src/app/(site)/components/UserProfile.tsx b/src/app/(site)/components/UserProfile.tsx index e6b6cd3..9ce01df 100644 --- a/src/app/(site)/components/UserProfile.tsx +++ b/src/app/(site)/components/UserProfile.tsx @@ -9,6 +9,7 @@ import Image from "@/app/(site)/components/Image"; import HomeIcon from "@/app/(site)/components/icons/HomeIcon"; import Dropdown from "@/app/(site)/components/Dropdown"; import {useMemberData} from "@/app/(site)/components/providers/user-data/UserProvider"; +import useCloudFrontUrl from "@/app/(site)/hooks/s3/useCloudFrontUrl"; type Props = { placement?: OverlayPlacement @@ -16,6 +17,7 @@ type Props = { const UserProfile: FC = ({placement}) => { const {memberData: {data: member}} = useMemberData() + const {data: memberImage, isLoading: memberImageLoading} = useCloudFrontUrl(member && `avatars/${member?.id}`) return ( = ({placement}) => { isBordered as="button" className="transition-transform" - src={member?.image ?? undefined} + src={memberImage?.url ?? undefined} classNames={{ name: "capitalize font-semibold" }} diff --git a/src/app/(site)/components/inputs/editable/EditableAvatar.tsx b/src/app/(site)/components/inputs/editable/EditableAvatar.tsx new file mode 100644 index 0000000..3b06803 --- /dev/null +++ b/src/app/(site)/components/inputs/editable/EditableAvatar.tsx @@ -0,0 +1,72 @@ +import {FC} from "react"; +import FileUpload, {FileUploadProps} from "@/app/(site)/components/FileUpload"; +import MediaType from "@/app/api/utils/MediaType"; +import {Member} from "@prisma/client"; +import useCloudFrontUrl from "@/app/(site)/hooks/s3/useCloudFrontUrl"; +import {Avatar, AvatarProps, Skeleton} from "@nextui-org/react"; +import clsx from "clsx"; +import {AnimatePresence} from "framer-motion"; + +type Props = { + editEnabled?: boolean, + member?: Member, + avatarUrl?: string, + srcOverride?: string, + } + & Omit + & Pick + +const EditableMemberAvatar: FC = ({ + editEnabled, + member, + avatarUrl, + onFileRemove, + onUploadSuccess, + onUploadStart, + onUploadError, + srcOverride, + ...avatarProps + }) => { + const { + data: fetchedAvatarUrl, + isLoading: avatarIsLoading + } = useCloudFrontUrl(avatarUrl === undefined && member?.image ? `avatars/${member.image}` : null) + + + return ( + + {(ref) => ( + + {avatarIsLoading ? ( + + + ) : ( + ref.current?.click()} + classNames={{ + base: clsx(editEnabled && "cursor-pointer"), + }} + {...avatarProps} + /> + )} + + + )} + + ) +} + +export default EditableMemberAvatar \ No newline at end of file diff --git a/src/app/(site)/components/providers/user-data/useUserDataState.tsx b/src/app/(site)/components/providers/user-data/useUserDataState.tsx index eb62d34..f6b1d2e 100644 --- a/src/app/(site)/components/providers/user-data/useUserDataState.tsx +++ b/src/app/(site)/components/providers/user-data/useUserDataState.tsx @@ -3,31 +3,45 @@ import useSWR from "swr"; import {fetcher} from "@/utils/client/client-utils"; import {Member} from "@prisma/client"; import {DataContextState, OptimisticWorker} from "@/utils/client/client-data-utils"; -import {useCallback} from "react"; +import {useCallback, useEffect} from "react"; +import useCloudFrontUrl from "@/app/(site)/hooks/s3/useCloudFrontUrl"; const useUserDataState = (): DataContextState => { const {data: session} = useSession(); - const {data: userData, isLoading: userDataLoading, mutate: mutateUserData} = useSWR(session && "/api/me", fetcher) - + const { + data: userData, + isLoading: userDataLoading, + mutate: mutateUserData + } = useSWR(session && "/api/me", fetcher) + const avatarUrl = useCloudFrontUrl(userData?.image && `avatars/${userData.image}`) + const editOptimisticUser = useCallback>(async (work, optimisticUser) => { if (!userData) return - + const doWork = async (): Promise => { - const user = await doWork() + const user = await work() if (!user) return userData return user } - + await mutateUserData(doWork, { optimisticData: optimisticUser, rollbackOnError: true }) }, [mutateUserData, userData]) - + + useEffect(() => { + if (!userData) + return + + + }) + return { data: userData, + avatar: avatarUrl, mutateData: mutateUserData, loading: userDataLoading, optimisticData: { diff --git a/src/app/(site)/components/sidebar/Sidebar.tsx b/src/app/(site)/components/sidebar/Sidebar.tsx index dfb49dc..8e45f4a 100644 --- a/src/app/(site)/components/sidebar/Sidebar.tsx +++ b/src/app/(site)/components/sidebar/Sidebar.tsx @@ -26,7 +26,7 @@ const Sidebar: FC = ({children, headerText}) => { + +const UploadS3File = () => { + const mutator = async (url: string, {arg}: UploadS3FileArgs) => { + const {file, key, isPublic, path, oldKey} = arg.body + const formData = new FormData(); + formData.append("file", file) + formData.append("key", key ?? "") + formData.append("path", path ?? "") + formData.append("isPublic", String(isPublic) ?? "") + formData.append("oldKey", oldKey ?? "") + + return axios.post<{ key: string }>(url, formData, { + headers: { + "Content-Type": "multipart/form-data" + } + }); + } + + return useSWRMutation('/api/s3', mutator) +} + +export default UploadS3File \ No newline at end of file diff --git a/src/app/(site)/hooks/s3/useCloudFrontUrl.tsx b/src/app/(site)/hooks/s3/useCloudFrontUrl.tsx new file mode 100644 index 0000000..682f5c2 --- /dev/null +++ b/src/app/(site)/hooks/s3/useCloudFrontUrl.tsx @@ -0,0 +1,13 @@ +import {fetcher} from "@/utils/client/client-utils"; +import useSWR from "swr"; + +const useCloudFrontUrl = (key?: string | null) => { + return useSWR(key && `/api/s3?key=${key}`, fetcher<{ url: string } | null>, { + refreshInterval: 0, + revalidateIfStale: false, + revalidateOnFocus: false, + revalidateOnReconnect: false, + }) +} + +export default useCloudFrontUrl \ No newline at end of file diff --git a/src/app/(site)/hooks/user/UpdateSelfMember.ts b/src/app/(site)/hooks/user/UpdateSelfMember.ts new file mode 100644 index 0000000..50d85a1 --- /dev/null +++ b/src/app/(site)/hooks/user/UpdateSelfMember.ts @@ -0,0 +1,10 @@ +import useSWRMutation from "swr/mutation"; +import {patchMutator} from "@/utils/client/client-utils"; +import {PatchSelfDto} from "@/app/api/me/self-user.dto"; +import {Member} from "@prisma/client"; + +const UpdateSelfMember = () => { + return useSWRMutation(`/api/me`, patchMutator()) +} + +export default UpdateSelfMember \ No newline at end of file diff --git a/src/app/api/me/route.ts b/src/app/api/me/route.ts index 09e64cc..73d5545 100644 --- a/src/app/api/me/route.ts +++ b/src/app/api/me/route.ts @@ -5,4 +5,14 @@ export const GET = async () => { return authenticated((session) => selfUserService.getInfo(session) ) +} + +export const PATCH = async (req: Request) => { + return authenticated(async (session) => + selfUserService.update(session, await req.json()), { + prismaErrors: { + recordNotFoundMessage: "Couldn't find your information!" + } + } + ) } \ No newline at end of file diff --git a/src/app/api/me/self-user.dto.ts b/src/app/api/me/self-user.dto.ts new file mode 100644 index 0000000..dab8638 --- /dev/null +++ b/src/app/api/me/self-user.dto.ts @@ -0,0 +1,16 @@ +import {z} from "zod"; +import {USERNAME_REGEX} from "@/app/api/auth/register/register.dto"; + +export type PatchSelfDto = Partial<{ + username?: string, + firstName?: string, + lastName?: string, + image?: string, +}> + +export const PatchSelfDtoSchema = z.object({ + username: z.string().regex(USERNAME_REGEX, "Invalid username!"), + firstName: z.string().min(1).max(60), + lastName: z.string().min(1).max(60), + image: z.string() +}).partial() \ No newline at end of file diff --git a/src/app/api/me/self-user.service.ts b/src/app/api/me/self-user.service.ts index 97beb0c..5e9135d 100644 --- a/src/app/api/me/self-user.service.ts +++ b/src/app/api/me/self-user.service.ts @@ -1,8 +1,9 @@ import {NextResponse} from "next/server"; import {Member} from "@prisma/client"; import {Session} from "next-auth"; -import {buildResponse} from "@/app/api/utils/types"; +import {buildFailedValidationResponse, buildResponse} from "@/app/api/utils/types"; import prisma from "@/libs/prisma"; +import {PatchSelfDto, PatchSelfDtoSchema} from "@/app/api/me/self-user.dto"; class SelfUserService { @@ -30,6 +31,29 @@ class SelfUserService { data: member }) } + + public async update(session: Session, dto: PatchSelfDto): Promise> { + if (!session.user) + return buildResponse({ + status: 403, + message: "Unauthenticated!" + }) + + const dtoValidated = PatchSelfDtoSchema.safeParse(dto) + if (!dtoValidated.success) + return buildFailedValidationResponse(dtoValidated.error) + + const updatedUser = await prisma.member.update({ + where: { + email: session.user.email + }, + data: dto + }) + + return buildResponse({ + data: updatedUser + }) + } } const selfUserService = new SelfUserService() diff --git a/src/app/api/s3/route.ts b/src/app/api/s3/route.ts new file mode 100644 index 0000000..9cbff2c --- /dev/null +++ b/src/app/api/s3/route.ts @@ -0,0 +1,13 @@ +import {authenticated} from "@/app/api/utils/api-utils"; +import s3Service from "@/app/api/s3/s3.service"; + +export const POST = (req: Request) => + authenticated(async () => + s3Service.uploadFile(await req.formData()) + ) + +export const GET = (req: Request) => + authenticated(async () => s3Service.fetchFileUrl(new URL(req.url).searchParams)) + +export const DELETE = (req: Request) => + authenticated(async () => s3Service.deleteFile(new URL(req.url).searchParams)) \ No newline at end of file diff --git a/src/app/api/s3/s3.dto.ts b/src/app/api/s3/s3.dto.ts new file mode 100644 index 0000000..459fb11 --- /dev/null +++ b/src/app/api/s3/s3.dto.ts @@ -0,0 +1,20 @@ +import {z} from "zod"; +import {zfd} from "zod-form-data"; + +export type S3FileFetchFormDto = { + key: string, +} + +export const S3FileFetchFormSchema = zfd.formData({ + key: z.string({ + required_error: "The \"key\" query is required!" + }) +}) + +export const S3PostFormDataSchema = zfd.formData({ + key: z.string().optional(), + path: z.string().regex(/.+\/$/, "The path must end with a forward slash!").optional(), + file: z.custom(), + isPublic: z.string().optional(), + oldKey: z.string().optional() +}) \ No newline at end of file diff --git a/src/app/api/s3/s3.service.ts b/src/app/api/s3/s3.service.ts new file mode 100644 index 0000000..ead6dda --- /dev/null +++ b/src/app/api/s3/s3.service.ts @@ -0,0 +1,110 @@ +import {S3FileFetchFormSchema, S3PostFormDataSchema} from "@/app/api/s3/s3.dto"; +import {buildFailedValidationResponse, buildResponse} from "@/app/api/utils/types"; +import {DeleteObjectCommand, PutObjectCommand} from "@aws-sdk/client-s3"; +import {NextResponse} from "next/server"; +import S3 from "@/libs/S3"; +import {CreateInvalidationCommand} from "@aws-sdk/client-cloudfront"; +import CloudFront from "@/libs/cloudfront"; +import {generateRandomString} from "@/app/api/utils/node-utils"; + +class S3Service { + + public async uploadFile(formData: FormData): Promise> { + const formValidated = S3PostFormDataSchema.safeParse(formData) + if (!formValidated.success) + return buildFailedValidationResponse(formValidated.error) + + const {key, file, isPublic, path, oldKey} = formValidated.data + const fileBuffer = Buffer.from(await file.arrayBuffer()) + + const validKey = key && key.length ? (path && path.length ? `${path}${key}` : key) : (path && path.length ? `${path}${generateRandomString()}` : generateRandomString()) + const command = new PutObjectCommand({ + Bucket: process.env.BUCKET_NAME, + Body: fileBuffer, + Key: `${process.env.NODE_ENV === "development" ? "dev" : "prod"}/${validKey}`, + ContentType: file.type, + Tagging: isPublic === "true" ? "public=true" : undefined + }) + + const res = await S3.send(command); + if (res.$metadata.httpStatusCode === 200 && oldKey && oldKey.length) { + // Delete the old version (if any) + const validOldKey = path && path.length ? `${path}${oldKey}` : oldKey + + // Delete from S3 bucket + await this.deleteFileFromKey(validOldKey) + } + + return buildResponse({ + data: {key: validKey} + }) + } + + public async fetchFileUrl(searchParams: URLSearchParams): Promise> { + const formValidated = S3FileFetchFormSchema.safeParse(searchParams) + if (!formValidated.success) + return buildFailedValidationResponse(formValidated.error) + + const {key} = formValidated.data + const url = `${process.env.CLOUDFRONT_URL}/${process.env.NODE_ENV === "development" ? "dev" : "prod"}/${key}` + // const privateKey = await fs.readFile(process.cwd() + process.env.CLOUDFRONT_PRIVATE_KEY_PATH, "utf-8") + // const signedUrl = getSignedUrl({ + // url, + // keyPairId: process.env.CLOUDFRONT_PUBLIC_KEY_ID ?? "", + // privateKey: privateKey, + // dateLessThan: new Date(Date.now() + (1000 * 60 * 60 * 24)).toString() + // }) + + return buildResponse({ + data: {url} + }) + } + + public async deleteFile(searchParams: URLSearchParams): Promise { + const formValidated = S3FileFetchFormSchema.safeParse(searchParams) + if (!formValidated.success) + return buildFailedValidationResponse(formValidated.error) + + const {key} = formValidated.data + return this.deleteFileFromKey(key) + } + + private async deleteFileFromKey(key: string): Promise { + const command = new DeleteObjectCommand({ + Bucket: process.env.BUCKET_NAME, + Key: `${process.env.NODE_ENV === "development" ? "dev" : "prod"}/${key}` + }) + + const res = await S3.send(command) + const statusCode = res.$metadata.httpStatusCode + + if (statusCode === 204) + await this.invalidateCloudFrontCache(key) + + return buildResponse({ + status: statusCode === 204 ? 200 : statusCode, + message: statusCode !== 204 ? `Couldn't find any objects with the key: ${key}` : undefined, + data: statusCode !== 204 ? {key} : undefined + }) + } + + private async invalidateCloudFrontCache(key: string) { + const invalidationCommand = new CreateInvalidationCommand({ + DistributionId: process.env.CLOUDFRONT_DISTRIBUTION_ID ?? "", + InvalidationBatch: { + CallerReference: key, + Paths: { + Quantity: 1, + Items: [ + `/${process.env.NODE_ENV === "development" ? "dev" : "prod"}/${key}` + ] + } + } + }) + + return CloudFront.send(invalidationCommand) + } +} + +const s3Service = new S3Service() +export default s3Service \ No newline at end of file diff --git a/src/app/api/utils/MediaType.ts b/src/app/api/utils/MediaType.ts new file mode 100644 index 0000000..6a354a1 --- /dev/null +++ b/src/app/api/utils/MediaType.ts @@ -0,0 +1,14 @@ +enum MediaType { + JSON = "application/json", + IMAGE = "image/*", + AUDIO = "audio.*", + AAC = "audio/aac", + MP3 = "audio/mp3", + AVIF = "image/avif", + BMP = "image/bmp", + JPEG = "image/jpeg", + PNG = "image/png", + WEBP = "image/webp" +} + +export default MediaType \ No newline at end of file diff --git a/src/app/api/utils/node-utils.ts b/src/app/api/utils/node-utils.ts new file mode 100644 index 0000000..44b119a --- /dev/null +++ b/src/app/api/utils/node-utils.ts @@ -0,0 +1,4 @@ +import crypto from "crypto" + +export const generateRandomString = (bytes: number = 32) => + crypto.randomBytes(bytes).toString("hex") \ No newline at end of file diff --git a/src/libs/S3.ts b/src/libs/S3.ts new file mode 100644 index 0000000..c2b1493 --- /dev/null +++ b/src/libs/S3.ts @@ -0,0 +1,11 @@ +// To be used on the SERVER ONLY + +import {S3Client} from "@aws-sdk/client-s3"; +import {fromEnv} from "@aws-sdk/credential-providers"; + +const S3 = new S3Client({ + region: process.env.AWS_REGION, + credentials: fromEnv(), +}) + +export default S3 \ No newline at end of file diff --git a/src/libs/cloudfront.ts b/src/libs/cloudfront.ts new file mode 100644 index 0000000..bbe7c7f --- /dev/null +++ b/src/libs/cloudfront.ts @@ -0,0 +1,11 @@ +// To be used on the SERVER ONLY + +import {CloudFrontClient} from "@aws-sdk/client-cloudfront"; +import {fromEnv} from "@aws-sdk/credential-providers"; + +const CloudFront = new CloudFrontClient({ + region: process.env.AWS_REGION, + credentials: fromEnv() +}) + +export default CloudFront \ No newline at end of file diff --git a/src/utils/client/client-data-utils.tsx b/src/utils/client/client-data-utils.tsx index ecea616..a39cfdb 100644 --- a/src/utils/client/client-data-utils.tsx +++ b/src/utils/client/client-data-utils.tsx @@ -21,7 +21,8 @@ export type DataContextState = { addOptimisticData?: OptimisticWorker, removeOptimisticData?: OptimisticWorker, editOptimisticData?: OptimisticWorker - } + }, + [T: string]: any } export type OptimisticWorker = (work: () => Promise, data: T) => Promise