From e9aed4861d4dd608cc53d217425faa0cc4b85162 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sat, 12 Oct 2024 15:12:03 +0900 Subject: [PATCH 01/15] Update globals.css: Add scrollbar-hide class --- src/app/globals.css | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/globals.css b/src/app/globals.css index b5c61c9..ffce0cd 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,3 +1,16 @@ @tailwind base; @tailwind components; @tailwind utilities; + +@layer utilities { + /* Safari and Chrome */ + .scrollbar-hide::-webkit-scrollbar { + display: none; + } + .scrollbar-hide { + /* IE and Edge */ + -ms-overflow-style: none; + /* Firefox */ + scrollbar-width: none; + } +} From 3880a38f359e4e17ae8da111c48a8cd178c37c56 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sat, 12 Oct 2024 15:12:51 +0900 Subject: [PATCH 02/15] Update layout.tsx: Add scrollbar-hide class to html tag --- src/app/layout.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6d8a1bf..e6fd927 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -28,7 +28,10 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - + {children} From 16e75b21dfde84479ea9187eacfc1e6871ccf179 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sat, 12 Oct 2024 17:19:56 +0900 Subject: [PATCH 03/15] Added image-file.interface.ts --- src/interfaces/image-file.interface.ts | 4 ++++ src/interfaces/index.ts | 1 + 2 files changed, 5 insertions(+) create mode 100644 src/interfaces/image-file.interface.ts diff --git a/src/interfaces/image-file.interface.ts b/src/interfaces/image-file.interface.ts new file mode 100644 index 0000000..552dfd0 --- /dev/null +++ b/src/interfaces/image-file.interface.ts @@ -0,0 +1,4 @@ +export interface ImageFile { + file: File; + preview: string; +} diff --git a/src/interfaces/index.ts b/src/interfaces/index.ts index d54c86f..f7fa0ff 100644 --- a/src/interfaces/index.ts +++ b/src/interfaces/index.ts @@ -6,3 +6,4 @@ export * from './frame.interface'; export * from './route.interface'; export * from './previous-page.interface'; export * from './policy.interface'; +export * from './image-file.interface'; From ecc5ab62b296ac5cb00c0c49c04f452e237219cb Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sun, 13 Oct 2024 23:16:58 +0900 Subject: [PATCH 04/15] Update layout.tsx: Change min-hegiht class --- src/app/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index e6fd927..16116f6 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -32,7 +32,7 @@ export default function RootLayout({ lang="kr" className={`${cafe24.variable} ${sfpro.variable} scrollbar-hide`} > - + {children} From 7bb795c50a9d99b8811ebc3f014248a809efd148 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sun, 13 Oct 2024 23:22:26 +0900 Subject: [PATCH 05/15] Add upload/_components/ImageUpload.tsx: Add component for image upload --- src/app/upload/_components/ImageUpload.tsx | 162 +++++++++++++++++++++ src/styles/icons/add.svg | 3 + src/styles/icons/delete.svg | 3 + 3 files changed, 168 insertions(+) create mode 100644 src/app/upload/_components/ImageUpload.tsx create mode 100644 src/styles/icons/add.svg create mode 100644 src/styles/icons/delete.svg diff --git a/src/app/upload/_components/ImageUpload.tsx b/src/app/upload/_components/ImageUpload.tsx new file mode 100644 index 0000000..3e9f0c1 --- /dev/null +++ b/src/app/upload/_components/ImageUpload.tsx @@ -0,0 +1,162 @@ +'use client'; + +import Image from 'next/image'; +import React, { ChangeEventHandler, Dispatch, useRef, useState } from 'react'; +import useModal from '@/app/hooks/useModal'; +import { CompoundModal } from '@/components/Modal/ModalMain'; +import { + IMAGE_UPLOAD_CONTENT, + IMAGE_UPLOAD_TITLE, + MAX_IMAGE_NUMBER, + MIN_IMAGE_NUMBER, +} from '@/constants'; +import { ImageFile } from '@/interfaces'; +import SVGAdd from '@/styles/icons/add.svg'; +import SVGDelete from '@/styles/icons/delete.svg'; + +interface ImageUploadProps { + images: ImageFile[]; + setImages: Dispatch>; + min?: number; + max?: number; +} + +function ImageUpload({ images, setImages, min, max }: ImageUploadProps) { + const { isOpen, handleOpenModal, handleCloseModal } = useModal(); + + const [selectedImageIndex, setSelectedImageIndex] = useState( + null, + ); + const fileInputRef = useRef(null); + + const handleUpdateImages: ChangeEventHandler = (event) => { + const { files } = event.target; + if (files) { + const newImages = Array.from(files).map((file) => ({ + file, + preview: URL.createObjectURL(file), + })); + + const updatedImages = [...images, ...newImages].slice(0, max); + setImages(updatedImages); + } + }; + + const handleDeleteImage = (index: number) => { + setImages((prevImages) => prevImages.filter((_, i) => i !== index)); + setSelectedImageIndex(null); + }; + + const handleImageClick = (index: number) => { + setSelectedImageIndex(selectedImageIndex === index ? null : index); + }; + + const handleAddClick = () => { + fileInputRef.current?.click(); + }; + + return ( + <> +
+
+ {images.length !== 0 && ( + + )} + + {images.length === 0 ? ( + // eslint-disable-next-line jsx-a11y/label-has-associated-control + + ) : ( +
+
+ {images.map((image, index) => ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions +
handleImageClick(index)} + > + {`Uploaded + {selectedImageIndex === index && ( + + )} +
+ ))} +
+
+ )} +
+
+ {isOpen && ( + { + handleDeleteImage(selectedImageIndex as number); + handleCloseModal(); + }} + cancelFn={handleCloseModal} + modalLocation="items-end" + > + {IMAGE_UPLOAD_TITLE} + {IMAGE_UPLOAD_CONTENT} + + )} + + ); +} + +ImageUpload.defaultProps = { + min: MIN_IMAGE_NUMBER, + max: MAX_IMAGE_NUMBER, +}; + +export default ImageUpload; diff --git a/src/styles/icons/add.svg b/src/styles/icons/add.svg new file mode 100644 index 0000000..ef892a0 --- /dev/null +++ b/src/styles/icons/add.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/styles/icons/delete.svg b/src/styles/icons/delete.svg new file mode 100644 index 0000000..7da2677 --- /dev/null +++ b/src/styles/icons/delete.svg @@ -0,0 +1,3 @@ + + + From fa55fe38e0b3f1cf7535f555dbee031072e7b589 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sun, 13 Oct 2024 23:32:24 +0900 Subject: [PATCH 06/15] Update modalText.ts: add image upload modal text --- src/constants/modalText.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/constants/modalText.ts b/src/constants/modalText.ts index bcc96e8..d1dd9bb 100644 --- a/src/constants/modalText.ts +++ b/src/constants/modalText.ts @@ -2,8 +2,8 @@ export const PRIVACY_POLICY_TITLE: string = '개인정보 수집 및 이용 동 export const PRIVACY_POLICY_CONTENT: string = '푸앙이 사진관은 개인 정보 처리 방침에 따라\n개인정보를 처리하고 있습니다. 원활한 서비스\n이용을 위해 위 내용에 동의해주세요'; -export const IMAGE_UPLOAD_TITLE: string = '선택된 이미지가 모두 삭제됩니다'; -export const IMAGE_UPLOAD_CONTENT: string = `이미지를 재선택 하시려면\n확인을 눌러주세요`; +export const IMAGE_UPLOAD_TITLE: string = '선택된 이미지가 삭제됩니다'; +export const IMAGE_UPLOAD_CONTENT: string = `이미지를 삭제하시려면 \n확인을 눌러주세요`; export const ENTER_EMAIL_TITLE: string = '이메일이 없으면\n완성된 프로필에 대한\n알림을 받으실 수 없습니다.'; From 2645426484778d1ec2ee5f303b322325459cade8 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sun, 13 Oct 2024 23:33:30 +0900 Subject: [PATCH 07/15] Update upload/page.tsx --- public/upload-puang.png | Bin 0 -> 26914 bytes src/app/upload/page.tsx | 45 +++++++++++++++++++++++++++++++++++++--- src/constants/image.ts | 5 +++++ src/constants/index.ts | 1 + 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 public/upload-puang.png create mode 100644 src/constants/image.ts diff --git a/public/upload-puang.png b/public/upload-puang.png new file mode 100644 index 0000000000000000000000000000000000000000..c3724658d9bf5a78ec13115fc6d1a3888145c247 GIT binary patch literal 26914 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 literal 0 HcmV?d00001 diff --git a/src/app/upload/page.tsx b/src/app/upload/page.tsx index be07777..48961dd 100644 --- a/src/app/upload/page.tsx +++ b/src/app/upload/page.tsx @@ -1,10 +1,49 @@ +'use client'; + +import Image from 'next/image'; +import { useState } from 'react'; +import ImageUpload from '@/app/upload/_components/ImageUpload'; import MyButton from '@/components/MyButton'; +import PreviousPage from '@/components/PreviousPage'; +import { IMAGE_WARNING, MAX_IMAGE_NUMBER, MIN_IMAGE_NUMBER } from '@/constants'; +import { ImageFile } from '@/interfaces'; export default function PhotoUploadView() { + const [images, setImages] = useState([]); + return ( -
-

This is Image Upload Page

- +
+
+ +
+
+
+ 푸앙이 프로필 +
+
+

+ {'사진은\n'} + 최소 8장 이상 + {'\n등록해주세요!'} +

+
(최대 16장)
+
+
+ +

+ {IMAGE_WARNING} +

+ = 8} />
); } diff --git a/src/constants/image.ts b/src/constants/image.ts new file mode 100644 index 0000000..a0796c2 --- /dev/null +++ b/src/constants/image.ts @@ -0,0 +1,5 @@ +export const IMAGE_WARNING = + '* 가이드에 부합하지 않는 사진을 업로드 할 경우,\n 나와 닮지 않은 AI이미지가 생성될 수 있어요.'; + +export const MIN_IMAGE_NUMBER = 8; +export const MAX_IMAGE_NUMBER = 16; diff --git a/src/constants/index.ts b/src/constants/index.ts index f5114dd..fb62d7b 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -4,3 +4,4 @@ export * from './errorMessages'; export * from './modalText'; export * from './guideImage'; export * from './privatePolicyContent'; +export * from './image'; From ea58ba4c1ac4da0a49d5b358424634fb12d89781 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sun, 13 Oct 2024 23:56:04 +0900 Subject: [PATCH 08/15] Update project: Install aws-sdk --- package-lock.json | 3783 +++++++++++++++++++++++++++++++-------------- package.json | 1 + 2 files changed, 2666 insertions(+), 1118 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9ed48cc..c183941 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "puangfilm", "version": "0.1.0", "dependencies": { + "@aws-sdk/client-s3": "^3.670.0", "jotai": "^2.9.3", "next": "14.2.10", "react": "^18", @@ -68,673 +69,1089 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/crc32": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", + "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.25.4", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/crc32c": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", + "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", + "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", + "dependencies": { + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/core": { - "version": "7.25.2", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@babel/generator": { - "version": "7.25.6", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", "dependencies": { - "@babel/types": "^7.25.6", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", "dependencies": { - "@babel/types": "^7.24.7" + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", - "semver": "^6.3.1" + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "dev": true, - "license": "MIT", + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.670.0.tgz", + "integrity": "sha512-8Pwu1K+PgbYpXDaGKNy5hEbRH5FXHlfXJOhtV4oEDroL7ngix3ZUVWN9oIVVSDK02y1oQS1jCSEGUiUiauzb0g==", + "dependencies": { + "@aws-crypto/sha1-browser": "5.2.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.670.0", + "@aws-sdk/client-sts": "3.670.0", + "@aws-sdk/core": "3.667.0", + "@aws-sdk/credential-provider-node": "3.670.0", + "@aws-sdk/middleware-bucket-endpoint": "3.667.0", + "@aws-sdk/middleware-expect-continue": "3.667.0", + "@aws-sdk/middleware-flexible-checksums": "3.669.0", + "@aws-sdk/middleware-host-header": "3.667.0", + "@aws-sdk/middleware-location-constraint": "3.667.0", + "@aws-sdk/middleware-logger": "3.667.0", + "@aws-sdk/middleware-recursion-detection": "3.667.0", + "@aws-sdk/middleware-sdk-s3": "3.669.0", + "@aws-sdk/middleware-ssec": "3.667.0", + "@aws-sdk/middleware-user-agent": "3.669.0", + "@aws-sdk/region-config-resolver": "3.667.0", + "@aws-sdk/signature-v4-multi-region": "3.669.0", + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-endpoints": "3.667.0", + "@aws-sdk/util-user-agent-browser": "3.670.0", + "@aws-sdk/util-user-agent-node": "3.669.0", + "@aws-sdk/xml-builder": "3.662.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/eventstream-serde-browser": "^3.0.10", + "@smithy/eventstream-serde-config-resolver": "^3.0.7", + "@smithy/eventstream-serde-node": "^3.0.9", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-blob-browser": "^3.1.6", + "@smithy/hash-node": "^3.0.7", + "@smithy/hash-stream-node": "^3.1.6", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/md5-js": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-stream": "^3.1.9", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.1.6", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.670.0.tgz", + "integrity": "sha512-J+oz6uSsDvk4pimMDnKJb1wsV216zTrejvMTIL4RhUD1QPIVVOpteTdUShcjZUIZnkcJZGI+cym/SFK0kuzTpg==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.667.0", + "@aws-sdk/middleware-host-header": "3.667.0", + "@aws-sdk/middleware-logger": "3.667.0", + "@aws-sdk/middleware-recursion-detection": "3.667.0", + "@aws-sdk/middleware-user-agent": "3.669.0", + "@aws-sdk/region-config-resolver": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-endpoints": "3.667.0", + "@aws-sdk/util-user-agent-browser": "3.670.0", + "@aws-sdk/util-user-agent-node": "3.669.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.670.0.tgz", + "integrity": "sha512-4qDK2L36Q4J1lfemaHHd9ZxqKRaos3STp44qPAHf/8QyX6Uk5sXgZNVO2yWM7SIEtVKwwBh/fZAsdBkGPBfZcw==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.667.0", + "@aws-sdk/credential-provider-node": "3.670.0", + "@aws-sdk/middleware-host-header": "3.667.0", + "@aws-sdk/middleware-logger": "3.667.0", + "@aws-sdk/middleware-recursion-detection": "3.667.0", + "@aws-sdk/middleware-user-agent": "3.669.0", + "@aws-sdk/region-config-resolver": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-endpoints": "3.667.0", + "@aws-sdk/util-user-agent-browser": "3.670.0", + "@aws-sdk/util-user-agent-node": "3.669.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.670.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.670.0.tgz", + "integrity": "sha512-bExrNo8ZVWorS3cjMZKQnA2HWqDmAzcZoSN/cPVoPFNkHwdl1lzPxvcLzmhpIr48JHgKfybBjrbluDZfIYeEog==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.670.0", + "@aws-sdk/core": "3.667.0", + "@aws-sdk/credential-provider-node": "3.670.0", + "@aws-sdk/middleware-host-header": "3.667.0", + "@aws-sdk/middleware-logger": "3.667.0", + "@aws-sdk/middleware-recursion-detection": "3.667.0", + "@aws-sdk/middleware-user-agent": "3.669.0", + "@aws-sdk/region-config-resolver": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-endpoints": "3.667.0", + "@aws-sdk/util-user-agent-browser": "3.670.0", + "@aws-sdk/util-user-agent-node": "3.669.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/core": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.667.0.tgz", + "integrity": "sha512-pMcDVI7Tmdsc8R3sDv0Omj/4iRParGY+uJtAfF669WnZfDfaBQaix2Mq7+Mu08vdjqO9K3gicFvjk9S1VLmOKA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@aws-sdk/types": "3.667.0", + "@smithy/core": "^2.4.8", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/property-provider": "^3.1.7", + "@smithy/protocol-http": "^4.1.4", + "@smithy/signature-v4": "^4.2.0", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-middleware": "^3.0.7", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.667.0.tgz", + "integrity": "sha512-zZbrkkaPc54WXm+QAnpuv0LPNfsts0HPPd+oCECGs7IQRaFsGj187cwvPg9RMWDFZqpm64MdBDoA8OQHsqzYCw==", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.667.0.tgz", + "integrity": "sha512-sjtybFfERZWiqTY7fswBxKQLvUkiCucOWyqh3IaPo/4nE1PXRnaZCVG0+kRBPrYIxWqiVwytvZzMJy8sVZcG0A==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-stream": "^3.1.9", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.670.0.tgz", + "integrity": "sha512-TB1gacUj75leaTt2JsCTzygDSIk4ksv9uZoR7VenlgFPRktyOeT+fapwIVBeB2Qg7b9uxAY2K5XkKstDZyBEEw==", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@aws-sdk/core": "3.667.0", + "@aws-sdk/credential-provider-env": "3.667.0", + "@aws-sdk/credential-provider-http": "3.667.0", + "@aws-sdk/credential-provider-process": "3.667.0", + "@aws-sdk/credential-provider-sso": "3.670.0", + "@aws-sdk/credential-provider-web-identity": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/credential-provider-imds": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@aws-sdk/client-sts": "^3.670.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.670.0.tgz", + "integrity": "sha512-zwNrRYzubk4CaZ7zebeDhxsm8QtNWkbGKopZPOaZSnd5uqUGRcmx4ccVRngWUK68XDP44aEUWC8iU5Pc7btpHQ==", "dependencies": { - "@babel/types": "^7.24.7" + "@aws-sdk/credential-provider-env": "3.667.0", + "@aws-sdk/credential-provider-http": "3.667.0", + "@aws-sdk/credential-provider-ini": "3.670.0", + "@aws-sdk/credential-provider-process": "3.667.0", + "@aws-sdk/credential-provider-sso": "3.670.0", + "@aws-sdk/credential-provider-web-identity": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/credential-provider-imds": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.667.0.tgz", + "integrity": "sha512-HZHnvop32fKgsNHkdhVaul7UzQ25sEc0j9yqA4bjhtbk0ECl42kj3f1pJ+ZU/YD9ut8lMJs/vVqiOdNThVdeBw==", + "dependencies": { + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.670.0.tgz", + "integrity": "sha512-5PkA8BOy4q57Vhe9AESoHKZ7vjRbElNPKjXA4qC01xY+DitClRFz4O3B9sMzFp0PHlz9nDVSXXKgq0yzF/nAag==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@aws-sdk/client-sso": "3.670.0", + "@aws-sdk/core": "3.667.0", + "@aws-sdk/token-providers": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.667.0.tgz", + "integrity": "sha512-t8CFlZMD/1p/8Cli3rvRiTJpjr/8BO64gw166AHgFZYSN2h95L2l1tcW0jpsc3PprA32nLg1iQVKYt4WGM4ugw==", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@aws-sdk/client-sts": "^3.667.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.667.0.tgz", + "integrity": "sha512-XGz4jMAkDoTyFdtLz7ZF+C05IAhCTC1PllpvTBaj821z/L0ilhbqVhrT/f2Buw8Id/K5A390csGXgusXyrFFjA==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "@smithy/util-config-provider": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.667.0.tgz", + "integrity": "sha512-0TiSL9S5DSG95NHGIz6qTMuV7GDKVn8tvvGSrSSZu/wXO3JaYSH0AElVpYfc4PtPRqVpEyNA7nnc7W56mMCLWQ==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@aws-sdk/types": "3.667.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.669.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.669.0.tgz", + "integrity": "sha512-01UQLoUzVwWMf+b+AEuwJ2lluBD+Cp8AcbyEHqvEaPdjGKHIS4BCvnY70mZYnAfRtL8R2h9tt7iI61oWU3Gjkg==", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@aws-crypto/crc32c": "5.2.0", + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.667.0.tgz", + "integrity": "sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w==", + "dependencies": { + "@aws-sdk/types": "3.667.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.667.0.tgz", + "integrity": "sha512-ob85H3HhT3/u5O+x0o557xGZ78vSNeSSwMaSitxdsfs2hOuoUl1uk+OeLpi1hkuJnL41FPpokV7TVII2XrFfmg==", + "dependencies": { + "@aws-sdk/types": "3.667.0", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.667.0.tgz", + "integrity": "sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA==", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@aws-sdk/types": "3.667.0", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helpers": { - "version": "7.25.6", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.667.0.tgz", + "integrity": "sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ==", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" + "@aws-sdk/types": "3.667.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.669.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.669.0.tgz", + "integrity": "sha512-b2QUQ7DcIcVCUFhvmFEDI90BemvQhO0ntIajllLqQSy88PSNdLDCVx5mIzfxaaK/1tdY/UsEDRRm1kMQHJDQpg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/core": "^2.4.8", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/signature-v4": "^4.2.0", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-stream": "^3.1.9", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/parser": { - "version": "7.25.6", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.667.0.tgz", + "integrity": "sha512-1wuAUZIkmZIvOmGg5qNQU821CGFHhkuKioxXgNh0DpUxZ9+AeiV7yorJr+bqkb2KBFv1i1TnzGRecvKf/KvZIQ==", "dependencies": { - "@babel/types": "^7.25.6" - }, - "bin": { - "parser": "bin/babel-parser.js" + "@aws-sdk/types": "3.667.0", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.669.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.669.0.tgz", + "integrity": "sha512-K8ScPi45zjJrj5Y2gRqVsvKKQCQbvQBfYGcBw9ZOx9TTavH80bOCBjWg/GFnvs4f37tqVc1wMN2oGvcTF6HveQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@aws-sdk/core": "3.667.0", + "@aws-sdk/types": "3.667.0", + "@aws-sdk/util-endpoints": "3.667.0", + "@smithy/core": "^2.4.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.667.0.tgz", + "integrity": "sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@aws-sdk/types": "3.667.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/types": "^3.5.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.7", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.669.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.669.0.tgz", + "integrity": "sha512-TVwlWAxfBHnFjnfTBQWUhzVJzjwVhkq1+KR0JZV7JrfqeyBOdZjAaV9ie3VNY9HUouecq1fDuKaSwe4JiWQsHg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@aws-sdk/middleware-sdk-s3": "3.669.0", + "@aws-sdk/types": "3.667.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/signature-v4": "^4.2.0", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/token-providers": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.667.0.tgz", + "integrity": "sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@aws-sdk/types": "3.667.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@aws-sdk/client-sso-oidc": "^3.667.0" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/types": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.667.0.tgz", + "integrity": "sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz", + "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==", + "dependencies": { + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.667.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.667.0.tgz", + "integrity": "sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/types": "3.667.0", + "@smithy/types": "^3.5.0", + "@smithy/util-endpoints": "^2.1.3", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", + "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.670.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.670.0.tgz", + "integrity": "sha512-iRynWWazqEcCKwGMcQcywKTDLdLvqts1Yx474U64I9OKQXXwhOwhXbF5CAPSRta86lkVNAVYJa/0Bsv45pNn1A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@aws-sdk/types": "3.667.0", + "@smithy/types": "^3.5.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.669.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.669.0.tgz", + "integrity": "sha512-9jxCYrgggy2xd44ZASqI7AMiRVaSiFp+06Kg8BQSU0ijKpBJlwcsqIS8pDT/n6LxuOw2eV5ipvM2C0r1iKzrGA==", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.669.0", + "@aws-sdk/types": "3.667.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "license": "MIT", + "node_modules/@aws-sdk/xml-builder": { + "version": "3.662.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.662.0.tgz", + "integrity": "sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", + "node_modules/@babel/code-frame": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", + "node_modules/@babel/compat-data": { + "version": "7.25.4", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", + "node_modules/@babel/core": { + "version": "7.25.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", + "node_modules/@babel/generator": { + "version": "7.25.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/types": "^7.24.7" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.4", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -743,195 +1160,157 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.4", + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.4" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", + "node_modules/@babel/helpers": { + "version": "7.25.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", - "globals": "^11.1.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { + "node_modules/@babel/highlight": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", + "node_modules/@babel/parser": { + "version": "7.25.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/types": "^7.25.6" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "parser": "bin/babel-parser.js" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { @@ -941,44 +1320,41 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, "engines": { "node": ">=6.9.0" }, @@ -986,44 +1362,34 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1032,41 +1398,34 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.25.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1075,13 +1434,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1090,45 +1448,33 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { + "node_modules/@babel/plugin-syntax-jsx": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { @@ -1138,74 +1484,78 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1214,13 +1564,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1229,13 +1578,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1244,23 +1592,22 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-parameters": { + "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.24.7", "dev": true, "license": "MIT", @@ -1274,13 +1621,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-methods": { + "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.25.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.4" }, "engines": { "node": ">=6.9.0" @@ -1289,15 +1638,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-property-in-object": { + "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1306,7 +1654,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.24.7", "dev": true, "license": "MIT", @@ -1320,8 +1668,8 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.1", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { @@ -1334,12 +1682,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1348,30 +1697,33 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" @@ -1380,13 +1732,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { + "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1395,13 +1747,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "dev": true, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1410,11 +1761,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { + "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { @@ -1424,7 +1776,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { + "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.24.7", "dev": true, "license": "MIT", @@ -1438,13 +1790,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-spread": { + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1453,11 +1820,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { + "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { @@ -1467,12 +1835,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-template-literals": { + "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1481,12 +1850,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1495,16 +1865,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.2", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-compilation-targets": "^7.24.8", "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-typescript": "^7.24.7" + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1513,12 +1881,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { + "node_modules/@babel/plugin-transform-json-strings": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1527,12 +1896,40 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { @@ -1542,12 +1939,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { + "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { @@ -1557,109 +1954,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.25.4", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.4", - "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.0", "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.25.4", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", - "semver": "^6.3.1" + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1668,558 +1987,1755 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-react": { + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.4", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.25.6", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "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.11.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, + "node_modules/@next/env": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.10.tgz", + "integrity": "sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.10.tgz", + "integrity": "sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.10.tgz", + "integrity": "sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.10.tgz", + "integrity": "sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.10.tgz", + "integrity": "sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.10.tgz", + "integrity": "sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.10.tgz", + "integrity": "sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.10.tgz", + "integrity": "sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.10.tgz", + "integrity": "sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.10.tgz", + "integrity": "sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@smithy/abort-controller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.5.tgz", + "integrity": "sha512-DhNPnqTqPoG8aZ5dWkFOgsuY+i0GQ3CI6hMmvCoduNsnU9gUZWZBwGfDQsTTB7NvFPkom1df7jMIJWU90kuXXg==", + "dependencies": { + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/chunked-blob-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz", + "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz", + "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==", + "dependencies": { + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.9.tgz", + "integrity": "sha512-5d9oBf40qC7n2xUoHmntKLdqsyTMMo/r49+eqSIjJ73eDfEtljAxEhzIQ3bkgXJtR3xiv7YzMT/3FF3ORkjWdg==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.8", + "@smithy/types": "^3.5.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.7", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.4.8.tgz", + "integrity": "sha512-x4qWk7p/a4dcf7Vxb2MODIf4OIcqNbK182WxRvZ/3oKPrf/6Fdic5sSElhO1UtXpWKBazWfqg0ZEK9xN1DsuHA==", + "dependencies": { + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/preset-typescript": { - "version": "7.24.7", - "dev": true, - "license": "MIT", + "node_modules/@smithy/credential-provider-imds": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.4.tgz", + "integrity": "sha512-S9bb0EIokfYEuar4kEbLta+ivlKCWOCFsLZuilkNy9i0uEUEHSi47IFLPaxqqCl+0ftKmcOTHayY5nQhAuq7+w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.24.7" + "@smithy/node-config-provider": "^3.1.8", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=16.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "dev": true, - "license": "MIT" + "node_modules/@smithy/eventstream-codec": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.6.tgz", + "integrity": "sha512-SBiOYPBH+5wOyPS7lfI150ePfGLhnp/eTu5RnV9xvhGvRiKfnl6HzRK9wehBph+il8FxS9KTeadx7Rcmf1GLPQ==", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@smithy/types": "^3.5.0", + "@smithy/util-hex-encoding": "^3.0.0", + "tslib": "^2.6.2" + } }, - "node_modules/@babel/runtime": { - "version": "7.25.6", - "license": "MIT", + "node_modules/@smithy/eventstream-serde-browser": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.10.tgz", + "integrity": "sha512-1i9aMY6Pl/SmA6NjvidxnfBLHMPzhKu2BP148pEt5VwhMdmXn36PE2kWKGa9Hj8b0XGtCTRucpCncylevCtI7g==", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@smithy/eventstream-serde-universal": "^3.0.9", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/template": { - "version": "7.25.0", - "dev": true, - "license": "MIT", + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.7.tgz", + "integrity": "sha512-eVzhGQBPEqXXYHvIUku0jMTxd4gDvenRzUQPTmKVWdRvp9JUCKrbAXGQRYiGxUYq9+cqQckRm0wq3kTWnNtDhw==", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.25.6", - "dev": true, - "license": "MIT", + "node_modules/@smithy/eventstream-serde-node": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.9.tgz", + "integrity": "sha512-JE0Guqvt0xsmfQ5y1EI342/qtJqznBv8cJqkHZV10PwC8GWGU5KNgFbQnsVCcX+xF+qIqwwfRmeWoJCjuOLmng==", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@smithy/eventstream-serde-universal": "^3.0.9", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/types": { - "version": "7.25.6", - "dev": true, - "license": "MIT", + "node_modules/@smithy/eventstream-serde-universal": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.9.tgz", + "integrity": "sha512-bydfgSisfepCufw9kCEnWRxqxJFzX/o8ysXWv+W9F2FIyiaEwZ/D8bBKINbh4ONz3i05QJ1xE7A5OKYvgJsXaw==", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@smithy/eventstream-codec": "^3.1.6", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", + "node_modules/@smithy/fetch-http-handler": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.9.tgz", + "integrity": "sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A==", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@smithy/protocol-http": "^4.1.4", + "@smithy/querystring-builder": "^3.0.7", + "@smithy/types": "^3.5.0", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.6.tgz", + "integrity": "sha512-BKNcMIaeZ9lB67sgo88iCF4YB35KT8X2dNJ8DqrtZNTgN6tUDYBKThzfGtos/mnZkGkW91AYHisESHmSiYQmKw==", + "dependencies": { + "@smithy/chunked-blob-reader": "^3.0.0", + "@smithy/chunked-blob-reader-native": "^3.0.0", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-node": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.7.tgz", + "integrity": "sha512-SAGHN+QkrwcHFjfWzs/czX94ZEjPJ0CrWJS3M43WswDXVEuP4AVy9gJ3+AF6JQHZD13bojmuf/Ap/ItDeZ+Qfw==", + "dependencies": { + "@smithy/types": "^3.5.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=16.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "dev": true, - "license": "MIT", + "node_modules/@smithy/hash-stream-node": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.6.tgz", + "integrity": "sha512-sFSSt7cmCpFWZPfVx7k80Bgb1K2VJ27VmMxH8X+dDhp7Wv8IBgID4K2VK5ehMJROF8hQgcj4WywnkHIwX/xlwQ==", + "dependencies": { + "@smithy/types": "^3.5.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "dev": true, - "license": "MIT", + "node_modules/@smithy/invalid-dependency": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.7.tgz", + "integrity": "sha512-Bq00GsAhHeYSuZX8Kpu4sbI9agH2BNYnqUmmbTGWOhki9NVsWn2jFr896vvoTMH8KAjNX/ErC/8t5QHuEXG+IA==", "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" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", + "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", + "dependencies": { + "tslib": "^2.6.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", + "node_modules/@smithy/md5-js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.7.tgz", + "integrity": "sha512-+wco9IN9uOW4tNGkZIqTR6IXyfO7Z8A+IOq82QCRn/f/xcmt7H1fXwmQVbfDSvbeFwfNnhv7s+u0G9PzPG6o2w==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@smithy/types": "^3.5.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "dev": true, - "license": "MIT", + "node_modules/@smithy/middleware-content-length": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.9.tgz", + "integrity": "sha512-t97PidoGElF9hTtLCrof32wfWMqC5g2SEJNxaVH3NjlatuNGsdxXRYO/t+RPnxA15RpYiS0f+zG7FuE2DeGgjA==", "dependencies": { - "type-fest": "^0.20.2" + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", + "node_modules/@smithy/middleware-endpoint": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.4.tgz", + "integrity": "sha512-/ChcVHekAyzUbyPRI8CzPPLj6y8QRAfJngWcLMgsWxKVzw/RzBV69mSOzJYDD3pRwushA1+5tHtPF8fjmzBnrQ==", "dependencies": { - "brace-expansion": "^1.1.7" + "@smithy/middleware-serde": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "@smithy/util-middleware": "^3.0.7", + "tslib": "^2.6.2" }, "engines": { - "node": "*" + "node": ">=16.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "dev": true, - "license": "MIT", + "node_modules/@smithy/middleware-retry": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.23.tgz", + "integrity": "sha512-x9PbGXxkcXIpm6L26qRSCC+eaYcHwybRmqU8LO/WM2RRlW0g8lz6FIiKbKgGvHuoK3dLZRiQVSQJveiCzwnA5A==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/service-error-classification": "^3.0.7", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "dev": true, - "license": "Apache-2.0", + "node_modules/@smithy/middleware-retry/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.7.tgz", + "integrity": "sha512-VytaagsQqtH2OugzVTq4qvjkLNbWehHfGcGr0JLJmlDRrNCeZoWkWsSOw1nhS/4hyUUWF/TLGGml4X/OnEep5g==", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10.10.0" + "node": ">=16.0.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", + "node_modules/@smithy/middleware-stack": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.7.tgz", + "integrity": "sha512-EyTbMCdqS1DoeQsO4gI7z2Gzq1MoRFAeS8GkFYIwbedB7Lp5zlLHJdg+56tllIIG5Hnf9ZWX48YKSHlsKvugGA==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", + "node_modules/@smithy/node-config-provider": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", + "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", "dependencies": { - "brace-expansion": "^1.1.7" + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": "*" + "node": ">=16.0.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" + "node_modules/@smithy/node-http-handler": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.4.tgz", + "integrity": "sha512-49reY3+JgLMFNm7uTAKBWiKCA6XSvkNp9FqhVmusm2jpVnHORYFeFZ704LShtqWfjZW/nhX+7Iexyb6zQfXYIQ==", + "dependencies": { + "@smithy/abort-controller": "^3.1.5", + "@smithy/protocol-http": "^4.1.4", + "@smithy/querystring-builder": "^3.0.7", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "license": "ISC", + "node_modules/@smithy/property-provider": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.7.tgz", + "integrity": "sha512-QfzLi1GPMisY7bAM5hOUqBdGYnY5S2JAlr201pghksrQv139f8iiiMalXtjczIP5f6owxFn3MINLNUNvUkgtPw==", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "license": "MIT", + "node_modules/@smithy/protocol-http": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.4.tgz", + "integrity": "sha512-MlWK8eqj0JlpZBnWmjQLqmFp71Ug00P+m72/1xQB3YByXD4zZ+y9N4hYrR0EDmrUCZIkyATWHOXFgtavwGDTzQ==", + "dependencies": { + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.7.tgz", + "integrity": "sha512-65RXGZZ20rzqqxTsChdqSpbhA6tdt5IFNgG6o7e1lnPVLCe6TNWQq4rTl4N87hTDD8mV4IxJJnvyE7brbnRkQw==", + "dependencies": { + "@smithy/types": "^3.5.0", + "@smithy/util-uri-escape": "^3.0.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", + "node_modules/@smithy/querystring-parser": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.7.tgz", + "integrity": "sha512-Fouw4KJVWqqUVIu1gZW8BH2HakwLz6dvdrAhXeXfeymOBrZw+hcqaWs+cS1AZPVp4nlbeIujYrKA921ZW2WMPA==", "dependencies": { - "ansi-regex": "^6.0.1" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12" + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.7.tgz", + "integrity": "sha512-91PRkTfiBf9hxkIchhRKJfl1rsplRDyBnmyFca3y0Z3x/q0JJN480S83LBd8R6sBCkm2bBbqw2FHp0Mbh+ecSA==", + "dependencies": { + "@smithy/types": "^3.5.0" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "dev": true, - "license": "MIT", + "node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", + "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "dev": true, - "license": "MIT", + "node_modules/@smithy/signature-v4": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.0.tgz", + "integrity": "sha512-LafbclHNKnsorMgUkKm7Tk7oJ7xizsZ1VwqhGKqoCIrXh4fqDDp73fK99HOEEgcsQbtemmeY/BPv0vTVYYUNEQ==", + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-uri-escape": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "dev": true, - "license": "MIT", + "node_modules/@smithy/smithy-client": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.0.tgz", + "integrity": "sha512-nOfJ1nVQsxiP6srKt43r2My0Gp5PLWCW2ASqUioxIiGmu6d32v4Nekidiv5qOmmtzIrmaD+ADX5SKHUuhReeBQ==", + "dependencies": { + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "@smithy/util-stream": "^3.1.9", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "dev": true, - "license": "MIT", + "node_modules/@smithy/types": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.5.0.tgz", + "integrity": "sha512-QN0twHNfe8mNJdH9unwsCK13GURU7oEAZqkBI+rsvpv1jrmserO+WnLE7jidR9W/1dxwZ0u/CB01mV2Gms/K2Q==", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "license": "Apache-2.0" - }, - "node_modules/@next/env": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.10.tgz", - "integrity": "sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "14.2.5", - "dev": true, - "license": "MIT", + "node_modules/@smithy/url-parser": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.7.tgz", + "integrity": "sha512-70UbSSR8J97c1rHZOWhl+VKiZDqHWxs/iW8ZHrHp5fCCPLSBE7GcUlUvKSle3Ca+J9LLbYCj/A79BxztBvAfpA==", "dependencies": { - "glob": "10.3.10" + "@smithy/querystring-parser": "^3.0.7", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" } }, - "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.10.tgz", - "integrity": "sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@smithy/util-base64": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", + "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=16.0.0" } }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.10.tgz", - "integrity": "sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" + "node_modules/@smithy/util-body-length-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", + "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", + "dependencies": { + "tslib": "^2.6.2" } }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.10.tgz", - "integrity": "sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/util-body-length-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", + "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=16.0.0" } }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.10.tgz", - "integrity": "sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/util-buffer-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", + "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=16.0.0" } }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.10.tgz", - "integrity": "sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/util-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz", + "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=16.0.0" } }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.10.tgz", - "integrity": "sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.23.tgz", + "integrity": "sha512-Y07qslyRtXDP/C5aWKqxTPBl4YxplEELG3xRrz2dnAQ6Lq/FgNrcKWmV561nNaZmFH+EzeGOX3ZRMbU8p1T6Nw==", + "dependencies": { + "@smithy/property-provider": "^3.1.7", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">= 10.0.0" } }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.10.tgz", - "integrity": "sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@smithy/util-defaults-mode-node": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.23.tgz", + "integrity": "sha512-9Y4WH7f0vnDGuHUa4lGX9e2p+sMwODibsceSV6rfkZOvMC+BY3StB2LdO1NHafpsyHJLpwAgChxQ38tFyd6vkg==", + "dependencies": { + "@smithy/config-resolver": "^3.0.9", + "@smithy/credential-provider-imds": "^3.2.4", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/property-provider": "^3.1.7", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">= 10.0.0" } }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.10.tgz", - "integrity": "sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@smithy/util-endpoints": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.3.tgz", + "integrity": "sha512-34eACeKov6jZdHqS5hxBMJ4KyWKztTMulhuQ2UdOoP6vVxMLrOKUqIXAwJe/wiWMhXhydLW664B02CNpQBQ4Aw==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.8", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=16.0.0" } }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.10.tgz", - "integrity": "sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@smithy/util-hex-encoding": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", + "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=16.0.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", + "node_modules/@smithy/util-middleware": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.7.tgz", + "integrity": "sha512-OVA6fv/3o7TMJTpTgOi1H5OTwnuUa8hzRzhSFDtZyNxi6OZ70L/FHattSmhE212I7b6WSOJAAmbYnvcjTHOJCA==", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">= 8" + "node": ">=16.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", + "node_modules/@smithy/util-retry": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.7.tgz", + "integrity": "sha512-nh1ZO1vTeo2YX1plFPSe/OXaHkLAHza5jpokNiiKX2M5YpNUv6RxGJZhpfmiR4jSvVHCjIDmILjrxKmP+/Ghug==", + "dependencies": { + "@smithy/service-error-classification": "^3.0.7", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 8" + "node": ">=16.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", + "node_modules/@smithy/util-stream": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.1.9.tgz", + "integrity": "sha512-7YAR0Ub3MwTMjDfjnup4qa6W8gygZMxikBhFMPESi6ASsl/rZJhwLpF/0k9TuezScCojsM0FryGdz4LZtjKPPQ==", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/types": "^3.5.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">= 8" + "node": ">=16.0.0" } }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "dev": true, - "license": "MIT", + "node_modules/@smithy/util-uri-escape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", + "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12.4.0" + "node": ">=16.0.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "optional": true, + "node_modules/@smithy/util-utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", + "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=14" + "node": ">=16.0.0" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node_modules/@smithy/util-waiter": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.6.tgz", + "integrity": "sha512-xs/KAwWOeCklq8aMlnpk25LgxEYHKOEodfjfKclDMLcBJEVEKzDLxZxBQyztcuPJ7F54213NJS8PxoiHNMdItQ==", + "dependencies": { + "@smithy/abort-controller": "^3.1.5", + "@smithy/types": "^3.5.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://opencollective.com/unts" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "dev": true, - "license": "MIT" - }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "dev": true, @@ -3118,6 +4634,11 @@ "dev": true, "license": "ISC" }, + "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": "2.0.1", "dev": true, @@ -4866,6 +6387,27 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-xml-parser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.17.1", "dev": true, @@ -7916,6 +9458,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", "license": "MIT", diff --git a/package.json b/package.json index 1c2a3e6..72b6c0d 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ ] }, "dependencies": { + "@aws-sdk/client-s3": "^3.670.0", "jotai": "^2.9.3", "next": "14.2.10", "react": "^18", From 2a4940d7080eb7f7bbfd38923c85d602659f750d Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:41:39 +0900 Subject: [PATCH 09/15] Update next.config.mjs: Update config file to load image from aws-s3 --- next.config.mjs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/next.config.mjs b/next.config.mjs index 6b93f5c..68a01ed 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,4 +1,5 @@ /** @type {import('next').NextConfig} */ +const { AWS_S3_BUCKET, ASW_S3_REGION } = process.env; const nextConfig = { reactStrictMode: false, @@ -10,6 +11,9 @@ const nextConfig = { return config; }, + images: { + domains: [`${AWS_S3_BUCKET}.s3.${ASW_S3_REGION}.amazonaws.com`], + }, }; export default nextConfig; From 99818ebade937886a300fd2d773bad2207946d71 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:42:17 +0900 Subject: [PATCH 10/15] Update project: change package-lock.json --- package-lock.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index c183941..9aee31e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9977,7 +9977,6 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], - "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } From 1c32789ddbc013350dde01c61c6293c0cdbd5ac5 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:42:49 +0900 Subject: [PATCH 11/15] Update errorMessages.ts: Add upload error message --- src/constants/errorMessages.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/constants/errorMessages.ts b/src/constants/errorMessages.ts index 68a82fe..62bac91 100644 --- a/src/constants/errorMessages.ts +++ b/src/constants/errorMessages.ts @@ -3,3 +3,5 @@ export const LOGIN_ERROR_CHECK_MSG: string = '아이디와 비밀번호를 다시 확인해주세요'; export const GENERATION_ERROR_MSG: string = '프로필을 생성하는 실패했습니다.'; export const GENERATION_ERROR_CHECK_MSG: string = '이미지를 다시 확인해주세요'; +export const UPLOAD_ERROR_MSG: string = '이미지 업로드에 실패했습니다.'; +export const UPLOAD_ERROR_CHECK_MSG: string = '이미지를 다시 확인해주세요'; From 0717ef256d7c08a1015d94915bdbe11d6aef1107 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:43:18 +0900 Subject: [PATCH 12/15] Added imageUrlAtom.ts: Add store for image urls --- src/store/atoms/imageUrlAtom.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/store/atoms/imageUrlAtom.ts diff --git a/src/store/atoms/imageUrlAtom.ts b/src/store/atoms/imageUrlAtom.ts new file mode 100644 index 0000000..5e360ee --- /dev/null +++ b/src/store/atoms/imageUrlAtom.ts @@ -0,0 +1,7 @@ +import { atomWithStorage, createJSONStorage } from 'jotai/utils'; + +type Urls = string[]; + +const storage = createJSONStorage(() => sessionStorage); + +export const imageUrlsAtom = atomWithStorage('image-urls', [], storage); From e906c7f3b215f706e3d59a7e74a0fb6efa331366 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:44:03 +0900 Subject: [PATCH 13/15] Update ImageUpload.tsx: Fix some errors --- src/app/upload/_components/ImageUpload.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/app/upload/_components/ImageUpload.tsx b/src/app/upload/_components/ImageUpload.tsx index 3e9f0c1..fbdf733 100644 --- a/src/app/upload/_components/ImageUpload.tsx +++ b/src/app/upload/_components/ImageUpload.tsx @@ -17,11 +17,16 @@ import SVGDelete from '@/styles/icons/delete.svg'; interface ImageUploadProps { images: ImageFile[]; setImages: Dispatch>; - min?: number; - max?: number; + min: number; + max: number; } -function ImageUpload({ images, setImages, min, max }: ImageUploadProps) { +function ImageUpload({ + images, + setImages, + min = MIN_IMAGE_NUMBER, + max = MAX_IMAGE_NUMBER, +}: ImageUploadProps) { const { isOpen, handleOpenModal, handleCloseModal } = useModal(); const [selectedImageIndex, setSelectedImageIndex] = useState( @@ -104,7 +109,8 @@ function ImageUpload({ images, setImages, min, max }: ImageUploadProps) { {images.map((image, index) => ( // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
handleImageClick(index)} > @@ -154,9 +160,4 @@ function ImageUpload({ images, setImages, min, max }: ImageUploadProps) { ); } -ImageUpload.defaultProps = { - min: MIN_IMAGE_NUMBER, - max: MAX_IMAGE_NUMBER, -}; - export default ImageUpload; From eedcea29c93982f677be857eda6b771e2b9da245 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:44:37 +0900 Subject: [PATCH 14/15] Added api/upload/route.ts: Add upload api function --- src/app/api/upload/route.ts | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/app/api/upload/route.ts diff --git a/src/app/api/upload/route.ts b/src/app/api/upload/route.ts new file mode 100644 index 0000000..105a75c --- /dev/null +++ b/src/app/api/upload/route.ts @@ -0,0 +1,56 @@ +import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3'; +import { NextRequest, NextResponse } from 'next/server'; +import { v4 as uuidv4 } from 'uuid'; + +const AWS_S3_ACCESS_ID = process.env.AWS_S3_ACCESS_ID || ''; +const AWS_S3_ACCESS_KEY = process.env.AWS_S3_ACCESS_KEY || ''; +const AWS_S3_REGION = process.env.AWS_S3_REGION || ''; +const AWS_S3_BUCKET = process.env.AWS_S3_BUCKET || ''; + +const client = new S3Client({ + region: AWS_S3_REGION, + credentials: { + accessKeyId: AWS_S3_ACCESS_ID, + secretAccessKey: AWS_S3_ACCESS_KEY, + }, +}); + +// 이미지를 S3에 업로드하는 함수 +export const POST = async (request: NextRequest): Promise => { + const formData = await request.formData(); + const files = formData.getAll('files') as File[]; + + const uploadPromises = files.map(async (file) => { + const arrayBuffer = await file.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + const key = `${uuidv4()}/${file.name}`; + + const command = new PutObjectCommand({ + Bucket: AWS_S3_BUCKET, + Key: key, + Body: buffer, + ContentType: file.type, + }); + + try { + const response = await client.send(command); + return response.$metadata.httpStatusCode === 200 + ? `https://${AWS_S3_BUCKET}.s3.${AWS_S3_REGION}.amazonaws.com/${key}` + : ''; + } catch (error) { + console.error('Error uploading file:', error); + throw error; + } + }); + + try { + const urls = await Promise.all(uploadPromises); + return NextResponse.json({ urls }, { status: 200 }); + } catch (error: unknown) { + console.error('Failed upload images: ', error); + return NextResponse.json( + { message: 'Failed to upload images' }, + { status: 500 }, + ); + } +}; From e580fdeaa68a89bf4dbc87c74814a1707cb506f7 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Mon, 14 Oct 2024 01:45:28 +0900 Subject: [PATCH 15/15] Update upload/page.tsx: add upload & routing function --- src/app/upload/page.tsx | 61 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/src/app/upload/page.tsx b/src/app/upload/page.tsx index 48961dd..ece3ea3 100644 --- a/src/app/upload/page.tsx +++ b/src/app/upload/page.tsx @@ -1,15 +1,60 @@ 'use client'; +import { useSetAtom } from 'jotai'; import Image from 'next/image'; +import { useRouter } from 'next/navigation'; import { useState } from 'react'; import ImageUpload from '@/app/upload/_components/ImageUpload'; -import MyButton from '@/components/MyButton'; import PreviousPage from '@/components/PreviousPage'; -import { IMAGE_WARNING, MAX_IMAGE_NUMBER, MIN_IMAGE_NUMBER } from '@/constants'; -import { ImageFile } from '@/interfaces'; +import { + IMAGE_WARNING, + MAX_IMAGE_NUMBER, + MIN_IMAGE_NUMBER, + UPLOAD_ERROR_CHECK_MSG, + UPLOAD_ERROR_MSG, +} from '@/constants'; +import { ImageFile, ROUTE_TYPES } from '@/interfaces'; +import { + errorCheckMessageAtom, + errorMessageAtom, +} from '@/store/atoms/errorMessageAtom'; +import { imageUrlsAtom } from '@/store/atoms/imageUrlAtom'; export default function PhotoUploadView() { const [images, setImages] = useState([]); + const setImageUrls = useSetAtom(imageUrlsAtom); + const setErrorMessage = useSetAtom(errorMessageAtom); + const setErrorCheckMessage = useSetAtom(errorCheckMessageAtom); + + const router = useRouter(); + + const isDisabled = + images.length < MIN_IMAGE_NUMBER || images.length > MAX_IMAGE_NUMBER; + + const handleUpload = async () => { + const formData = new FormData(); + images.forEach(({ file }) => { + formData.append('files', file); + }); + + try { + const res = await fetch('/api/upload', { + method: 'POST', + body: formData, + }); + + const data = await res.json(); + if (res.ok) { + setImageUrls(data.urls); + router.push(ROUTE_TYPES.EMAIL); + } + } catch (error) { + console.error('Failed to upload images:', error); + setErrorMessage(UPLOAD_ERROR_MSG); + setErrorCheckMessage(UPLOAD_ERROR_CHECK_MSG); + router.push(ROUTE_TYPES.ERROR); + } + }; return (
@@ -43,7 +88,15 @@ export default function PhotoUploadView() {

{IMAGE_WARNING}

- = 8} /> + +
); }