From e2b4c0983a935405c1188bb0dccccf924f5517fe Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Thu, 30 Oct 2025 22:03:48 +0900 Subject: [PATCH 01/18] add: automatic distribution file using aws system --- .github/workflows/cd_prac.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/cd_prac.yml diff --git a/.github/workflows/cd_prac.yml b/.github/workflows/cd_prac.yml new file mode 100644 index 0000000..9f28c1e --- /dev/null +++ b/.github/workflows/cd_prac.yml @@ -0,0 +1,34 @@ +name: deploy-client + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '20.11.1' + + - name: Build & Export + run: | + yarn install + yarn build + + - name: Deploy to S3 and Invalidate Cloudfront in prod mode + env: + AWS_ACCESS_KEY_ID: AKIAUOI25NIUYLDVT6XX + AWS_SECRET_ACCESS_KEY: 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 + AWS_REGION: ap-northeast-2 + run: | + aws s3 sync ./dist s3://{s3 이름} --delete + aws cloudfront create-invalidation --distribution-id {Cloudfront 이름} --paths "/*"\ From 3184c73a68fbf2f8ca6256392c399d4b7b693a8c Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Thu, 30 Oct 2025 22:05:18 +0900 Subject: [PATCH 02/18] add: automatic distribution file using aws system --- .github/workflows/cd_prac.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd_prac.yml b/.github/workflows/cd_prac.yml index 9f28c1e..8ace293 100644 --- a/.github/workflows/cd_prac.yml +++ b/.github/workflows/cd_prac.yml @@ -26,8 +26,8 @@ jobs: - name: Deploy to S3 and Invalidate Cloudfront in prod mode env: - AWS_ACCESS_KEY_ID: AKIAUOI25NIUYLDVT6XX - AWS_SECRET_ACCESS_KEY: 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 + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: ap-northeast-2 run: | aws s3 sync ./dist s3://{s3 이름} --delete From 96785edd5568ecf1a710b0cbca1204ab475f7b06 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Sun, 2 Nov 2025 13:56:10 +0900 Subject: [PATCH 03/18] feat: filter modals, query state depending on filter, new context for post data --- src/Home.module.css | 255 +------------------------------------------- 1 file changed, 2 insertions(+), 253 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index 0f12938..ca598d5 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -33,25 +33,15 @@ background-color: #eee; color: #444; cursor: pointer; - padding: 16px 24px; + padding: 18px; width: 100%; display: flex; flex-direction: row; border: none; outline: none; transition: 0.4s; - justify-content: space-between; - font-size: 18px; - font-weight: 700; } -.filterContainer button { - padding: 16px 18px 16px 0px; -} -.accordion span { - min-width: 140px; - margin-right: 10px; -} .active, .accordion:hover { @@ -62,245 +52,4 @@ padding: 0 18px; background-color: white; overflow: hidden; -} - -.panel div { - margin-bottom: 6px; - font-size: 18px; -} -.panel section { - margin-top: 12px; -} - -ul.chips { - margin: 30px 0 50px; - list-style: none; - display: flex; - gap: 6px; - flex-wrap: wrap; - align-content: center; -} - -.chip { - margin-right: 6px; - float: left; - padding: 4px; - justify-content: center; -} - -.postList { - display: flex; - flex-wrap: wrap; - gap: 20px; - justify-content: space-between; - align-items: flex-start; -} - -.postList > * { - flex: 1 1 calc(33.333% - 20px); - max-width: calc(33.333% - 20px); -} - -@media (max-width: 1000px) { - .postList > * { - flex: 1 1 calc(50% - 20px); - max-width: calc(50% - 20px); - } -} - -@media (max-width: 768px) { - .contentWrapper { - flex-direction: column; - padding: 0 12px; - } - .postList { - gap: 16px; - } - .postList > * { - flex: 1 1 100%; - max-width: 100%; - } -} - -.pagination { - display: flex; - justify-content: center; - align-items: center; - gap: 5px; - margin-top: 20px; -} - -.pagination button { - padding: 6px 10px; - border: 1px solid #dee2e6; - border-radius: 4px; - background-color: #ffffff; - color: #212529; - cursor: pointer; - transition: background-color 0.2s, border-color 0.2s, color 0.2s; - font-size: 14px; - min-width: 32px; - text-align: center; -} - -.pagination button:hover:not(:disabled) { - background-color: #f8f9fa; - border-color: #adb5bd; -} - -.pagination button:disabled { - cursor: not-allowed; - opacity: 0.6; - background-color: #f8f9fa; - border-color: #e9ecef; - color: #adb5bd; -} - -.pagination button.activePage { - background-color: #555; - color: white; - border-color: rgba(217, 217, 217, 1); -} - -.modalTrigger { - position: relative; -} -.modal { - position: absolute; - top: calc(100% + 8px); - left: 0; - background-color: white; - border-radius: 12px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - padding: 16px; - width: 250px; - z-index: 1000; - cursor: default; -} - -.modalOptions { - display: flex; - flex-direction: column; - gap: 12px; - padding-bottom: 16px; -} -.radioLabel { - display: inline-flex; - align-items: center; - gap: 8px; - cursor: pointer; -} -.modalOptions label { - display: inline-flex; - align-items: center; - gap: 8px; - cursor: pointer; -} - -.modalActions { - display: flex; - justify-content: flex-end; - gap: 8px; - border-top: 1px solid #f0f0f0; - padding-top: 16px; -} - -.btn { - border: none; - border-radius: 6px; - padding: 8px 16px; - font-size: 14px; - font-weight: 500; - cursor: pointer; -} -.btnReset { - background-color: #f1f2f5; - color: #555; -} -.btnApply { - background-color: #333; - color: white; -} - -.radioLabel input[type="radio"] { - display: none; -} -.radioVisual { - width: 18px; - height: 18px; - border-radius: 50%; - border: 2px solid #ccc; - display: grid; - place-items: center; - transition: all 0.2s; -} -.radioVisual::before { - content: ""; - width: 10px; - height: 10px; - border-radius: 50px; - background-color: #555; - transform: scale(0); - transition: all 0.2s; -} -.radioLabel input[type="radio"]:checked + .radioVisual { - border-color: #555; -} -.radioLabel input[type="radio"]:checked + .radioVisual::before { - transform: scale(1); -} - -[type="checkbox"] { - appearance: none; - box-sizing: border-box; - background-clip: content-box; - width: 1.25em; - height: 1.25em; - border: 1px solid rgba(72, 76, 83, 1); - border-radius: 3px; - cursor: pointer; -} - -[type="checkbox"]:checked { - border-color: rgba(72, 76, 83, 1); - background-color: rgba(72, 76, 83, 1); - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 8' fill='none'%3E%3Cpath d='M1 3.5L4.5 7L9.5 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); - background-position: center; - background-repeat: no-repeat; - background-size: 0.75em; -} - -/* --- Modal Styles (Login Confirmation) --- */ -.modalBackdrop { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; - z-index: 1000; -} - -.modalContent { - background-color: white; - padding: 24px; - border-radius: 8px; - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); - text-align: center; - width: 90%; - max-width: 320px; -} - -.modalContent p { - margin: 0 0 16px; - font-size: 16px; -} - -.modalActions { - display: flex; - gap: 12px; - justify-content: center; -} +} \ No newline at end of file From d4249487366ae8de0239e7fb0e2bf7926af3fa44 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Sun, 2 Nov 2025 15:33:14 +0900 Subject: [PATCH 04/18] fix: css lint error --- .github/workflows/cd_prac.yml | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 .github/workflows/cd_prac.yml diff --git a/.github/workflows/cd_prac.yml b/.github/workflows/cd_prac.yml deleted file mode 100644 index 8ace293..0000000 --- a/.github/workflows/cd_prac.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: deploy-client - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - deploy: - name: Deploy - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: '20.11.1' - - - name: Build & Export - run: | - yarn install - yarn build - - - name: Deploy to S3 and Invalidate Cloudfront in prod mode - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: ap-northeast-2 - run: | - aws s3 sync ./dist s3://{s3 이름} --delete - aws cloudfront create-invalidation --distribution-id {Cloudfront 이름} --paths "/*"\ From 0d3d5cbaeaf9cd6132e7baa31b5bc426f1398f01 Mon Sep 17 00:00:00 2001 From: Jeongyeon Lee Date: Sun, 2 Nov 2025 17:34:03 +0900 Subject: [PATCH 05/18] InternCard Added (#9) --- src/Home.module.css | 195 +++++++++++++++++++++++++++++++++++++++- src/components/Home.tsx | 2 +- 2 files changed, 195 insertions(+), 2 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index ca598d5..ec91041 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -52,4 +52,197 @@ padding: 0 18px; background-color: white; overflow: hidden; -} \ No newline at end of file +} + +ul.chips { + margin: 30px 0 50px; + list-style: none; + display: flex; + gap: 6px; + flex-wrap: wrap; + padding: 0px 16px 16px 16px; +} + +.chip { + background-color: rgb(255, 255, 255); + display: flex; + align-items: center; + gap: 4px; + margin-right: 6px; + font-size: 12px; + float: left; + border: 1px solid #f1f2f5; + border-radius: 14px; + padding: 16px 8px; + font-size: 14px; +} + +.resetChip { + background-color: rgb(255, 255, 255); + display: flex; + align-items: center; + gap: 4px; + margin-right: 6px; + font-size: 12px; + float: left; + padding: 16px 8px; + font-size: 14px; + border: none; +} + +/* MODALS */ +.modalTrigger { + position: relative; +} +.modal { + position: absolute; + top: calc(100% + 8px); + left: 0; + background-color: white; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + padding: 16px; + width: 250px; + z-index: 1000; + cursor: default; +} + +.modalOptions { + display: flex; + flex-direction: column; + gap: 12px; + padding-bottom: 16px; +} +.radioLabel { + display: inline-flex; + align-items: center; + gap: 8px; + cursor: pointer; +} +.modalOptions label { + display: inline-flex; + align-items: center; + gap: 8px; + cursor: pointer; +} + +/* If your JSX uses a plain `className="row"`, define that globally in `src/style.css`. + Prefer using `styles.row` (CSS modules) instead; see `Home.tsx` for where .row is used. */ +.modalActions { + display: flex; + justify-content: flex-end; + gap: 8px; + border-top: 1px solid #f0f0f0; + padding-top: 16px; +} + +.btn { + border: none; + border-radius: 6px; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; + cursor: pointer; +} +.btnReset { + background-color: #f1f2f5; + color: #555; +} +.btnApply { + background-color: #333; + color: white; +} + +.radioLabel input[type="radio"] { + display: none; +} +.radioVisual { + width: 18px; + height: 18px; + border-radius: 50%; + border: 2px solid #ccc; + display: grid; + place-items: center; + transition: all 0.2s; +} +.radioVisual::before { + /* inner dot */ + content: ""; + width: 10px; + height: 10px; + border-radius: 50px; + background-color: #555; + transform: scale(0); + transition: all 0.2s; +} +.radioLabel input[type="radio"]:checked + .radioVisual { + border-color: #555; +} +.radioLabel input[type="radio"]:checked + .radioVisual::before { + transform: scale(1); +} + +/* input[type="checkbox"] { + +} */ + +/* Login Confirmation Modal Styles */ +.modalBackdrop { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.modalContent { + background-color: white; + padding: 24px; + border-radius: 8px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); + text-align: center; + width: 90%; + max-width: 320px; +} + +.modalContent p { + margin: 0 0 16px; + font-size: 16px; +} + +.modalActions { + display: flex; + gap: 12px; + justify-content: center; +} + +.modalActions button { + padding: 10px 20px; + border-radius: 6px; + border: 1px solid #ccc; + background-color: #f0f0f0; + cursor: pointer; + font-size: 14px; + font-weight: 500; + color: #212529; /* Dark text color for better visibility */ + transition: background-color 0.2s; +} + +.modalActions button:first-child:hover { + background-color: #e2e6ea; /* Light grey on hover */ +} + +.modalActions button:last-child { + background-color: #007bff; + color: white; + border-color: #007bff; +} + +.modalActions button:last-child:hover { + background-color: #0069d9; +} diff --git a/src/components/Home.tsx b/src/components/Home.tsx index 2bc58dd..923a349 100644 --- a/src/components/Home.tsx +++ b/src/components/Home.tsx @@ -22,7 +22,7 @@ const Home = () => { const DEV: string[] = ['FRONT', 'APP', 'BACKEND', 'OTHERS']; - const { posts, isLoading, fetchPosts, paginator } = usePosts(); + const { fetchPosts } = usePosts(); const [panelExpanded, setPanelExpanded] = useState(false); const [roles, setRoles] = useState([]); From f8f3227e6b1d443e852397a40947c24c0ac9a97e Mon Sep 17 00:00:00 2001 From: Jeongyeon Lee Date: Mon, 3 Nov 2025 13:36:02 +0900 Subject: [PATCH 06/18] Intern component (#10) --- src/Home.module.css | 108 +++++++++++++++++++++++++++++++--------- src/components/Home.tsx | 31 +++++++++++- 2 files changed, 115 insertions(+), 24 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index ec91041..f83d825 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -1,7 +1,47 @@ +.filterContainer { + position: sticky; + top: 0; + z-index: 100; + background-color: white; /* Ensure background is white to cover content when sticky */ + padding: 16px 30px 0px 30px; /* Add padding to match main content */ + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Add shadow for better visual separation */ +} + .main { display: flex; flex-direction: column; - padding: 16px 30px; + padding: 0 30px 16px 30px; /* Adjust padding for main content */ +} + +.contentWrapper { + display: flex; + flex-direction: column; + gap: 20px; +} +.panelWrapper { + flex-direction: column; + align-items: flex-start; + justify-content: flex-start; + width: 100%; +} + +.contentWrapper { + display: flex; + flex-direction: row; + gap: 20px; + width: 100%; + margin: 0 auto; + max-width: 1200px; + padding: 0 16px; +} + +.filterContainer { + flex: 0; +} + +.postsArea { + flex: 1; + min-width: 0; } .panelWrapper { flex-direction: column; @@ -40,6 +80,10 @@ border: none; outline: none; transition: 0.4s; + justify-content: space-between; + + font-size: 18px; + font-weight: 700; } @@ -55,39 +99,57 @@ } ul.chips { - margin: 30px 0 50px; + margin: 0; list-style: none; display: flex; gap: 6px; flex-wrap: wrap; - padding: 0px 16px 16px 16px; + padding: 0; } -.chip { - background-color: rgb(255, 255, 255); - display: flex; - align-items: center; - gap: 4px; - margin-right: 6px; - font-size: 12px; - float: left; - border: 1px solid #f1f2f5; - border-radius: 14px; - padding: 16px 8px; - font-size: 14px; +.postList { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 20px; /* Gap between cards */ } -.resetChip { - background-color: rgb(255, 255, 255); +.pagination { display: flex; + justify-content: center; align-items: center; - gap: 4px; - margin-right: 6px; - font-size: 12px; - float: left; - padding: 16px 8px; + gap: 5px; /* Smaller gap between page buttons */ + margin-top: 20px; +} + +.pagination button { + padding: 6px 10px; /* Smaller padding for buttons */ + border: 1px solid #ccc; + border-radius: 4px; + background-color: #f0f0f0; + cursor: pointer; + transition: background-color 0.2s, border-color 0.2s, color 0.2s; font-size: 14px; - border: none; + min-width: 32px; /* Ensure consistent button width */ + text-align: center; +} + +.pagination button:hover:not(:disabled) { + background-color: #e0e0e0; + border-color: #a0a0a0; +} + +.pagination button:disabled { + cursor: not-allowed; + opacity: 0.6; + background-color: #f8f8f8; + border-color: #e0e0e0; + color: #a0a0a0; +} + +.pagination button.activePage { + background-color: #007bff; + color: white; + border-color: #007bff; } /* MODALS */ diff --git a/src/components/Home.tsx b/src/components/Home.tsx index 923a349..0476708 100644 --- a/src/components/Home.tsx +++ b/src/components/Home.tsx @@ -22,7 +22,7 @@ const Home = () => { const DEV: string[] = ['FRONT', 'APP', 'BACKEND', 'OTHERS']; - const { fetchPosts } = usePosts(); + const { posts, isLoading, fetchPosts, paginator } = usePosts(); const [panelExpanded, setPanelExpanded] = useState(false); const [roles, setRoles] = useState([]); @@ -158,6 +158,35 @@ const Home = () => { return pageNumbers; }; + const renderPageNumbers = () => { + const pageNumbers = []; + const pageBlockSize = 5; + + const currentBlock = Math.ceil(currentPage / pageBlockSize); + + const startPage = (currentBlock - 1) * pageBlockSize + 1; + const endPage = startPage + pageBlockSize - 1; + + for (let i = startPage; i <= endPage; i++) { + const isDisabled = i > totalPages; + + pageNumbers.push( + + ); + } + return pageNumbers; + }; + return ( <>
From a44ea27d22cde7db52bee8612f7f65381fe2454b Mon Sep 17 00:00:00 2001 From: Jeongyeon Lee Date: Mon, 3 Nov 2025 15:14:06 +0900 Subject: [PATCH 07/18] Intern component (#12) --- src/Home.module.css | 56 ++++++++++++++++++++++------------------- src/components/Home.tsx | 29 --------------------- 2 files changed, 30 insertions(+), 55 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index f83d825..b17e721 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -1,22 +1,27 @@ +/* --- Main Layout --- */ .filterContainer { position: sticky; top: 0; z-index: 100; - background-color: white; /* Ensure background is white to cover content when sticky */ - padding: 16px 30px 0px 30px; /* Add padding to match main content */ - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Add shadow for better visual separation */ + background-color: white; + padding: 16px 30px 0px 30px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .main { display: flex; flex-direction: column; - padding: 0 30px 16px 30px; /* Adjust padding for main content */ + padding: 0 30px 16px 30px; } .contentWrapper { display: flex; flex-direction: column; gap: 20px; + width: 100%; + /* Removed max-width for 3-column layout */ + margin: 0 auto; + width: 1000px; } .panelWrapper { flex-direction: column; @@ -69,6 +74,7 @@ min-width: 0; } +/* --- Filter Panel (Accordion) --- */ .accordion { background-color: #eee; color: #444; @@ -98,6 +104,7 @@ overflow: hidden; } +/* --- Filter Chips --- */ ul.chips { margin: 0; list-style: none; @@ -107,43 +114,47 @@ ul.chips { padding: 0; } +/* --- Post Grid (3xN Layout) --- */ .postList { display: grid; + /* Defines the 3-column layout */ grid-template-columns: repeat(3, 1fr); - gap: 20px; /* Gap between cards */ + gap: 20px; } +/* --- Pagination --- */ .pagination { display: flex; justify-content: center; align-items: center; - gap: 5px; /* Smaller gap between page buttons */ + gap: 5px; margin-top: 20px; } .pagination button { - padding: 6px 10px; /* Smaller padding for buttons */ - border: 1px solid #ccc; + padding: 6px 10px; + border: 1px solid #dee2e6; border-radius: 4px; - background-color: #f0f0f0; + background-color: #ffffff; + color: #212529; cursor: pointer; transition: background-color 0.2s, border-color 0.2s, color 0.2s; font-size: 14px; - min-width: 32px; /* Ensure consistent button width */ + min-width: 32px; text-align: center; } .pagination button:hover:not(:disabled) { - background-color: #e0e0e0; - border-color: #a0a0a0; + background-color: #f8f9fa; + border-color: #adb5bd; } .pagination button:disabled { cursor: not-allowed; opacity: 0.6; - background-color: #f8f8f8; - border-color: #e0e0e0; - color: #a0a0a0; + background-color: #f8f9fa; + border-color: #e9ecef; + color: #adb5bd; } .pagination button.activePage { @@ -152,7 +163,7 @@ ul.chips { border-color: #007bff; } -/* MODALS */ +/* --- Modal Styles (Dropdown) --- */ .modalTrigger { position: relative; } @@ -188,8 +199,6 @@ ul.chips { cursor: pointer; } -/* If your JSX uses a plain `className="row"`, define that globally in `src/style.css`. - Prefer using `styles.row` (CSS modules) instead; see `Home.tsx` for where .row is used. */ .modalActions { display: flex; justify-content: flex-end; @@ -228,7 +237,6 @@ ul.chips { transition: all 0.2s; } .radioVisual::before { - /* inner dot */ content: ""; width: 10px; height: 10px; @@ -244,11 +252,7 @@ ul.chips { transform: scale(1); } -/* input[type="checkbox"] { - -} */ - -/* Login Confirmation Modal Styles */ +/* --- Modal Styles (Login Confirmation) --- */ .modalBackdrop { position: fixed; top: 0; @@ -291,12 +295,12 @@ ul.chips { cursor: pointer; font-size: 14px; font-weight: 500; - color: #212529; /* Dark text color for better visibility */ + color: #212529; transition: background-color 0.2s; } .modalActions button:first-child:hover { - background-color: #e2e6ea; /* Light grey on hover */ + background-color: #e2e6ea; } .modalActions button:last-child { diff --git a/src/components/Home.tsx b/src/components/Home.tsx index 0476708..2bc58dd 100644 --- a/src/components/Home.tsx +++ b/src/components/Home.tsx @@ -158,35 +158,6 @@ const Home = () => { return pageNumbers; }; - const renderPageNumbers = () => { - const pageNumbers = []; - const pageBlockSize = 5; - - const currentBlock = Math.ceil(currentPage / pageBlockSize); - - const startPage = (currentBlock - 1) * pageBlockSize + 1; - const endPage = startPage + pageBlockSize - 1; - - for (let i = startPage; i <= endPage; i++) { - const isDisabled = i > totalPages; - - pageNumbers.push( - - ); - } - return pageNumbers; - }; - return ( <>
From be641a554091bae0cc166a7bee5c97978e830279 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Mon, 3 Nov 2025 20:50:32 +0900 Subject: [PATCH 08/18] fix: change layout from grid to flexbox, moderate css changes --- src/Home.module.css | 128 +++++++++++++++++++++++++++----------------- 1 file changed, 79 insertions(+), 49 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index b17e721..6c885e5 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -1,27 +1,31 @@ -/* --- Main Layout --- */ -.filterContainer { - position: sticky; - top: 0; - z-index: 100; - background-color: white; - padding: 16px 30px 0px 30px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); -} .main { display: flex; flex-direction: column; - padding: 0 30px 16px 30px; + padding: 16px 30px; +} +.panelWrapper { + flex-direction: column; + align-items: flex-start; } .contentWrapper { display: flex; - flex-direction: column; + flex-direction: row; gap: 20px; width: 100%; - /* Removed max-width for 3-column layout */ margin: 0 auto; - width: 1000px; + max-width: 1200px; + padding: 0 16px; +} + +.filterContainer { + flex: 0 0 220px; /* Do not grow, do not shrink, base width 220px */ +} + +.postsArea { + flex: 1; /* Take up remaining space */ + min-width: 0; /* Prevent overflow */ } .panelWrapper { flex-direction: column; @@ -74,7 +78,6 @@ min-width: 0; } -/* --- Filter Panel (Accordion) --- */ .accordion { background-color: #eee; color: #444; @@ -104,25 +107,61 @@ overflow: hidden; } -/* --- Filter Chips --- */ +.panel div { + margin-bottom: 6px; + font-size: 18px; +} +.panel section { + margin-top: 12px; +} + ul.chips { - margin: 0; + margin: 30px 0 50px; list-style: none; display: flex; gap: 6px; flex-wrap: wrap; - padding: 0; + padding: 0 16px 16px 16px; } -/* --- Post Grid (3xN Layout) --- */ +/* --- Post List (flex, responsive) --- */ .postList { - display: grid; - /* Defines the 3-column layout */ - grid-template-columns: repeat(3, 1fr); + display: flex; + flex-wrap: wrap; gap: 20px; + justify-content: space-between; + align-items: flex-start; +} + +.postList > * { + /* Default: 3 columns. The -20px accounts for gaps so cards fit nicely */ + flex: 1 1 calc(33.333% - 20px); + max-width: calc(33.333% - 20px); +} + +/* Medium screens: 2 columns */ +@media (max-width: 1000px) { + .postList > * { + flex: 1 1 calc(50% - 20px); + max-width: calc(50% - 20px); + } +} + +/* Small screens: 1 column */ +@media (max-width: 768px) { + .contentWrapper { + flex-direction: column; + padding: 0 12px; + } + .postList { + gap: 16px; + } + .postList > * { + flex: 1 1 100%; + max-width: 100%; + } } -/* --- Pagination --- */ .pagination { display: flex; justify-content: center; @@ -158,12 +197,11 @@ ul.chips { } .pagination button.activePage { - background-color: #007bff; + background-color: #555; color: white; - border-color: #007bff; + border-color: rgba(217, 217, 217, 1); } -/* --- Modal Styles (Dropdown) --- */ .modalTrigger { position: relative; } @@ -252,6 +290,22 @@ ul.chips { transform: scale(1); } +[type="checkbox"] { + appearance: none; /* 기본(네이티브) 모양을 제거 */ + box-sizing: border-box; + background-clip: content-box; + width: 1.25em; + height: 1.25em; + border: 1px solid rgba(72, 76, 83, 1); + border-radius: 3px; + cursor: pointer; +} +[type="checkbox"]:checked { + border-color: rgba(72, 76, 83, 1); + background-color: rgba(72, 76, 83, 1); +} + + /* --- Modal Styles (Login Confirmation) --- */ .modalBackdrop { position: fixed; @@ -287,28 +341,4 @@ ul.chips { justify-content: center; } -.modalActions button { - padding: 10px 20px; - border-radius: 6px; - border: 1px solid #ccc; - background-color: #f0f0f0; - cursor: pointer; - font-size: 14px; - font-weight: 500; - color: #212529; - transition: background-color 0.2s; -} -.modalActions button:first-child:hover { - background-color: #e2e6ea; -} - -.modalActions button:last-child { - background-color: #007bff; - color: white; - border-color: #007bff; -} - -.modalActions button:last-child:hover { - background-color: #0069d9; -} From c733dfd1e4cba26d31af98df329d3a40c6bb71e6 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Mon, 3 Nov 2025 20:50:32 +0900 Subject: [PATCH 09/18] fix: change layout from grid to flexbox, moderate css changes --- src/Home.module.css | 51 +-------------------------------------------- 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index 6c885e5..1542350 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -4,34 +4,11 @@ flex-direction: column; padding: 16px 30px; } -.panelWrapper { - flex-direction: column; - align-items: flex-start; -} - -.contentWrapper { - display: flex; - flex-direction: row; - gap: 20px; - width: 100%; - margin: 0 auto; - max-width: 1200px; - padding: 0 16px; -} - -.filterContainer { - flex: 0 0 220px; /* Do not grow, do not shrink, base width 220px */ -} - -.postsArea { - flex: 1; /* Take up remaining space */ - min-width: 0; /* Prevent overflow */ -} .panelWrapper { flex-direction: column; align-items: flex-start; justify-content: flex-start; - width: 100%; + width: 100%; } .contentWrapper { @@ -52,32 +29,6 @@ flex: 1; min-width: 0; } -.panelWrapper { - flex-direction: column; - align-items: flex-start; - justify-content: flex-start; - width: 100%; -} - -.contentWrapper { - display: flex; - flex-direction: row; - gap: 20px; - width: 100%; - margin: 0 auto; - max-width: 1200px; - padding: 0 16px; -} - -.filterContainer { - flex: 0; -} - -.postsArea { - flex: 1; - min-width: 0; -} - .accordion { background-color: #eee; color: #444; From 00d28370bff23da372be35ccfdf8d7ee7f925fb6 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Mon, 3 Nov 2025 21:45:54 +0900 Subject: [PATCH 10/18] fix: css format issues --- src/Home.module.css | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index 1542350..afc87b9 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -1,4 +1,3 @@ - .main { display: flex; flex-direction: column; @@ -242,21 +241,25 @@ ul.chips { } [type="checkbox"] { - appearance: none; /* 기본(네이티브) 모양을 제거 */ - box-sizing: border-box; - background-clip: content-box; - width: 1.25em; - height: 1.25em; - border: 1px solid rgba(72, 76, 83, 1); - border-radius: 3px; - cursor: pointer; + appearance: none; + box-sizing: border-box; + background-clip: content-box; + width: 1.25em; + height: 1.25em; + border: 1px solid rgba(72, 76, 83, 1); + border-radius: 3px; + cursor: pointer; } + [type="checkbox"]:checked { - border-color: rgba(72, 76, 83, 1); - background-color: rgba(72, 76, 83, 1); + border-color: rgba(72, 76, 83, 1); + background-color: rgba(72, 76, 83, 1); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 8' fill='none'%3E%3Cpath d='M1 3.5L4.5 7L9.5 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-position: center; + background-repeat: no-repeat; + background-size: 0.75em; } - /* --- Modal Styles (Login Confirmation) --- */ .modalBackdrop { position: fixed; @@ -291,5 +294,3 @@ ul.chips { gap: 12px; justify-content: center; } - - From ce02950967c1c5f74ab4d98d9c43dcce82d3827a Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Mon, 3 Nov 2025 22:17:20 +0900 Subject: [PATCH 11/18] fix: css moderations and final glow-up --- src/Home.module.css | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Home.module.css b/src/Home.module.css index afc87b9..795538c 100644 --- a/src/Home.module.css +++ b/src/Home.module.css @@ -45,6 +45,13 @@ font-weight: 700; } +.filterContainer button { + padding: 16px 18px 16px 0px; +} +.accordion span { + min-width: 140px; + margin-right: 10px; +} .active, .accordion:hover { @@ -71,10 +78,16 @@ ul.chips { display: flex; gap: 6px; flex-wrap: wrap; - padding: 0 16px 16px 16px; + align-content: center; +} + +.chip { + margin-right: 6px; + float: left; + padding: 4px; + justify-content: center; } -/* --- Post List (flex, responsive) --- */ .postList { display: flex; flex-wrap: wrap; @@ -84,12 +97,10 @@ ul.chips { } .postList > * { - /* Default: 3 columns. The -20px accounts for gaps so cards fit nicely */ flex: 1 1 calc(33.333% - 20px); max-width: calc(33.333% - 20px); } -/* Medium screens: 2 columns */ @media (max-width: 1000px) { .postList > * { flex: 1 1 calc(50% - 20px); @@ -97,7 +108,6 @@ ul.chips { } } -/* Small screens: 1 column */ @media (max-width: 768px) { .contentWrapper { flex-direction: column; From 9f7fbbb37c7a5b6fc89f2d036445cc9583e67426 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Sat, 22 Nov 2025 16:00:20 +0900 Subject: [PATCH 12/18] Add: new profile components and types --- src/components/CreateProfile.tsx | 411 ++++++++++++++++++++++++++++ src/components/Profile.tsx | 90 ++++++ src/contexts/ProfileContext.tsx | 76 +++++ src/styles/Bookmark.module.css | 56 ++++ src/styles/CreateProfile.module.css | 8 + src/styles/Home.module.css | 306 +++++++++++++++++++++ src/styles/InternCard.module.css | 90 ++++++ src/styles/MyPage.module.css | 64 +++++ src/styles/Profile.module.css | 128 +++++++++ src/styles/style.css | 171 ++++++++++++ src/types/index.ts | 71 +++++ 11 files changed, 1471 insertions(+) create mode 100644 src/components/CreateProfile.tsx create mode 100644 src/components/Profile.tsx create mode 100644 src/contexts/ProfileContext.tsx create mode 100644 src/styles/Bookmark.module.css create mode 100644 src/styles/CreateProfile.module.css create mode 100644 src/styles/Home.module.css create mode 100644 src/styles/InternCard.module.css create mode 100644 src/styles/MyPage.module.css create mode 100644 src/styles/Profile.module.css create mode 100644 src/styles/style.css create mode 100644 src/types/index.ts diff --git a/src/components/CreateProfile.tsx b/src/components/CreateProfile.tsx new file mode 100644 index 0000000..cb13cbf --- /dev/null +++ b/src/components/CreateProfile.tsx @@ -0,0 +1,411 @@ +import React, { useState, useEffect, useRef, useCallback } from 'react'; +import { FaFolderPlus } from 'react-icons/fa6'; +import { useNavigate } from 'react-router-dom'; +import apiClient from '../api'; +import { useProfile } from '../contexts/ProfileContext'; +import styles from '../styles/Profile.module.css'; + +const CreateProfile = () => { + const { profile } = useProfile(); + + const [isSaving, setIsSaving] = useState(false); + // 마지막 확인 : 학번/학과/이력서 다 valid한 input으로 차있음 + const [canSave, setCanSave] = useState(true); + + const [classNumber, setClassNumber] = useState( + profile ? (profile.enrollYear - 2000).toString() : '' + ); + const [classNumberOk, setClassNumberOk] = useState(true); + + const [majors, setMajors] = useState( + profile ? profile.department.split(',') : [''] + ); // has at least one element + const [majorOk, setMajorOk] = useState(true); + + // file + const [cvFile, setCvFile] = useState(null); + const [cvOk, setCvOk] = useState(true); + const fileInputRef = useRef(null); + + // positions (optional) + const [positions, setPositions] = useState( + profile?.positions?.length ? profile.positions : [''] + ); + const [positionsOk, setPositionsOk] = useState(true); + + /** + * when the index'th major input is edited + * @param index + * @param value + */ + const handleMajorChange = (index: number, value: string) => { + setMajors((prev) => prev.map((m, i) => (i === index ? value : m))); + }; + + /** + * add a new input + */ + const addMajor = () => { + if (majors.length >= 6) return; + setMajors((prev) => [...prev, '']); + }; + + /** + * delete major by index number + */ + const majorDelete = (index: number) => { + if (index === 0) alert('주전공은 삭제할 수 없습니다.'); + else { + setMajors((prev) => prev.filter((_, i) => i !== index)); + } + }; + + /** + * limit input file to pf + * usage: when file input filled + * @param e + */ + const handleCvChange = (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file) return; + if (file.type !== 'application/pdf') { + alert('PDF 파일만 업로드할 수 있습니다.'); + setCvOk(false); + e.target.value = ''; + return; + } + setCvFile(file); + }; + + /** + * delete file from state & reset input val + * usage: when CV deleted + */ + const handleDeleteCv = () => { + setCvFile(null); + if (fileInputRef.current) { + fileInputRef.current.value = ''; + } + }; + + /** + * checks whether entered class number is valid or not + * usage: when 'save' button clicked + */ + const checkId = useCallback(() => { + // only accept numbers & apply globally for input string + // accept only two digits + const containsOnlyNumbers = (str: string): boolean => { + return /^\d+$/.test(str); + }; + + if (containsOnlyNumbers(classNumber) && classNumber.length === 2) { + setClassNumberOk(true); + } else { + setClassNumberOk(false); + } + }, [classNumber]); + + useEffect(() => { + checkId(); + }, [checkId]); + + /** + * check whether entered major value is valid or not + */ + const checkMajorOk = useCallback(() => { + if (majors[0] && new Set(majors).size === majors.length) setMajorOk(true); + else setMajorOk(false); + }, [majors]); + + useEffect(() => { + checkMajorOk(); + }, [checkMajorOk]); + /** + * check whether entered cv value is valid or not + */ + const checkCV = useCallback(() => { + if (cvFile && cvFile.size < 5000000) setCvOk(true); + else setCvOk(false); + }, [cvFile]); + + useEffect(() => { + checkCV(); + }, [checkCV]); + + const handlePositionChange = (index: number, value: string) => { + // 100자 제한 + if (value.length > 100) value = value.slice(0, 100); + setPositions((prev) => prev.map((p, i) => (i === index ? value : p))); + }; + + const addPosition = () => { + setPositions((prev) => [...prev, '']); + }; + + const deletePosition = (index: number) => { + setPositions((prev) => prev.filter((_, i) => i !== index)); + }; + + const checkPositionsOk = useCallback(() => { + const filled = positions.map((p) => p.trim()).filter(Boolean); + const noDup = new Set(filled).size === filled.length; + const within100 = filled.every((p) => p.length <= 100); + setPositionsOk(noDup && within100); + }, [positions]); + + useEffect(() => { + checkPositionsOk(); + }, [checkPositionsOk]); + + const checkOptionalOk = useCallback(() => { + return positionsOk; + }, [positionsOk]); + + /** + * consider whether required inputs are not empty & are valid + */ + const checkSavePossible = useCallback((): boolean => { + return Boolean( + classNumberOk && + majorOk && + cvOk && + cvFile && + classNumber && + majors.filter(Boolean).length > 0 + ); + }, [classNumberOk, majorOk, cvOk, cvFile, classNumber, majors]); + const generateRandomString = (length: number = 10) => { + const chars = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let result = ''; + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return result; + }; + const getYYMMDD = () => { + const now = new Date(); + const year = String(now.getFullYear()).slice(2); // 2025 → "25" + const month = String(now.getMonth() + 1).padStart(2, '0'); + const day = String(now.getDate()).padStart(2, '0'); + return `${year}${month}${day}`; // "251122" + }; + + const saveProfile = async () => { + const savePossible = checkSavePossible(); + const optionalOk = checkOptionalOk(); + + if (!savePossible || !cvFile || !optionalOk) { + setCanSave(savePossible); + return; + } + setIsSaving(true); + try { + const enrollYear: number = parseInt(classNumber) + 2000; + const department: string = majors.filter(Boolean).join(','); + const cv: string = `static/private/CV/${generateRandomString()}_${getYYMMDD()}/${cvFile.name}.pdf`; + const cleanedPositions = positions.map((p) => p.trim()).filter(Boolean); + + // file + await apiClient.put('/api/applicant/me', { + enrollYear, + department, + positions: cleanedPositions, + cvKey: cv, + // slogan, + // explanation + // stacks + // links + }); + setCanSave(true); + navigate('/mypage'); + } catch (e) { + console.error(e); + } finally { + setIsSaving(false); + } + }; + /** + * for '뒤로가기' button + */ + const navigate = useNavigate(); + const handleGoBack = () => { + navigate(-1); + }; + + return ( +
+

+ {profile ? '프로필 수정' : '프로필 생성'} +

+

필수 작성 항목

+ 아래 항목은 필수로 작성해주세요. + +
+ + 학번 * + +
+ setClassNumber(e.target.value)} + placeholder={classNumber ? classNumber : ''} + /> + +
+ {!classNumberOk && ( +

+ 두 자리 수 숫자로 작성해주세요. (e.g. 25) +

+ )} +
+ +
+ + 학과 + * + + {majors.map((major, idx) => ( +
+ 0 + ? `부전공 학과명 (예시: 컴퓨터공학부, 심리학과 등)` + : `주전공 학과명 (예시: 컴퓨터공학부, 심리학과 등)` + } + onChange={(e) => handleMajorChange(idx, e.target.value)} + value={major} + /> + {idx > 0 && ( + + )} +
+ ))} + + {!majorOk && ( +

+ 주전공은 필수 작성이며, 다전공은 총 6개 이하로 중복되지 않게 + 입력해주세요. +

+ )} +
+ +
+ + 이력서 + * + + + {cvFile ? ( +
+ {cvFile.name} + +
+ ) : ( +
+ +
fileInputRef.current?.click()} + > + + PDF 파일만 업로드 가능해요. +
+
+ )} +
+
+

선택 작성 항목

+ + 아래 항목은 필수로 작성하지 않아도 괜찮지만, 작성해 주시면 채용 담당자가 + 지원자의 강점을 이해하는 데 더욱 도움이 되어요. + +
+ 희망 직무 + {positions.map((pos, idx) => ( +
+ handlePositionChange(idx, e.target.value)} + /> + {idx > 0 && ( + + )} +
+ ))} + + + + {!positionsOk && ( +

+ 중복되지 않는 100자 이내의 직무명을 작성해주세요. +

+ )} +
+
+ + {!canSave && ( +

+ 필수 입력란들을 조건에 맞게 입력했는지 다시 한번 확인해주세요. +

+ )} + +
+
+ ); +}; + +export default CreateProfile; diff --git a/src/components/Profile.tsx b/src/components/Profile.tsx new file mode 100644 index 0000000..3e98f66 --- /dev/null +++ b/src/components/Profile.tsx @@ -0,0 +1,90 @@ +import { FaLink } from 'react-icons/fa6'; +import { Link } from 'react-router-dom'; +import { useProfile } from '../contexts/ProfileContext'; +import styles from '../styles/Profile.module.css'; + +const Profile = () => { + const { loading, profile } = useProfile(); + + return ( +
+ {loading ? ( +

loading ...

+ ) : profile ? ( +
+
+

{profile.name}

+

{profile.email}

+

+ {profile.department.split(',').join('∙')}{' '} + {profile.enrollYear - 2000}학번 +

+
+
+
+ {(profile.positions || + profile.stacks || + profile.explanation || + profile.links) &&

기본 정보

} + + {profile.positions && ( +
+

희망 직무

+ {profile.positions.join(', ')} +
+ )} + + {profile.stacks && ( +
+

기술 스택

+
    + {profile.stacks.map((stack) => ( +
  • + {stack} +
  • + ))} +
+
+ )} + + {profile.explanation && ( +
+

자기소개

+

{profile.explanation}

+
+ )} + + {profile.links && ( + + )} +
+
+ ) : ( +
+

+ 아직 프로필이 등록되지 않았어요! +

+

+ 기업에 소개할 나의 정보를 작성해서 나를 소개해보세요. +

+ + 지금 바로 프로필 작성하기 + +
+ )} +
+ ); +}; +export default Profile; diff --git a/src/contexts/ProfileContext.tsx b/src/contexts/ProfileContext.tsx new file mode 100644 index 0000000..04d44a1 --- /dev/null +++ b/src/contexts/ProfileContext.tsx @@ -0,0 +1,76 @@ +import { isAxiosError } from 'axios'; +import { + createContext, + useCallback, + useContext, + useEffect, + useState, +} from 'react'; +import apiClient from '../api'; +import type { ProfileResponse } from '../types'; + +interface ProfileContextType { + profile: ProfileResponse | null; + loading: boolean; + error: string | null; + fetchProfile: () => Promise; +} + +const ProfileContext = createContext(undefined); + +export const ProfileContextProvider = ({ + children, +}: { children: React.ReactNode }) => { + const [profile, setProfile] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const fetchProfile = useCallback(async () => { + setLoading(true); + setError(null); + + try { + const response = await apiClient.get('/api/applicant/me'); + setProfile(response.data); + } catch (e) { + if (isAxiosError(e) && e.response) { + const code = (e.response.data as { code?: string }).code; + + if (code === 'APPLICANT_002') { + setProfile(null); // 프로필 없음 + } else { + setError(`API Error: ${code}`); + } + } else { + setError('Unknown error'); + } + } finally { + setLoading(false); + } + }, []); + + useEffect(() => { + fetchProfile(); + }, [fetchProfile]); + + return ( + + {children} + + ); +}; + +export const useProfile = () => { + const ctx = useContext(ProfileContext); + if (!ctx) { + throw new Error('useProfile must be used within a ProfileProvider'); + } + return ctx; +}; diff --git a/src/styles/Bookmark.module.css b/src/styles/Bookmark.module.css new file mode 100644 index 0000000..37840ef --- /dev/null +++ b/src/styles/Bookmark.module.css @@ -0,0 +1,56 @@ +.container { + display: flex; + gap: 1rem; + flex-direction: column; +} + +.card { + border: 1px solid #e0e0e0; + border-radius: 8px; + padding: 1.5rem; + background-color: #fff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); + display: flex; + justify-content: space-between; + align-items: center; + flex-shrink: 0; + height: 100px; +} + +.header { + display: flex; + align-items: center; + gap: 0.75rem; + margin-bottom: 1rem; +} + +.companyName { + font-size: 1.1rem; + font-weight: bold; + margin: 0; +} + +.positionTitle { + font-size: 1.25rem; + margin: 0 0 1.5rem 0; +} + +.footer { + text-align: right; + margin-top: -1rem; +} + +.details { + display: flex; + flex-direction: column; + align-items: flex-end; +} +.deadline { + color: red; + font-weight: bold; +} + +.recruiting { + color: royalblue; + font-weight: bold; +} diff --git a/src/styles/CreateProfile.module.css b/src/styles/CreateProfile.module.css new file mode 100644 index 0000000..1026012 --- /dev/null +++ b/src/styles/CreateProfile.module.css @@ -0,0 +1,8 @@ +#main { + display: flex; + flex-direction: column; +} + +label { + min-width: 50px; +} \ No newline at end of file diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css new file mode 100644 index 0000000..0f12938 --- /dev/null +++ b/src/styles/Home.module.css @@ -0,0 +1,306 @@ +.main { + display: flex; + flex-direction: column; + padding: 16px 30px; +} +.panelWrapper { + flex-direction: column; + align-items: flex-start; + justify-content: flex-start; + width: 100%; +} + +.contentWrapper { + display: flex; + flex-direction: row; + gap: 20px; + width: 100%; + margin: 0 auto; + max-width: 1200px; + padding: 0 16px; +} + +.filterContainer { + flex: 0; +} + +.postsArea { + flex: 1; + min-width: 0; +} + +.accordion { + background-color: #eee; + color: #444; + cursor: pointer; + padding: 16px 24px; + width: 100%; + display: flex; + flex-direction: row; + border: none; + outline: none; + transition: 0.4s; + justify-content: space-between; + font-size: 18px; + font-weight: 700; +} + +.filterContainer button { + padding: 16px 18px 16px 0px; +} +.accordion span { + min-width: 140px; + margin-right: 10px; +} + +.active, +.accordion:hover { + background-color: #ccc; +} + +.panel { + padding: 0 18px; + background-color: white; + overflow: hidden; +} + +.panel div { + margin-bottom: 6px; + font-size: 18px; +} +.panel section { + margin-top: 12px; +} + +ul.chips { + margin: 30px 0 50px; + list-style: none; + display: flex; + gap: 6px; + flex-wrap: wrap; + align-content: center; +} + +.chip { + margin-right: 6px; + float: left; + padding: 4px; + justify-content: center; +} + +.postList { + display: flex; + flex-wrap: wrap; + gap: 20px; + justify-content: space-between; + align-items: flex-start; +} + +.postList > * { + flex: 1 1 calc(33.333% - 20px); + max-width: calc(33.333% - 20px); +} + +@media (max-width: 1000px) { + .postList > * { + flex: 1 1 calc(50% - 20px); + max-width: calc(50% - 20px); + } +} + +@media (max-width: 768px) { + .contentWrapper { + flex-direction: column; + padding: 0 12px; + } + .postList { + gap: 16px; + } + .postList > * { + flex: 1 1 100%; + max-width: 100%; + } +} + +.pagination { + display: flex; + justify-content: center; + align-items: center; + gap: 5px; + margin-top: 20px; +} + +.pagination button { + padding: 6px 10px; + border: 1px solid #dee2e6; + border-radius: 4px; + background-color: #ffffff; + color: #212529; + cursor: pointer; + transition: background-color 0.2s, border-color 0.2s, color 0.2s; + font-size: 14px; + min-width: 32px; + text-align: center; +} + +.pagination button:hover:not(:disabled) { + background-color: #f8f9fa; + border-color: #adb5bd; +} + +.pagination button:disabled { + cursor: not-allowed; + opacity: 0.6; + background-color: #f8f9fa; + border-color: #e9ecef; + color: #adb5bd; +} + +.pagination button.activePage { + background-color: #555; + color: white; + border-color: rgba(217, 217, 217, 1); +} + +.modalTrigger { + position: relative; +} +.modal { + position: absolute; + top: calc(100% + 8px); + left: 0; + background-color: white; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + padding: 16px; + width: 250px; + z-index: 1000; + cursor: default; +} + +.modalOptions { + display: flex; + flex-direction: column; + gap: 12px; + padding-bottom: 16px; +} +.radioLabel { + display: inline-flex; + align-items: center; + gap: 8px; + cursor: pointer; +} +.modalOptions label { + display: inline-flex; + align-items: center; + gap: 8px; + cursor: pointer; +} + +.modalActions { + display: flex; + justify-content: flex-end; + gap: 8px; + border-top: 1px solid #f0f0f0; + padding-top: 16px; +} + +.btn { + border: none; + border-radius: 6px; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; + cursor: pointer; +} +.btnReset { + background-color: #f1f2f5; + color: #555; +} +.btnApply { + background-color: #333; + color: white; +} + +.radioLabel input[type="radio"] { + display: none; +} +.radioVisual { + width: 18px; + height: 18px; + border-radius: 50%; + border: 2px solid #ccc; + display: grid; + place-items: center; + transition: all 0.2s; +} +.radioVisual::before { + content: ""; + width: 10px; + height: 10px; + border-radius: 50px; + background-color: #555; + transform: scale(0); + transition: all 0.2s; +} +.radioLabel input[type="radio"]:checked + .radioVisual { + border-color: #555; +} +.radioLabel input[type="radio"]:checked + .radioVisual::before { + transform: scale(1); +} + +[type="checkbox"] { + appearance: none; + box-sizing: border-box; + background-clip: content-box; + width: 1.25em; + height: 1.25em; + border: 1px solid rgba(72, 76, 83, 1); + border-radius: 3px; + cursor: pointer; +} + +[type="checkbox"]:checked { + border-color: rgba(72, 76, 83, 1); + background-color: rgba(72, 76, 83, 1); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 8' fill='none'%3E%3Cpath d='M1 3.5L4.5 7L9.5 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-position: center; + background-repeat: no-repeat; + background-size: 0.75em; +} + +/* --- Modal Styles (Login Confirmation) --- */ +.modalBackdrop { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.modalContent { + background-color: white; + padding: 24px; + border-radius: 8px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); + text-align: center; + width: 90%; + max-width: 320px; +} + +.modalContent p { + margin: 0 0 16px; + font-size: 16px; +} + +.modalActions { + display: flex; + gap: 12px; + justify-content: center; +} diff --git a/src/styles/InternCard.module.css b/src/styles/InternCard.module.css new file mode 100644 index 0000000..f975c68 --- /dev/null +++ b/src/styles/InternCard.module.css @@ -0,0 +1,90 @@ +.card { + border: 1px solid #e0e0e0; + border-radius: 8px; + padding: 16px; + margin-bottom: 16px; + background-color: #fff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); + transition: box-shadow 0.2s ease-in-out; + display: flex; + flex-direction: column; + gap: 12px; + width: 100%; +} + +.card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.header { + display: flex; + align-items: flex-start; + gap: 12px; +} + +.logo { + width: 48px; + height: 48px; + border-radius: 4px; + background-color: #e0e0e0; +} + +.titleGroup { + flex: 1; + display: flex; + justify-content: center; + flex-direction: column; + margin-top: 10px; +} + +.companyName { + font-size: 16px; + font-weight: 600; + margin: 0; +} + +.positionTitle { + font-size: 14px; + color: #555; + margin: 4px 0 0; +} + +.bookmarkBtn { + background: none; + border: none; + cursor: pointer; + padding: 4px; + font-size: 20px; +} + +.body { + display: flex; + gap: 8px; + flex-wrap: wrap; +} + +.tag { + background-color: #f0f0f0; + color: #333; + padding: 4px 8px; + border-radius: 4px; + font-size: 12px; +} + +.footer { + display: flex; + justify-content: flex-end; + align-items: center; +} + +.dDay { + font-size: 14px; + font-weight: 500; + color: #888; +} + +.deadline { + font-size: 14px; + font-weight: 500; + color: #888; +} diff --git a/src/styles/MyPage.module.css b/src/styles/MyPage.module.css new file mode 100644 index 0000000..72a3683 --- /dev/null +++ b/src/styles/MyPage.module.css @@ -0,0 +1,64 @@ +.container { + width: 768px; + margin: 0rem auto auto; + padding: 2rem; + border-radius: 8px; +} + +.title { + font-size: 2rem; + font-weight: bold; + margin-bottom: 2rem; +} + +.menu { + display: flex; + gap: 1rem; +} + +.menu button { + background: none; + border: none; + padding: 1rem; + cursor: pointer; + font-size: 1rem; + color: #888; + border-bottom: 2px solid transparent; +} + +.menu button:hover { + background-color: #f0f0f0; +} + +.menu button.active { + color: #333; + font-weight: bold; + border-bottom: 2px solid #ccc; +} + +.content { + padding: 1rem 2rem; +} + +.menuHeader { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #e0e0e0; + margin-bottom: 2rem; +} + +.createProfileButton { + background-color: #f0f0f0; + color: #333; + border: none; + border-radius: 8px; + padding: 0.75rem 1rem; + font-size: 0.9rem; + font-weight: 500; + cursor: pointer; +} + +.createProfileButton:hover { + background-color: #e0e0e0; +} \ No newline at end of file diff --git a/src/styles/Profile.module.css b/src/styles/Profile.module.css new file mode 100644 index 0000000..28a13ad --- /dev/null +++ b/src/styles/Profile.module.css @@ -0,0 +1,128 @@ +#main { + display: flex; + flex-direction: column; +} + +label { + min-width: 50px; +} + +.createProfileButton { + background-color: #f0f0f0; + color: #333; + border: none; + border-radius: 8px; + padding: 0.75rem 1rem; + font-size: 0.9rem; + font-weight: 500; + cursor: pointer; +} + +h2.title { + font-weight: 700; + font-size: 32px; +} + +h3.title { + font-weight: 700; + font-size: 18px; +} + +h4.title { + color: rgba(72, 76, 83, 1); + font-weight: 700; + font-size: 16px; +} + +span.title { + color: rgba(72, 76, 83, 1); + font-size: 14px; +} + +.redText { + color: red; +} + +.hide { + display: none; +} + +.fileInput { + border: 1px solid #555; + color: #555; + border-radius: 4px; +} +.stackChips { + list-style: none; + display: flex; + gap: 6px; + flex-wrap: wrap; + padding: 0px 16px 16px 16px; + margin: 0px; +} + +.stackChip { + margin-right: 6px; + font-size: 13px; + color: rgba(72, 76, 83, 1); + float:left; + border: 1px, solid, rgba(232, 235, 239, 1); + border-radius: 4px; + padding: 6px 8px 6px 8px; +} + +.link { + background-color: rgba(119, 127, 139, 1); + padding: 6px 10px 6px 10px; + border-radius: 4px; +} + +.smallText { + color: rgb(95, 99, 107); + font-size: 10px; + font-weight: 500; +} + +.bodyText { + color: rgba(56, 59, 65, 1); + font-size: 12px; + font-weight: 500; +} + +.profilePromptContainer { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 4rem 0; +} + +.promptTitle { + font-size: 1.5rem; + font-weight: bold; + margin: 0 0 1rem 0; +} + +.promptSubtitle { + font-size: 1rem; + color: #555; + margin: 0 0 2rem 0; +} + +.promptButton { + background-color: #333; + color: white; + border: none; + border-radius: 8px; + font-size: 1.1rem; + font-weight: bold; + cursor: pointer; + min-width: 300px; +} + +.promptButton:hover { + background-color: #000000; +} +.createProfileButton:hover { + background-color: #e0e0e0; +} \ No newline at end of file diff --git a/src/styles/style.css b/src/styles/style.css new file mode 100644 index 0000000..edd2b4c --- /dev/null +++ b/src/styles/style.css @@ -0,0 +1,171 @@ +/* Global Resets and Body Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + background-color: #ffffff; /* 흰색 배경 */ + color: #000000; /* 검정 글씨 */ + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Helvetica Neue", Arial, sans-serif; + line-height: 1.6; +} + +/* Main App Container */ +#root { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +.col { + display: flex; + flex-direction: column; + gap: 8px; +} + + +.row { + display: flex; + flex-direction: row; + align-items: center; + gap: 8px; +} + +main { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + padding: 2rem; +} + +/* Topbar Styling */ +.topbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 2rem; + background-color: #f8f9fa; + border-bottom: 1px solid #dee2e6; +} + +.topbar-logo { + font-size: 1.5rem; + font-weight: bold; + text-decoration: none; + color: #000000; +} + +.topbar-auth { + display: flex; + align-items: center; +} + +.topbar-auth a, +.topbar-user span { + margin-left: 1rem; + text-decoration: none; + color: #000000; +} + +.topbar-auth button { + margin-left: 1rem; +} + +/* Form Container (for Login and Signup) */ +.form-container { + width: 100%; + max-width: 400px; + padding: 2rem; + border: 1px solid #e9ecef; + border-radius: 8px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); +} + +.form-container h1 { + text-align: center; + margin-bottom: 1.5rem; +} + +/* Form Group Styling */ +.form-group { + margin-bottom: 1.25rem; +} + +.form-group label { + display: block; + margin-bottom: 0.5rem; + font-weight: 500; +} + +/* Input Fields */ +input[type="text"], +input[type="password"], +input[type="email"] { + width: 100%; + padding: 0.75rem; + border: 1px solid #ccc; /* 얇은 회색 테두리 */ + border-radius: 4px; + font-size: 1rem; +} + +input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); +} + +/* General Button Styling */ +button, +.btn { + display: inline-block; + padding: 0.75rem 1.25rem; + border: none; + background-color: #007bff; /* 파란색 배경 */ + color: #ffffff; /* 흰색 글씨 */ + border-radius: 4px; + cursor: pointer; + font-size: 1rem; + text-decoration: none; + text-align: center; + transition: background-color 0.2s ease-in-out; +} + +button:hover, +.btn:hover { + background-color: #0056b3; +} + +button:disabled, +.btn:disabled { + background-color: #66aaff; + cursor: not-allowed; +} + +/* Full-width button for forms */ +.btn-block { + width: 100%; + margin-top: 1rem; +} + +/* Link Styling */ +a { + color: #007bff; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +/* Utility classes */ +.text-center { + text-align: center; +} + +.mt-1 { + margin-top: 1rem; +} diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..97cc203 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,71 @@ +export interface SignupData { + name: string; + email: string; + password: string; +} + +export interface LoginData { + email: string; + password: string; +} + +interface ApiAuthor { + id: string; + name: string; + profileImageKey: string; +} + +interface ApiTag { + tag: string; +} + +export interface ApiPost { + id: string; + author: ApiAuthor; + companyName: string; + profileImageKey: string; + location: string; + employmentEndDate: string; + positionTitle: string; + domain: string; + slogan: string; + detailSummary: string; + positionType: string; + headCount: number; + isBookmarked: boolean; + createdAt: string; + updatedAt: string; + tags: ApiTag[]; + coffeeChatCount: number; +} + +export interface Post { + id: string; + companyName: string; + profileImageKey: string; + employmentEndDate: string; + positionTitle: string; + domain: string; + detailSummary: string; + positionType: string; + isBookmarked: boolean; +} + +export interface ProfileResponse { + id: string; + name: string; + createdAt: string; // iso date string + updatedAt: string; + userRole: string; + email: string; + enrollYear: number; + department: string; + positions?: string[]; + slogan?: string; + explanation?: string; + stacks?: string[]; + imageKey: string[]; + cvKey: string; + portfolioKey: string; + links?: { description: string; link: string }[]; +} From c2fcfbc60d03131f07c5939209fe199c9df35868 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Sat, 22 Nov 2025 16:06:53 +0900 Subject: [PATCH 13/18] Restore stashed changes --- .vscode/settings.json | 3 + src/App.tsx | 24 +- src/Home.module.css | 306 ---- src/InternCard.module.css | 90 - src/components/Bookmark.tsx | 4 +- src/components/Home.tsx | 2 +- src/components/InternCard.tsx | 4 +- src/components/MyPage.tsx | 29 +- src/contexts/AuthContext.tsx | 2 +- src/contexts/PostContext.tsx | 32 +- src/main.tsx | 2 +- src/style.css | 169 -- src/types/types.ts | 22 - yarn.lock | 3230 +++++++-------------------------- 14 files changed, 714 insertions(+), 3205 deletions(-) delete mode 100644 src/Home.module.css delete mode 100644 src/InternCard.module.css delete mode 100644 src/style.css delete mode 100644 src/types/types.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 54e93ca..4b04c24 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,8 @@ "quickfix.biome": "explicit", "source.fixAll.biome": "explicit", "source.organizeImports.biome": "explicit" + }, + "files.watcherExclude": { + "**/target": true } } diff --git a/src/App.tsx b/src/App.tsx index 416f387..5da1a7b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,25 +1,31 @@ import { Route, BrowserRouter as Router, Routes } from 'react-router-dom'; +import CreateProfile from './components/CreateProfile'; import Home from './components/Home'; import Login from './components/Login'; import MyPage from './components/MyPage'; import Signup from './components/Signup'; import Topbar from './components/Topbar'; + import { AuthProvider } from './contexts/AuthContext'; import { PostProvider } from './contexts/PostContext'; +import { ProfileContextProvider } from './contexts/ProfileContext'; const App = () => ( - -
- - } /> - } /> - } /> - } /> - -
+ + +
+ + } /> + } /> + } /> + } /> + } /> + +
+
diff --git a/src/Home.module.css b/src/Home.module.css deleted file mode 100644 index 795538c..0000000 --- a/src/Home.module.css +++ /dev/null @@ -1,306 +0,0 @@ -.main { - display: flex; - flex-direction: column; - padding: 16px 30px; -} -.panelWrapper { - flex-direction: column; - align-items: flex-start; - justify-content: flex-start; - width: 100%; -} - -.contentWrapper { - display: flex; - flex-direction: row; - gap: 20px; - width: 100%; - margin: 0 auto; - max-width: 1200px; - padding: 0 16px; -} - -.filterContainer { - flex: 0; -} - -.postsArea { - flex: 1; - min-width: 0; -} -.accordion { - background-color: #eee; - color: #444; - cursor: pointer; - padding: 18px; - width: 100%; - display: flex; - flex-direction: row; - border: none; - outline: none; - transition: 0.4s; - justify-content: space-between; - - font-size: 18px; - font-weight: 700; -} - -.filterContainer button { - padding: 16px 18px 16px 0px; -} -.accordion span { - min-width: 140px; - margin-right: 10px; -} - -.active, -.accordion:hover { - background-color: #ccc; -} - -.panel { - padding: 0 18px; - background-color: white; - overflow: hidden; -} - -.panel div { - margin-bottom: 6px; - font-size: 18px; -} -.panel section { - margin-top: 12px; -} - -ul.chips { - margin: 30px 0 50px; - list-style: none; - display: flex; - gap: 6px; - flex-wrap: wrap; - align-content: center; -} - -.chip { - margin-right: 6px; - float: left; - padding: 4px; - justify-content: center; -} - -.postList { - display: flex; - flex-wrap: wrap; - gap: 20px; - justify-content: space-between; - align-items: flex-start; -} - -.postList > * { - flex: 1 1 calc(33.333% - 20px); - max-width: calc(33.333% - 20px); -} - -@media (max-width: 1000px) { - .postList > * { - flex: 1 1 calc(50% - 20px); - max-width: calc(50% - 20px); - } -} - -@media (max-width: 768px) { - .contentWrapper { - flex-direction: column; - padding: 0 12px; - } - .postList { - gap: 16px; - } - .postList > * { - flex: 1 1 100%; - max-width: 100%; - } -} - -.pagination { - display: flex; - justify-content: center; - align-items: center; - gap: 5px; - margin-top: 20px; -} - -.pagination button { - padding: 6px 10px; - border: 1px solid #dee2e6; - border-radius: 4px; - background-color: #ffffff; - color: #212529; - cursor: pointer; - transition: background-color 0.2s, border-color 0.2s, color 0.2s; - font-size: 14px; - min-width: 32px; - text-align: center; -} - -.pagination button:hover:not(:disabled) { - background-color: #f8f9fa; - border-color: #adb5bd; -} - -.pagination button:disabled { - cursor: not-allowed; - opacity: 0.6; - background-color: #f8f9fa; - border-color: #e9ecef; - color: #adb5bd; -} - -.pagination button.activePage { - background-color: #555; - color: white; - border-color: rgba(217, 217, 217, 1); -} - -.modalTrigger { - position: relative; -} -.modal { - position: absolute; - top: calc(100% + 8px); - left: 0; - background-color: white; - border-radius: 12px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - padding: 16px; - width: 250px; - z-index: 1000; - cursor: default; -} - -.modalOptions { - display: flex; - flex-direction: column; - gap: 12px; - padding-bottom: 16px; -} -.radioLabel { - display: inline-flex; - align-items: center; - gap: 8px; - cursor: pointer; -} -.modalOptions label { - display: inline-flex; - align-items: center; - gap: 8px; - cursor: pointer; -} - -.modalActions { - display: flex; - justify-content: flex-end; - gap: 8px; - border-top: 1px solid #f0f0f0; - padding-top: 16px; -} - -.btn { - border: none; - border-radius: 6px; - padding: 8px 16px; - font-size: 14px; - font-weight: 500; - cursor: pointer; -} -.btnReset { - background-color: #f1f2f5; - color: #555; -} -.btnApply { - background-color: #333; - color: white; -} - -.radioLabel input[type="radio"] { - display: none; -} -.radioVisual { - width: 18px; - height: 18px; - border-radius: 50%; - border: 2px solid #ccc; - display: grid; - place-items: center; - transition: all 0.2s; -} -.radioVisual::before { - content: ""; - width: 10px; - height: 10px; - border-radius: 50px; - background-color: #555; - transform: scale(0); - transition: all 0.2s; -} -.radioLabel input[type="radio"]:checked + .radioVisual { - border-color: #555; -} -.radioLabel input[type="radio"]:checked + .radioVisual::before { - transform: scale(1); -} - -[type="checkbox"] { - appearance: none; - box-sizing: border-box; - background-clip: content-box; - width: 1.25em; - height: 1.25em; - border: 1px solid rgba(72, 76, 83, 1); - border-radius: 3px; - cursor: pointer; -} - -[type="checkbox"]:checked { - border-color: rgba(72, 76, 83, 1); - background-color: rgba(72, 76, 83, 1); - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 8' fill='none'%3E%3Cpath d='M1 3.5L4.5 7L9.5 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); - background-position: center; - background-repeat: no-repeat; - background-size: 0.75em; -} - -/* --- Modal Styles (Login Confirmation) --- */ -.modalBackdrop { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; - z-index: 1000; -} - -.modalContent { - background-color: white; - padding: 24px; - border-radius: 8px; - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); - text-align: center; - width: 90%; - max-width: 320px; -} - -.modalContent p { - margin: 0 0 16px; - font-size: 16px; -} - -.modalActions { - display: flex; - gap: 12px; - justify-content: center; -} diff --git a/src/InternCard.module.css b/src/InternCard.module.css deleted file mode 100644 index f975c68..0000000 --- a/src/InternCard.module.css +++ /dev/null @@ -1,90 +0,0 @@ -.card { - border: 1px solid #e0e0e0; - border-radius: 8px; - padding: 16px; - margin-bottom: 16px; - background-color: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); - transition: box-shadow 0.2s ease-in-out; - display: flex; - flex-direction: column; - gap: 12px; - width: 100%; -} - -.card:hover { - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); -} - -.header { - display: flex; - align-items: flex-start; - gap: 12px; -} - -.logo { - width: 48px; - height: 48px; - border-radius: 4px; - background-color: #e0e0e0; -} - -.titleGroup { - flex: 1; - display: flex; - justify-content: center; - flex-direction: column; - margin-top: 10px; -} - -.companyName { - font-size: 16px; - font-weight: 600; - margin: 0; -} - -.positionTitle { - font-size: 14px; - color: #555; - margin: 4px 0 0; -} - -.bookmarkBtn { - background: none; - border: none; - cursor: pointer; - padding: 4px; - font-size: 20px; -} - -.body { - display: flex; - gap: 8px; - flex-wrap: wrap; -} - -.tag { - background-color: #f0f0f0; - color: #333; - padding: 4px 8px; - border-radius: 4px; - font-size: 12px; -} - -.footer { - display: flex; - justify-content: flex-end; - align-items: center; -} - -.dDay { - font-size: 14px; - font-weight: 500; - color: #888; -} - -.deadline { - font-size: 14px; - font-weight: 500; - color: #888; -} diff --git a/src/components/Bookmark.tsx b/src/components/Bookmark.tsx index ed86384..573b8f3 100644 --- a/src/components/Bookmark.tsx +++ b/src/components/Bookmark.tsx @@ -1,8 +1,8 @@ import { useEffect } from 'react'; import { FaBookmark } from 'react-icons/fa6'; -import styles from '../Bookmark.module.css'; import { usePosts } from '../contexts/PostContext'; -import type { Post } from '../types/types'; +import styles from '../styles/Bookmark.module.css'; +import type { Post } from '../types'; const Bookmark = () => { const { bookmarkedPosts, getBookmark, isLoading } = usePosts(); diff --git a/src/components/Home.tsx b/src/components/Home.tsx index 2bc58dd..3fca30b 100644 --- a/src/components/Home.tsx +++ b/src/components/Home.tsx @@ -1,8 +1,8 @@ import { type ChangeEvent, useEffect, useState } from 'react'; import { FaAngleDown, FaAngleUp, FaArrowRotateRight } from 'react-icons/fa6'; import { useNavigate } from 'react-router-dom'; -import styles from '../Home.module.css'; import { encodeQueryParams, usePosts } from '../contexts/PostContext'; +import styles from '../styles/Home.module.css'; import InternCard from './InternCard'; type OpenDropdownType = 'rec' | 'dm' | 'new' | null; diff --git a/src/components/InternCard.tsx b/src/components/InternCard.tsx index 6053fe0..d5bab17 100644 --- a/src/components/InternCard.tsx +++ b/src/components/InternCard.tsx @@ -1,8 +1,8 @@ import { FaBookmark, FaRegBookmark } from 'react-icons/fa6'; -import styles from '../InternCard.module.css'; import { useAuth } from '../contexts/AuthContext'; import { usePosts } from '../contexts/PostContext'; -import type { Post } from '../types/types'; +import styles from '../styles/InternCard.module.css'; +import type { Post } from '../types'; interface InternCardProps { post: Post; diff --git a/src/components/MyPage.tsx b/src/components/MyPage.tsx index 2450e8e..c274fdd 100644 --- a/src/components/MyPage.tsx +++ b/src/components/MyPage.tsx @@ -1,9 +1,16 @@ import { useState } from 'react'; -import styles from '../MyPage.module.css'; +import { Link } from 'react-router-dom'; +import { useProfile } from '../contexts/ProfileContext'; +import styles from '../styles/MyPage.module.css'; import Bookmark from './Bookmark'; +import Profile from './Profile'; const MyPage = () => { - const [activeTab, setActiveTab] = useState('bookmarks'); + const { profile } = useProfile(); + + const [activeTab, setActiveTab] = useState<'myinfo' | 'bookmarks'>( + 'bookmarks' + ); return (
@@ -26,9 +33,9 @@ const MyPage = () => {
{activeTab === 'myinfo' && ( - + + {profile ? '내 프로필 수정' : '내 프로필 생성'} + )}
@@ -38,17 +45,7 @@ const MyPage = () => { ) : ( // 'myinfo' 페이지 // api로 프로필이 있는지 확인해야 함 -
-

- 아직 프로필이 등록되지 않았어요! -

-

- 기업에 소개할 나의 정보를 작성해서 나를 소개해보세요. -

- -
+ )}
diff --git a/src/contexts/AuthContext.tsx b/src/contexts/AuthContext.tsx index 7b21d22..7814aaf 100644 --- a/src/contexts/AuthContext.tsx +++ b/src/contexts/AuthContext.tsx @@ -6,7 +6,7 @@ import { useState, } from 'react'; import apiClient from '../api'; -import type { LoginData, SignupData } from '../types/types'; +import type { LoginData, SignupData } from '../types'; /* 통합 시 export 주석 해제하기 */ interface User { diff --git a/src/contexts/PostContext.tsx b/src/contexts/PostContext.tsx index 17c148f..adcce65 100644 --- a/src/contexts/PostContext.tsx +++ b/src/contexts/PostContext.tsx @@ -8,39 +8,9 @@ import { useState, } from 'react'; import apiClient from '../api'; -import type { Post } from '../types/types'; +import type { ApiPost, Post } from '../types'; import { useAuth } from './AuthContext'; -interface ApiAuthor { - id: string; - name: string; - profileImageKey: string; -} - -interface ApiTag { - tag: string; -} - -interface ApiPost { - id: string; - author: ApiAuthor; - companyName: string; - profileImageKey: string; - location: string; - employmentEndDate: string; // ISO date string - positionTitle: string; - domain: string; - slogan: string; - detailSummary: string; - positionType: string; - headCount: number; - isBookmarked: boolean; - createdAt: string; // This is an ISO date string - updatedAt: string; // This is an ISO date string - tags: ApiTag[]; - coffeeChatCount: number; -} - interface PostContextType { posts: Post[] | null; bookmarkedPosts: Post[] | null; // bookmark된 post diff --git a/src/main.tsx b/src/main.tsx index a30207f..ef0290f 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,7 +1,7 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; import App from './App'; -import './style.css'; +import './styles/style.css'; const rootElement = document.getElementById('root'); if (rootElement === null) { diff --git a/src/style.css b/src/style.css deleted file mode 100644 index 1f12d1b..0000000 --- a/src/style.css +++ /dev/null @@ -1,169 +0,0 @@ -/* Global Resets and Body Styles */ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: #ffffff; /* 흰색 배경 */ - color: #000000; /* 검정 글씨 */ - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - "Helvetica Neue", Arial, sans-serif; - line-height: 1.6; -} - -/* Main App Container */ -#root { - display: flex; - flex-direction: column; - min-height: 100vh; -} - -.col { - display: flex; - flex-direction: column; -} - -.row { - display: flex; - flex-direction: row; - align-items: center; - gap: 8px; -} - -main { - flex: 1; - display: flex; - justify-content: center; - align-items: center; - padding: 2rem; -} - -/* Topbar Styling */ -.topbar { - display: flex; - justify-content: space-between; - align-items: center; - padding: 1rem 2rem; - background-color: #f8f9fa; - border-bottom: 1px solid #dee2e6; -} - -.topbar-logo { - font-size: 1.5rem; - font-weight: bold; - text-decoration: none; - color: #000000; -} - -.topbar-auth { - display: flex; - align-items: center; -} - -.topbar-auth a, -.topbar-user span { - margin-left: 1rem; - text-decoration: none; - color: #000000; -} - -.topbar-auth button { - margin-left: 1rem; -} - -/* Form Container (for Login and Signup) */ -.form-container { - width: 100%; - max-width: 400px; - padding: 2rem; - border: 1px solid #e9ecef; - border-radius: 8px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); -} - -.form-container h1 { - text-align: center; - margin-bottom: 1.5rem; -} - -/* Form Group Styling */ -.form-group { - margin-bottom: 1.25rem; -} - -.form-group label { - display: block; - margin-bottom: 0.5rem; - font-weight: 500; -} - -/* Input Fields */ -input[type="text"], -input[type="password"], -input[type="email"] { - width: 100%; - padding: 0.75rem; - border: 1px solid #ccc; /* 얇은 회색 테두리 */ - border-radius: 4px; - font-size: 1rem; -} - -input:focus { - outline: none; - border-color: #007bff; - box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); -} - -/* General Button Styling */ -button, -.btn { - display: inline-block; - padding: 0.75rem 1.25rem; - border: none; - background-color: #007bff; /* 파란색 배경 */ - color: #ffffff; /* 흰색 글씨 */ - border-radius: 4px; - cursor: pointer; - font-size: 1rem; - text-decoration: none; - text-align: center; - transition: background-color 0.2s ease-in-out; -} - -button:hover, -.btn:hover { - background-color: #0056b3; -} - -button:disabled, -.btn:disabled { - background-color: #66aaff; - cursor: not-allowed; -} - -/* Full-width button for forms */ -.btn-block { - width: 100%; - margin-top: 1rem; -} - -/* Link Styling */ -a { - color: #007bff; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -/* Utility classes */ -.text-center { - text-align: center; -} - -.mt-1 { - margin-top: 1rem; -} diff --git a/src/types/types.ts b/src/types/types.ts deleted file mode 100644 index 0f99f6b..0000000 --- a/src/types/types.ts +++ /dev/null @@ -1,22 +0,0 @@ -export interface SignupData { - name: string; - email: string; - password: string; -} - -export interface LoginData { - email: string; - password: string; -} - -export interface Post { - id: string; - companyName: string; - profileImageKey: string; - employmentEndDate: string; - positionTitle: string; - domain: string; - detailSummary: string; - positionType: string; - isBookmarked: boolean; -} diff --git a/yarn.lock b/yarn.lock index f085877..fa3f6ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,2555 +1,675 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@biomejs/biome@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/biome@npm:1.9.4" - dependencies: - "@biomejs/cli-darwin-arm64": "npm:1.9.4" - "@biomejs/cli-darwin-x64": "npm:1.9.4" - "@biomejs/cli-linux-arm64": "npm:1.9.4" - "@biomejs/cli-linux-arm64-musl": "npm:1.9.4" - "@biomejs/cli-linux-x64": "npm:1.9.4" - "@biomejs/cli-linux-x64-musl": "npm:1.9.4" - "@biomejs/cli-win32-arm64": "npm:1.9.4" - "@biomejs/cli-win32-x64": "npm:1.9.4" - dependenciesMeta: - "@biomejs/cli-darwin-arm64": - optional: true - "@biomejs/cli-darwin-x64": - optional: true - "@biomejs/cli-linux-arm64": - optional: true - "@biomejs/cli-linux-arm64-musl": - optional: true - "@biomejs/cli-linux-x64": - optional: true - "@biomejs/cli-linux-x64-musl": - optional: true - "@biomejs/cli-win32-arm64": - optional: true - "@biomejs/cli-win32-x64": - optional: true - bin: - biome: bin/biome - checksum: 10c0/b5655c5aed9a6fffe24f7d04f15ba4444389d0e891c9ed9106fab7388ac9b4be63185852cc2a937b22940dac3e550b71032a4afd306925cfea436c33e5646b3e - languageName: node - linkType: hard - -"@biomejs/cli-darwin-arm64@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-darwin-arm64@npm:1.9.4" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@biomejs/cli-darwin-x64@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-darwin-x64@npm:1.9.4" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@biomejs/cli-linux-arm64-musl@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-linux-arm64-musl@npm:1.9.4" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@biomejs/cli-linux-arm64@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-linux-arm64@npm:1.9.4" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@biomejs/cli-linux-x64-musl@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-linux-x64-musl@npm:1.9.4" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@biomejs/cli-linux-x64@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-linux-x64@npm:1.9.4" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@biomejs/cli-win32-arm64@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-win32-arm64@npm:1.9.4" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@biomejs/cli-win32-x64@npm:1.9.4": - version: 1.9.4 - resolution: "@biomejs/cli-win32-x64@npm:1.9.4" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@emnapi/core@npm:^1.5.0": - version: 1.6.0 - resolution: "@emnapi/core@npm:1.6.0" - dependencies: - "@emnapi/wasi-threads": "npm:1.1.0" - tslib: "npm:^2.4.0" - checksum: 10c0/40e384f39104a9f8260e671c0110f8618961afc564afb2e626af79175717a8b5e2d8b2ae3d30194d318a71247e0fc833601666233adfeb244c46cadc06c58a51 - languageName: node - linkType: hard - -"@emnapi/runtime@npm:^1.5.0": - version: 1.6.0 - resolution: "@emnapi/runtime@npm:1.6.0" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/e3d2452a8fb83bb59fe60dfcf4cff99f9680c13c07dff8ad28639ccc8790151841ef626a67014bde132939bad73dfacc440ade8c3db2ab12693ea9c8ba4d37fb - languageName: node - linkType: hard - -"@emnapi/wasi-threads@npm:1.1.0": - version: 1.1.0 - resolution: "@emnapi/wasi-threads@npm:1.1.0" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1 - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/aix-ppc64@npm:0.25.10" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/android-arm64@npm:0.25.10" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/android-arm@npm:0.25.10" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/android-x64@npm:0.25.10" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/darwin-arm64@npm:0.25.10" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/darwin-x64@npm:0.25.10" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/freebsd-arm64@npm:0.25.10" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/freebsd-x64@npm:0.25.10" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-arm64@npm:0.25.10" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-arm@npm:0.25.10" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-ia32@npm:0.25.10" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-loong64@npm:0.25.10" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-mips64el@npm:0.25.10" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-ppc64@npm:0.25.10" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-riscv64@npm:0.25.10" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-s390x@npm:0.25.10" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/linux-x64@npm:0.25.10" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/netbsd-arm64@npm:0.25.10" - conditions: os=netbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/netbsd-x64@npm:0.25.10" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/openbsd-arm64@npm:0.25.10" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/openbsd-x64@npm:0.25.10" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openharmony-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/openharmony-arm64@npm:0.25.10" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/sunos-x64@npm:0.25.10" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/win32-arm64@npm:0.25.10" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/win32-ia32@npm:0.25.10" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.25.10": - version: 0.25.10 - resolution: "@esbuild/win32-x64@npm:0.25.10" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: "npm:^5.1.2" - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: "npm:^7.0.1" - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: "npm:^8.1.0" - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e - languageName: node - linkType: hard - -"@isaacs/fs-minipass@npm:^4.0.0": - version: 4.0.1 - resolution: "@isaacs/fs-minipass@npm:4.0.1" - dependencies: - minipass: "npm:^7.0.4" - checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 - languageName: node - linkType: hard - -"@napi-rs/wasm-runtime@npm:^1.0.5": - version: 1.0.7 - resolution: "@napi-rs/wasm-runtime@npm:1.0.7" - dependencies: - "@emnapi/core": "npm:^1.5.0" - "@emnapi/runtime": "npm:^1.5.0" - "@tybys/wasm-util": "npm:^0.10.1" - checksum: 10c0/2d8635498136abb49d6dbf7395b78c63422292240963bf055f307b77aeafbde57ae2c0ceaaef215601531b36d6eb92a2cdd6f5ba90ed2aa8127c27aff9c4ae55 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/agent@npm:3.0.0" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^10.0.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^4.0.0": - version: 4.0.0 - resolution: "@npmcli/fs@npm:4.0.0" - dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 - languageName: node - linkType: hard - -"@oxc-resolver/binding-android-arm-eabi@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.9.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@oxc-resolver/binding-android-arm64@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-android-arm64@npm:11.9.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@oxc-resolver/binding-darwin-arm64@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.9.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@oxc-resolver/binding-darwin-x64@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-darwin-x64@npm:11.9.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@oxc-resolver/binding-freebsd-x64@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.9.0" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.9.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.9.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-arm64-gnu@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.9.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-arm64-musl@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.9.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.9.0" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.9.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-riscv64-musl@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.9.0" - conditions: os=linux & cpu=riscv64 & libc=musl - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-s390x-gnu@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.9.0" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-x64-gnu@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.9.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@oxc-resolver/binding-linux-x64-musl@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.9.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@oxc-resolver/binding-wasm32-wasi@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.9.0" - dependencies: - "@napi-rs/wasm-runtime": "npm:^1.0.5" - conditions: cpu=wasm32 - languageName: node - linkType: hard - -"@oxc-resolver/binding-win32-arm64-msvc@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.9.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@oxc-resolver/binding-win32-ia32-msvc@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.9.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@oxc-resolver/binding-win32-x64-msvc@npm:11.9.0": - version: 11.9.0 - resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.9.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd - languageName: node - linkType: hard - -"@rolldown/pluginutils@npm:1.0.0-beta.27": - version: 1.0.0-beta.27 - resolution: "@rolldown/pluginutils@npm:1.0.0-beta.27" - checksum: 10c0/9658f235b345201d4f6bfb1f32da9754ca164f892d1cb68154fe5f53c1df42bd675ecd409836dff46884a7847d6c00bdc38af870f7c81e05bba5c2645eb4ab9c - languageName: node - linkType: hard - -"@rollup/rollup-android-arm-eabi@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.52.4" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-android-arm64@npm:4.52.4" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-darwin-arm64@npm:4.52.4" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-darwin-x64@npm:4.52.4" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-freebsd-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.52.4" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-freebsd-x64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-freebsd-x64@npm:4.52.4" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-musleabihf@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.52.4" - conditions: os=linux & cpu=arm & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.52.4" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-musl@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.52.4" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-loong64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.52.4" - conditions: os=linux & cpu=loong64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-ppc64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.52.4" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.52.4" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-musl@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.52.4" - conditions: os=linux & cpu=riscv64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-s390x-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.52.4" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.52.4" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-musl@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.52.4" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-openharmony-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.52.4" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-arm64-msvc@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.52.4" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.52.4" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.52.4" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-msvc@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.52.4" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-darwin-arm64@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-darwin-arm64@npm:1.13.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-darwin-x64@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-darwin-x64@npm:1.13.5" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-linux-arm-gnueabihf@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.13.5" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@swc/core-linux-arm64-gnu@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-linux-arm64-gnu@npm:1.13.5" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@swc/core-linux-arm64-musl@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-linux-arm64-musl@npm:1.13.5" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@swc/core-linux-x64-gnu@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-linux-x64-gnu@npm:1.13.5" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@swc/core-linux-x64-musl@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-linux-x64-musl@npm:1.13.5" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@swc/core-win32-arm64-msvc@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-win32-arm64-msvc@npm:1.13.5" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-win32-ia32-msvc@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-win32-ia32-msvc@npm:1.13.5" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@swc/core-win32-x64-msvc@npm:1.13.5": - version: 1.13.5 - resolution: "@swc/core-win32-x64-msvc@npm:1.13.5" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@swc/core@npm:^1.12.11": - version: 1.13.5 - resolution: "@swc/core@npm:1.13.5" - dependencies: - "@swc/core-darwin-arm64": "npm:1.13.5" - "@swc/core-darwin-x64": "npm:1.13.5" - "@swc/core-linux-arm-gnueabihf": "npm:1.13.5" - "@swc/core-linux-arm64-gnu": "npm:1.13.5" - "@swc/core-linux-arm64-musl": "npm:1.13.5" - "@swc/core-linux-x64-gnu": "npm:1.13.5" - "@swc/core-linux-x64-musl": "npm:1.13.5" - "@swc/core-win32-arm64-msvc": "npm:1.13.5" - "@swc/core-win32-ia32-msvc": "npm:1.13.5" - "@swc/core-win32-x64-msvc": "npm:1.13.5" - "@swc/counter": "npm:^0.1.3" - "@swc/types": "npm:^0.1.24" - peerDependencies: - "@swc/helpers": ">=0.5.17" - dependenciesMeta: - "@swc/core-darwin-arm64": - optional: true - "@swc/core-darwin-x64": - optional: true - "@swc/core-linux-arm-gnueabihf": - optional: true - "@swc/core-linux-arm64-gnu": - optional: true - "@swc/core-linux-arm64-musl": - optional: true - "@swc/core-linux-x64-gnu": - optional: true - "@swc/core-linux-x64-musl": - optional: true - "@swc/core-win32-arm64-msvc": - optional: true - "@swc/core-win32-ia32-msvc": - optional: true - "@swc/core-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@swc/helpers": - optional: true - checksum: 10c0/26efc58d2b154050a4d75b215007e2780fc02ccdd35168746e818ef58009201878d5fbe0e074ed2902858c447fd8806e52c03dd05c20ba8501573f57ef34c3be - languageName: node - linkType: hard - -"@swc/counter@npm:^0.1.3": - version: 0.1.3 - resolution: "@swc/counter@npm:0.1.3" - checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 - languageName: node - linkType: hard - -"@swc/types@npm:^0.1.24": - version: 0.1.25 - resolution: "@swc/types@npm:0.1.25" - dependencies: - "@swc/counter": "npm:^0.1.3" - checksum: 10c0/847a5b20b131281f89d640a7ed4887fb65724807d53d334b230e84b98c21097aa10cd28a074f9ed287a6ce109e443dd4bafbe7dcfb62333d7806c4ea3e7f8aca - languageName: node - linkType: hard - -"@tybys/wasm-util@npm:^0.10.1": - version: 0.10.1 - resolution: "@tybys/wasm-util@npm:0.10.1" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8 - languageName: node - linkType: hard - -"@types/estree@npm:1.0.8": - version: 1.0.8 - resolution: "@types/estree@npm:1.0.8" - checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 - languageName: node - linkType: hard - -"@types/node@npm:^22.15.29": - version: 22.18.9 - resolution: "@types/node@npm:22.18.9" - dependencies: - undici-types: "npm:~6.21.0" - checksum: 10c0/0d342e17e0b36a4475ba36f0a0b9d7e28cf85ae44b1ea1f218c8cffe8c9519820eef9b97c171b0b93d8066c8710d7660e31660678bac0842655dff2118a23248 - languageName: node - linkType: hard - -"@types/react-dom@npm:^19.1.2": - version: 19.2.1 - resolution: "@types/react-dom@npm:19.2.1" - peerDependencies: - "@types/react": ^19.2.0 - checksum: 10c0/0dbbc5b7ecd74681bfac95a413133b26118a70b8840748277abafa47e5c7a037beae6a660e6a21fb53f5cbdb0b2d33e117ea7bbd976a888c298392a8a96bc68f - languageName: node - linkType: hard - -"@types/react@npm:^19.1.2": - version: 19.2.2 - resolution: "@types/react@npm:19.2.2" - dependencies: - csstype: "npm:^3.0.2" - checksum: 10c0/f830b1204aca4634ce3c6cb3477b5d3d066b80a4dd832a4ee0069acb504b6debd2416548a43a11c1407c12bc60e2dc6cf362934a18fe75fe06a69c0a98cba8ab - languageName: node - linkType: hard - -"@vitejs/plugin-react-swc@npm:^3.9.0": - version: 3.11.0 - resolution: "@vitejs/plugin-react-swc@npm:3.11.0" - dependencies: - "@rolldown/pluginutils": "npm:1.0.0-beta.27" - "@swc/core": "npm:^1.12.11" - peerDependencies: - vite: ^4 || ^5 || ^6 || ^7 - checksum: 10c0/0d12ee81f8c8acb74b35e7acfc45d23ecc2714ab3a0f6060e4bd900a6a739dd5a9be9c6bc842388f3c406f475f2a83e7ff3ade04ec6df9172faa1242e4faa424 - languageName: node - linkType: hard - -"abbrev@npm:^3.0.0": - version: 3.0.1 - resolution: "abbrev@npm:3.0.1" - checksum: 10c0/21ba8f574ea57a3106d6d35623f2c4a9111d9ee3e9a5be47baed46ec2457d2eac46e07a5c4a60186f88cb98abbe3e24f2d4cca70bc2b12f1692523e2209a9ccf - languageName: node - linkType: hard - -"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": - version: 7.1.4 - resolution: "agent-base@npm:7.1.4" - checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.2.2 - resolution: "ansi-regex@npm:6.2.2" - checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: "npm:^2.0.1" - checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0": - version: 6.2.3 - resolution: "ansi-styles@npm:6.2.3" - checksum: 10c0/23b8a4ce14e18fb854693b95351e286b771d23d8844057ed2e7d083cd3e708376c3323707ec6a24365f7d7eda3ca00327fe04092e29e551499ec4c8b7bfac868 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d - languageName: node - linkType: hard - -"axios@npm:^1.12.2": - version: 1.12.2 - resolution: "axios@npm:1.12.2" - dependencies: - follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.4" - proxy-from-env: "npm:^1.1.0" - checksum: 10c0/80b063e318cf05cd33a4d991cea0162f3573481946f9129efb7766f38fde4c061c34f41a93a9f9521f02b7c9565ccbc197c099b0186543ac84a24580017adfed - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.2 - resolution: "brace-expansion@npm:2.0.2" - dependencies: - balanced-match: "npm:^1.0.0" - checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf - languageName: node - linkType: hard - -"braces@npm:^3.0.3": - version: 3.0.3 - resolution: "braces@npm:3.0.3" - dependencies: - fill-range: "npm:^7.1.1" - checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 - languageName: node - linkType: hard - -"cacache@npm:^19.0.1": - version: 19.0.1 - resolution: "cacache@npm:19.0.1" - dependencies: - "@npmcli/fs": "npm:^4.0.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^10.0.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^7.0.2" - ssri: "npm:^12.0.0" - tar: "npm:^7.4.3" - unique-filename: "npm:^4.0.0" - checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c - languageName: node - linkType: hard - -"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind-apply-helpers@npm:1.0.2" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 - languageName: node - linkType: hard - -"chownr@npm:^3.0.0": - version: 3.0.0 - resolution: "chownr@npm:3.0.0" - checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: "npm:~1.1.4" - checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 - languageName: node - linkType: hard - -"color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 - languageName: node - linkType: hard - -"cookie@npm:^1.0.1": - version: 1.0.2 - resolution: "cookie@npm:1.0.2" - checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.6": - version: 7.0.6 - resolution: "cross-spawn@npm:7.0.6" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2": - version: 3.1.3 - resolution: "csstype@npm:3.1.3" - checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.3.4": - version: 4.4.3 - resolution: "debug@npm:4.4.3" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 - languageName: node - linkType: hard - -"dunder-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "dunder-proto@npm:1.0.1" - dependencies: - call-bind-apply-helpers: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - gopd: "npm:^1.2.0" - checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.1": - version: 1.0.1 - resolution: "es-define-property@npm:1.0.1" - checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c - languageName: node - linkType: hard - -"es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 - languageName: node - linkType: hard - -"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": - version: 1.1.1 - resolution: "es-object-atoms@npm:1.1.1" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.1.0": - version: 2.1.0 - resolution: "es-set-tostringtag@npm:2.1.0" - dependencies: - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.2" - checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af - languageName: node - linkType: hard - -"esbuild@npm:^0.25.0": - version: 0.25.10 - resolution: "esbuild@npm:0.25.10" - dependencies: - "@esbuild/aix-ppc64": "npm:0.25.10" - "@esbuild/android-arm": "npm:0.25.10" - "@esbuild/android-arm64": "npm:0.25.10" - "@esbuild/android-x64": "npm:0.25.10" - "@esbuild/darwin-arm64": "npm:0.25.10" - "@esbuild/darwin-x64": "npm:0.25.10" - "@esbuild/freebsd-arm64": "npm:0.25.10" - "@esbuild/freebsd-x64": "npm:0.25.10" - "@esbuild/linux-arm": "npm:0.25.10" - "@esbuild/linux-arm64": "npm:0.25.10" - "@esbuild/linux-ia32": "npm:0.25.10" - "@esbuild/linux-loong64": "npm:0.25.10" - "@esbuild/linux-mips64el": "npm:0.25.10" - "@esbuild/linux-ppc64": "npm:0.25.10" - "@esbuild/linux-riscv64": "npm:0.25.10" - "@esbuild/linux-s390x": "npm:0.25.10" - "@esbuild/linux-x64": "npm:0.25.10" - "@esbuild/netbsd-arm64": "npm:0.25.10" - "@esbuild/netbsd-x64": "npm:0.25.10" - "@esbuild/openbsd-arm64": "npm:0.25.10" - "@esbuild/openbsd-x64": "npm:0.25.10" - "@esbuild/openharmony-arm64": "npm:0.25.10" - "@esbuild/sunos-x64": "npm:0.25.10" - "@esbuild/win32-arm64": "npm:0.25.10" - "@esbuild/win32-ia32": "npm:0.25.10" - "@esbuild/win32-x64": "npm:0.25.10" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-arm64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/openharmony-arm64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/8ee5fdd43ed0d4092ce7f41577c63147f54049d5617763f0549c638bbe939e8adaa8f1a2728adb63417eb11df51956b7b0d8eb88ee08c27ad1d42960256158fa - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.3 - resolution: "exponential-backoff@npm:3.1.3" - checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.3": - version: 3.3.3 - resolution: "fast-glob@npm:3.3.3" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.8" - checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.19.1 - resolution: "fastq@npm:1.19.1" - dependencies: - reusify: "npm:^1.0.4" - checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630 - languageName: node - linkType: hard - -"fd-package-json@npm:^2.0.0": - version: 2.0.0 - resolution: "fd-package-json@npm:2.0.0" - dependencies: - walk-up-path: "npm:^4.0.0" - checksum: 10c0/a0a48745257bc09c939486608dad9f2ced238f0c64266222cc881618ed4c8f6aa0ccfe45a1e6d4f9ce828509e8d617cec60e2a114851bebb1ff4886dc5ed5112 - languageName: node - linkType: hard - -"fdir@npm:^6.4.4, fdir@npm:^6.5.0": - version: 6.5.0 - resolution: "fdir@npm:6.5.0" - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f - languageName: node - linkType: hard - -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 - languageName: node - linkType: hard - -"follow-redirects@npm:^1.15.6": - version: 1.15.11 - resolution: "follow-redirects@npm:1.15.11" - peerDependenciesMeta: - debug: - optional: true - checksum: 10c0/d301f430542520a54058d4aeeb453233c564aaccac835d29d15e050beb33f339ad67d9bddbce01739c5dc46a6716dbe3d9d0d5134b1ca203effa11a7ef092343 - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.3.1 - resolution: "foreground-child@npm:3.3.1" - dependencies: - cross-spawn: "npm:^7.0.6" - signal-exit: "npm:^4.0.1" - checksum: 10c0/8986e4af2430896e65bc2788d6679067294d6aee9545daefc84923a0a4b399ad9c7a3ea7bd8c0b2b80fdf4a92de4c69df3f628233ff3224260e9c1541a9e9ed3 - languageName: node - linkType: hard - -"form-data@npm:^4.0.4": - version: 4.0.4 - resolution: "form-data@npm:4.0.4" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - es-set-tostringtag: "npm:^2.1.0" - hasown: "npm:^2.0.2" - mime-types: "npm:^2.1.12" - checksum: 10c0/373525a9a034b9d57073e55eab79e501a714ffac02e7a9b01be1c820780652b16e4101819785e1e18f8d98f0aee866cc654d660a435c378e16a72f2e7cac9695 - languageName: node - linkType: hard - -"formatly@npm:^0.3.0": - version: 0.3.0 - resolution: "formatly@npm:0.3.0" - dependencies: - fd-package-json: "npm:^2.0.0" - bin: - formatly: bin/index.mjs - checksum: 10c0/ef9dbd3cdaee649e9604ea060d8d62d8131eb81117634336592ee2193fc7c98a3f1f1b5d09a045dbd36287ba88edf868ef179d39fbda2f34fbe2be70c42dd014 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 - languageName: node - linkType: hard - -"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.2.6": - version: 1.3.0 - resolution: "get-intrinsic@npm:1.3.0" - dependencies: - call-bind-apply-helpers: "npm:^1.0.2" - es-define-property: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - function-bind: "npm:^1.1.2" - get-proto: "npm:^1.0.1" - gopd: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - hasown: "npm:^2.0.2" - math-intrinsics: "npm:^1.1.0" - checksum: 10c0/52c81808af9a8130f581e6a6a83e1ba4a9f703359e7a438d1369a5267a25412322f03dcbd7c549edaef0b6214a0630a28511d7df0130c93cfd380f4fa0b5b66a - languageName: node - linkType: hard - -"get-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "get-proto@npm:1.0.1" - dependencies: - dunder-proto: "npm:^1.0.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee - languageName: node - linkType: hard - -"glob@npm:^10.2.2": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^3.1.2" - minimatch: "npm:^9.0.4" - minipass: "npm:^7.1.2" - package-json-from-dist: "npm:^1.0.0" - path-scurry: "npm:^1.11.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e - languageName: node - linkType: hard - -"gopd@npm:^1.2.0": - version: 1.2.0 - resolution: "gopd@npm:1.2.0" - checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.6": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": - version: 1.1.0 - resolution: "has-symbols@npm:1.1.0" - checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.2": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: "npm:^1.0.3" - checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c - languageName: node - linkType: hard - -"hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.2.0 - resolution: "http-cache-semantics@npm:4.2.0" - checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.6 - resolution: "https-proxy-agent@npm:7.0.6" - dependencies: - agent-base: "npm:^7.1.2" - debug: "npm:4" - checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 - languageName: node - linkType: hard - -"ip-address@npm:^10.0.1": - version: 10.0.1 - resolution: "ip-address@npm:10.0.1" - checksum: 10c0/1634d79dae18394004775cb6d699dc46b7c23df6d2083164025a2b15240c1164fccde53d0e08bd5ee4fc53913d033ab6b5e395a809ad4b956a940c446e948843 - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc - languageName: node - linkType: hard - -"is-glob@npm:^4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 - languageName: node - linkType: hard - -"jackspeak@npm:^3.1.2": - version: 3.4.3 - resolution: "jackspeak@npm:3.4.3" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 - languageName: node - linkType: hard - -"jiti@npm:^2.6.0": - version: 2.6.1 - resolution: "jiti@npm:2.6.1" - bin: - jiti: lib/jiti-cli.mjs - checksum: 10c0/79b2e96a8e623f66c1b703b98ec1b8be4500e1d217e09b09e343471bbb9c105381b83edbb979d01cef18318cc45ce6e153571b6c83122170eefa531c64b6789b - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f - languageName: node - linkType: hard - -"knip@npm:^5.59.1": - version: 5.64.3 - resolution: "knip@npm:5.64.3" - dependencies: - "@nodelib/fs.walk": "npm:^1.2.3" - fast-glob: "npm:^3.3.3" - formatly: "npm:^0.3.0" - jiti: "npm:^2.6.0" - js-yaml: "npm:^4.1.0" - minimist: "npm:^1.2.8" - oxc-resolver: "npm:^11.8.3" - picocolors: "npm:^1.1.1" - picomatch: "npm:^4.0.1" - smol-toml: "npm:^1.4.1" - strip-json-comments: "npm:5.0.2" - zod: "npm:^4.1.11" - peerDependencies: - "@types/node": ">=18" - typescript: ">=5.0.4 <7" - bin: - knip: bin/knip.js - knip-bun: bin/knip-bun.js - checksum: 10c0/fbc991ef423a05557ed2d1fba47ad78431400f0a6c2acea14d29188f6d580cc2bd82a5412566032f0bd36e1b8dd5578d5caad44553b0e5de275425244493c791 - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.4.3 - resolution: "lru-cache@npm:10.4.3" - checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb - languageName: node - linkType: hard - -"make-fetch-happen@npm:^14.0.3": - version: 14.0.3 - resolution: "make-fetch-happen@npm:14.0.3" - dependencies: - "@npmcli/agent": "npm:^3.0.0" - cacache: "npm:^19.0.1" - http-cache-semantics: "npm:^4.1.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^4.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^1.0.0" - proc-log: "npm:^5.0.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^12.0.0" - checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 - languageName: node - linkType: hard - -"math-intrinsics@npm:^1.1.0": - version: 1.1.0 - resolution: "math-intrinsics@npm:1.1.0" - checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f - languageName: node - linkType: hard - -"merge2@npm:^1.3.0": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb - languageName: node - linkType: hard - -"micromatch@npm:^4.0.8": - version: 4.0.8 - resolution: "micromatch@npm:4.0.8" - dependencies: - braces: "npm:^3.0.3" - picomatch: "npm:^2.3.1" - checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed - languageName: node - linkType: hard - -"minimist@npm:^1.2.8": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e - languageName: node - linkType: hard - -"minipass-fetch@npm:^4.0.0": - version: 4.0.1 - resolution: "minipass-fetch@npm:4.0.1" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^3.0.1" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/a3147b2efe8e078c9bf9d024a0059339c5a09c5b1dded6900a219c218cc8b1b78510b62dae556b507304af226b18c3f1aeb1d48660283602d5b6586c399eed5c - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 - languageName: node - linkType: hard - -"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": - version: 3.1.0 - resolution: "minizlib@npm:3.1.0" - dependencies: - minipass: "npm:^7.1.2" - checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec - languageName: node - linkType: hard - -"ms@npm:^2.1.3": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 - languageName: node - linkType: hard - -"nanoid@npm:^3.3.11": - version: 3.3.11 - resolution: "nanoid@npm:3.3.11" - bin: - nanoid: bin/nanoid.cjs - checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b - languageName: node - linkType: hard - -"negotiator@npm:^1.0.0": - version: 1.0.0 - resolution: "negotiator@npm:1.0.0" - checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 11.5.0 - resolution: "node-gyp@npm:11.5.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^14.0.3" - nopt: "npm:^8.0.0" - proc-log: "npm:^5.0.0" - semver: "npm:^7.3.5" - tar: "npm:^7.4.3" - tinyglobby: "npm:^0.2.12" - which: "npm:^5.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 10c0/31ff49586991b38287bb15c3d529dd689cfc32f992eed9e6997b9d712d5d21fe818a8b1bbfe3b76a7e33765c20210c5713212f4aa329306a615b87d8a786da3a - languageName: node - linkType: hard - -"nopt@npm:^8.0.0": - version: 8.1.0 - resolution: "nopt@npm:8.1.0" - dependencies: - abbrev: "npm:^3.0.0" - bin: - nopt: bin/nopt.js - checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef - languageName: node - linkType: hard - -"oxc-resolver@npm:^11.8.3": - version: 11.9.0 - resolution: "oxc-resolver@npm:11.9.0" - dependencies: - "@oxc-resolver/binding-android-arm-eabi": "npm:11.9.0" - "@oxc-resolver/binding-android-arm64": "npm:11.9.0" - "@oxc-resolver/binding-darwin-arm64": "npm:11.9.0" - "@oxc-resolver/binding-darwin-x64": "npm:11.9.0" - "@oxc-resolver/binding-freebsd-x64": "npm:11.9.0" - "@oxc-resolver/binding-linux-arm-gnueabihf": "npm:11.9.0" - "@oxc-resolver/binding-linux-arm-musleabihf": "npm:11.9.0" - "@oxc-resolver/binding-linux-arm64-gnu": "npm:11.9.0" - "@oxc-resolver/binding-linux-arm64-musl": "npm:11.9.0" - "@oxc-resolver/binding-linux-ppc64-gnu": "npm:11.9.0" - "@oxc-resolver/binding-linux-riscv64-gnu": "npm:11.9.0" - "@oxc-resolver/binding-linux-riscv64-musl": "npm:11.9.0" - "@oxc-resolver/binding-linux-s390x-gnu": "npm:11.9.0" - "@oxc-resolver/binding-linux-x64-gnu": "npm:11.9.0" - "@oxc-resolver/binding-linux-x64-musl": "npm:11.9.0" - "@oxc-resolver/binding-wasm32-wasi": "npm:11.9.0" - "@oxc-resolver/binding-win32-arm64-msvc": "npm:11.9.0" - "@oxc-resolver/binding-win32-ia32-msvc": "npm:11.9.0" - "@oxc-resolver/binding-win32-x64-msvc": "npm:11.9.0" - dependenciesMeta: - "@oxc-resolver/binding-android-arm-eabi": - optional: true - "@oxc-resolver/binding-android-arm64": - optional: true - "@oxc-resolver/binding-darwin-arm64": - optional: true - "@oxc-resolver/binding-darwin-x64": - optional: true - "@oxc-resolver/binding-freebsd-x64": - optional: true - "@oxc-resolver/binding-linux-arm-gnueabihf": - optional: true - "@oxc-resolver/binding-linux-arm-musleabihf": - optional: true - "@oxc-resolver/binding-linux-arm64-gnu": - optional: true - "@oxc-resolver/binding-linux-arm64-musl": - optional: true - "@oxc-resolver/binding-linux-ppc64-gnu": - optional: true - "@oxc-resolver/binding-linux-riscv64-gnu": - optional: true - "@oxc-resolver/binding-linux-riscv64-musl": - optional: true - "@oxc-resolver/binding-linux-s390x-gnu": - optional: true - "@oxc-resolver/binding-linux-x64-gnu": - optional: true - "@oxc-resolver/binding-linux-x64-musl": - optional: true - "@oxc-resolver/binding-wasm32-wasi": - optional: true - "@oxc-resolver/binding-win32-arm64-msvc": - optional: true - "@oxc-resolver/binding-win32-ia32-msvc": - optional: true - "@oxc-resolver/binding-win32-x64-msvc": - optional: true - checksum: 10c0/5a6c3381dd190c003cf07e8020684e9818ffd7fb4e75f4ec171fcc537037c55a28a84980c4949b209ba4f29d7c93aaa57a652287bede5d1dc31d58ebda123431 - languageName: node - linkType: hard - -"p-map@npm:^7.0.2": - version: 7.0.3 - resolution: "p-map@npm:7.0.3" - checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c - languageName: node - linkType: hard - -"package-json-from-dist@npm:^1.0.0": - version: 1.0.1 - resolution: "package-json-from-dist@npm:1.0.1" - checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b - languageName: node - linkType: hard - -"path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c - languageName: node - linkType: hard - -"path-scurry@npm:^1.11.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: "npm:^10.2.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d - languageName: node - linkType: hard - -"picocolors@npm:^1.1.1": - version: 1.1.1 - resolution: "picocolors@npm:1.1.1" - checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 - languageName: node - linkType: hard - -"picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - -"picomatch@npm:^4.0.1, picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 - languageName: node - linkType: hard - -"postcss@npm:^8.5.3": - version: 8.5.6 - resolution: "postcss@npm:8.5.6" - dependencies: - nanoid: "npm:^3.3.11" - picocolors: "npm:^1.1.1" - source-map-js: "npm:^1.2.1" - checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 - languageName: node - linkType: hard - -"proc-log@npm:^5.0.0": - version: 5.0.0 - resolution: "proc-log@npm:5.0.0" - checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 - languageName: node - linkType: hard - -"react-dom@npm:^19.1.0": - version: 19.2.0 - resolution: "react-dom@npm:19.2.0" - dependencies: - scheduler: "npm:^0.27.0" - peerDependencies: - react: ^19.2.0 - checksum: 10c0/fa2cae05248d01288e91523b590ce4e7635b1e13f1344e225f850d722a8da037bf0782f63b1c1d46353334e0c696909b82e582f8cad607948fde6f7646cc18d9 - languageName: node - linkType: hard - -"react-icons@npm:^5.5.0": - version: 5.5.0 - resolution: "react-icons@npm:5.5.0" - peerDependencies: - react: "*" - checksum: 10c0/a24309bfc993c19cbcbfc928157e53a137851822779977b9588f6dd41ffc4d11ebc98b447f4039b0d309a858f0a42980f6bfb4477fb19f9f2d1bc2e190fcf79c - languageName: node - linkType: hard - -"react-router-dom@npm:^7.9.4": - version: 7.9.4 - resolution: "react-router-dom@npm:7.9.4" - dependencies: - react-router: "npm:7.9.4" - peerDependencies: - react: ">=18" - react-dom: ">=18" - checksum: 10c0/03979ef887411230188d8eb7e001379c164f28235d5e3589f9192f73edae4c6e59a155aec0bcdcb84b3fa4e72caff0c38f4709ffb2e4cdca4cb8a8ab1c60dd35 - languageName: node - linkType: hard - -"react-router@npm:7.9.4": - version: 7.9.4 - resolution: "react-router@npm:7.9.4" - dependencies: - cookie: "npm:^1.0.1" - set-cookie-parser: "npm:^2.6.0" - peerDependencies: - react: ">=18" - react-dom: ">=18" - peerDependenciesMeta: - react-dom: - optional: true - checksum: 10c0/c7556b752fa88d2bff600ce3533c962dcbe9ca9bf71f9c4b8e8a21f904856990bcb284844d53eb1dd486adaa7567c7ecf0deb3e518262269ea1ea89bea246be4 - languageName: node - linkType: hard - -"react@npm:^19.1.0": - version: 19.2.0 - resolution: "react@npm:19.2.0" - checksum: 10c0/1b6d64eacb9324725bfe1e7860cb7a6b8a34bc89a482920765ebff5c10578eb487e6b46b2f0df263bd27a25edbdae2c45e5ea5d81ae61404301c1a7192c38330 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.1.0 - resolution: "reusify@npm:1.1.0" - checksum: 10c0/4eff0d4a5f9383566c7d7ec437b671cc51b25963bd61bf127c3f3d3f68e44a026d99b8d2f1ad344afff8d278a8fe70a8ea092650a716d22287e8bef7126bb2fa - languageName: node - linkType: hard - -"rollup@npm:^4.34.9": - version: 4.52.4 - resolution: "rollup@npm:4.52.4" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.52.4" - "@rollup/rollup-android-arm64": "npm:4.52.4" - "@rollup/rollup-darwin-arm64": "npm:4.52.4" - "@rollup/rollup-darwin-x64": "npm:4.52.4" - "@rollup/rollup-freebsd-arm64": "npm:4.52.4" - "@rollup/rollup-freebsd-x64": "npm:4.52.4" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.52.4" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.52.4" - "@rollup/rollup-linux-arm64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-arm64-musl": "npm:4.52.4" - "@rollup/rollup-linux-loong64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-riscv64-musl": "npm:4.52.4" - "@rollup/rollup-linux-s390x-gnu": "npm:4.52.4" - "@rollup/rollup-linux-x64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-x64-musl": "npm:4.52.4" - "@rollup/rollup-openharmony-arm64": "npm:4.52.4" - "@rollup/rollup-win32-arm64-msvc": "npm:4.52.4" - "@rollup/rollup-win32-ia32-msvc": "npm:4.52.4" - "@rollup/rollup-win32-x64-gnu": "npm:4.52.4" - "@rollup/rollup-win32-x64-msvc": "npm:4.52.4" - "@types/estree": "npm:1.0.8" - fsevents: "npm:~2.3.2" - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-freebsd-arm64": - optional: true - "@rollup/rollup-freebsd-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm-musleabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-loong64-gnu": - optional: true - "@rollup/rollup-linux-ppc64-gnu": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-riscv64-musl": - optional: true - "@rollup/rollup-linux-s390x-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-openharmony-arm64": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-gnu": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10c0/aaec0f57e887d4fb37d152f93cf7133954eec79d11643e95de768ec9a377f08793b1745c648ca65a0dcc6c795c4d9ca398724d013e5745de270e88a543782aea - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 - languageName: node - linkType: hard - -"scheduler@npm:^0.27.0": - version: 0.27.0 - resolution: "scheduler@npm:0.27.0" - checksum: 10c0/4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452 - languageName: node - linkType: hard - -"semver@npm:^7.3.5": - version: 7.7.3 - resolution: "semver@npm:7.7.3" - bin: - semver: bin/semver.js - checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e - languageName: node - linkType: hard - -"set-cookie-parser@npm:^2.6.0": - version: 2.7.1 - resolution: "set-cookie-parser@npm:2.7.1" - checksum: 10c0/060c198c4c92547ac15988256f445eae523f57f2ceefeccf52d30d75dedf6bff22b9c26f756bd44e8e560d44ff4ab2130b178bd2e52ef5571bf7be3bd7632d9a - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: "npm:^3.0.0" - checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 - languageName: node - linkType: hard - -"smol-toml@npm:^1.4.1": - version: 1.4.2 - resolution: "smol-toml@npm:1.4.2" - checksum: 10c0/e01e5f249b1ad852d09aa22f338a6cb3896ac35c92bf0d35744ce1b1e2f4b67901d4a0e886027617a2a8aa9f1a6c67c919c41b544c4aec137b6ebe042ca10d36 - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.5 - resolution: "socks-proxy-agent@npm:8.0.5" - dependencies: - agent-base: "npm:^7.1.2" - debug: "npm:^4.3.4" - socks: "npm:^2.8.3" - checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 - languageName: node - linkType: hard - -"socks@npm:^2.8.3": - version: 2.8.7 - resolution: "socks@npm:2.8.7" - dependencies: - ip-address: "npm:^10.0.1" - smart-buffer: "npm:^4.2.0" - checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2 - languageName: node - linkType: hard - -"source-map-js@npm:^1.2.1": - version: 1.2.1 - resolution: "source-map-js@npm:1.2.1" - checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf - languageName: node - linkType: hard - -"ssri@npm:^12.0.0": - version: 12.0.0 - resolution: "ssri@npm:12.0.0" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: "npm:^8.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - strip-ansi: "npm:^6.0.1" - checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: "npm:^0.2.0" - emoji-regex: "npm:^9.2.2" - strip-ansi: "npm:^7.0.1" - checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: "npm:^5.0.1" - checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1": - version: 7.1.2 - resolution: "strip-ansi@npm:7.1.2" - dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10c0/0d6d7a023de33368fd042aab0bf48f4f4077abdfd60e5393e73c7c411e85e1b3a83507c11af2e656188511475776215df9ca589b4da2295c9455cc399ce1858b - languageName: node - linkType: hard - -"strip-json-comments@npm:5.0.2": - version: 5.0.2 - resolution: "strip-json-comments@npm:5.0.2" - checksum: 10c0/e9841b8face78a01b0eb66f81e0a3419186a96f1d26817a5e1f5260b0631c10e0a7f711dddc5988edf599e5c079e4dd6e91defd21523e556636ba5679786f5ac - languageName: node - linkType: hard - -"tar@npm:^7.4.3": - version: 7.5.2 - resolution: "tar@npm:7.5.2" - dependencies: - "@isaacs/fs-minipass": "npm:^4.0.0" - chownr: "npm:^3.0.0" - minipass: "npm:^7.1.2" - minizlib: "npm:^3.1.0" - yallist: "npm:^5.0.0" - checksum: 10c0/a7d8b801139b52f93a7e34830db0de54c5aa45487c7cb551f6f3d44a112c67f1cb8ffdae856b05fd4f17b1749911f1c26f1e3a23bbe0279e17fd96077f13f467 - languageName: node - linkType: hard - -"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" - dependencies: - fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 - languageName: node - linkType: hard - -"tslib@npm:^2.4.0": - version: 2.8.1 - resolution: "tslib@npm:2.8.1" - checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 - languageName: node - linkType: hard - -"typescript@npm:~5.8.3": - version: 5.8.3 - resolution: "typescript@npm:5.8.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/5f8bb01196e542e64d44db3d16ee0e4063ce4f3e3966df6005f2588e86d91c03e1fb131c2581baf0fb65ee79669eea6e161cd448178986587e9f6844446dbb48 - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A~5.8.3#optional!builtin": - version: 5.8.3 - resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb - languageName: node - linkType: hard - -"undici-types@npm:~6.21.0": - version: 6.21.0 - resolution: "undici-types@npm:6.21.0" - checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04 - languageName: node - linkType: hard - -"unique-filename@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-filename@npm:4.0.0" - dependencies: - unique-slug: "npm:^5.0.0" - checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc - languageName: node - linkType: hard - -"unique-slug@npm:^5.0.0": - version: 5.0.0 - resolution: "unique-slug@npm:5.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 - languageName: node - linkType: hard - -"vite@npm:^6.3.5": - version: 6.3.6 - resolution: "vite@npm:6.3.6" - dependencies: - esbuild: "npm:^0.25.0" - fdir: "npm:^6.4.4" - fsevents: "npm:~2.3.3" - picomatch: "npm:^4.0.2" - postcss: "npm:^8.5.3" - rollup: "npm:^4.34.9" - tinyglobby: "npm:^0.2.13" - peerDependencies: - "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: ">=1.21.0" - less: "*" - lightningcss: ^1.21.0 - sass: "*" - sass-embedded: "*" - stylus: "*" - sugarss: "*" - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - bin: - vite: bin/vite.js - checksum: 10c0/add701f1e72596c002275782e38d0389ab400c1be330c93a3009804d62db68097a936ca1c53c3301df3aaacfe5e328eab547060f31ef9c49a277ae50df6ad4fb - languageName: node - linkType: hard - -"wafflestudio-2025-fe-seminar-template@workspace:.": - version: 0.0.0-use.local - resolution: "wafflestudio-2025-fe-seminar-template@workspace:." - dependencies: - "@biomejs/biome": "npm:1.9.4" - "@types/node": "npm:^22.15.29" - "@types/react": "npm:^19.1.2" - "@types/react-dom": "npm:^19.1.2" - "@vitejs/plugin-react-swc": "npm:^3.9.0" - axios: "npm:^1.12.2" - knip: "npm:^5.59.1" - react: "npm:^19.1.0" - react-dom: "npm:^19.1.0" - react-icons: "npm:^5.5.0" - react-router-dom: "npm:^7.9.4" - typescript: "npm:~5.8.3" - vite: "npm:^6.3.5" - languageName: unknown - linkType: soft - -"walk-up-path@npm:^4.0.0": - version: 4.0.0 - resolution: "walk-up-path@npm:4.0.0" - checksum: 10c0/fabe344f91387d1d41df230af962ef18bf703dd4178006d55cd6412caacd187b54440002d4d53a982d4f7f0455567dcffb6d3884533c8b2268928eca3ebd8a19 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: "npm:^2.0.0" - bin: - node-which: ./bin/node-which - checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f - languageName: node - linkType: hard - -"which@npm:^5.0.0": - version: 5.0.0 - resolution: "which@npm:5.0.0" - dependencies: - isexe: "npm:^3.1.1" - bin: - node-which: bin/which.js - checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: "npm:^6.1.0" - string-width: "npm:^5.0.1" - strip-ansi: "npm:^7.0.1" - checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a - languageName: node - linkType: hard - -"yallist@npm:^5.0.0": - version: 5.0.0 - resolution: "yallist@npm:5.0.0" - checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 - languageName: node - linkType: hard - -"zod@npm:^4.1.11": - version: 4.1.12 - resolution: "zod@npm:4.1.12" - checksum: 10c0/b64c1feb19e99d77075261eaf613e0b2be4dfcd3551eff65ad8b4f2a079b61e379854d066f7d447491fcf193f45babd8095551a9d47973d30b46b6d8e2c46774 - languageName: node - linkType: hard +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@esbuild/darwin-arm64@0.25.10": + version "0.25.10" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz" + integrity sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@oxc-resolver/binding-darwin-arm64@11.9.0": + version "11.9.0" + resolved "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.9.0.tgz" + integrity sha512-fM6zE/j6o3C1UIkcZPV7C1f186R7w97guY2N4lyNLlhlgwwhd46acnOezLARvRNU5oyKNev4PvOJhGCCDnFMGg== + +"@rolldown/pluginutils@1.0.0-beta.27": + version "1.0.0-beta.27" + resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz" + integrity sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA== + +"@rollup/rollup-darwin-arm64@4.52.4": + version "4.52.4" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz" + integrity sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg== + +"@swc/core-darwin-arm64@1.13.5": + version "1.13.5" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz" + integrity sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ== + +"@swc/core@^1.12.11": + version "1.13.5" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz" + integrity sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.24" + optionalDependencies: + "@swc/core-darwin-arm64" "1.13.5" + "@swc/core-darwin-x64" "1.13.5" + "@swc/core-linux-arm-gnueabihf" "1.13.5" + "@swc/core-linux-arm64-gnu" "1.13.5" + "@swc/core-linux-arm64-musl" "1.13.5" + "@swc/core-linux-x64-gnu" "1.13.5" + "@swc/core-linux-x64-musl" "1.13.5" + "@swc/core-win32-arm64-msvc" "1.13.5" + "@swc/core-win32-ia32-msvc" "1.13.5" + "@swc/core-win32-x64-msvc" "1.13.5" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/types@^0.1.24": + version "0.1.25" + resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz" + integrity sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g== + dependencies: + "@swc/counter" "^0.1.3" + +"@types/estree@1.0.8": + version "1.0.8" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + +"@types/node@^18.0.0 || ^20.0.0 || >=22.0.0", "@types/node@^22.15.29", "@types/node@>=18": + version "22.18.9" + resolved "https://registry.npmjs.org/@types/node/-/node-22.18.9.tgz" + integrity sha512-5yBtK0k/q8PjkMXbTfeIEP/XVYnz1R9qZJ3yUicdEW7ppdDJfe+MqXEhpqDL3mtn4Wvs1u0KLEG0RXzCgNpsSg== + dependencies: + undici-types "~6.21.0" + +"@types/react-dom@^19.1.2": + version "19.2.1" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.1.tgz" + integrity sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A== + +"@types/react@^19.1.2", "@types/react@^19.2.0": + version "19.2.2" + resolved "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz" + integrity sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA== + dependencies: + csstype "^3.0.2" + +"@vitejs/plugin-react-swc@^3.9.0": + version "3.11.0" + resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz" + integrity sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w== + dependencies: + "@rolldown/pluginutils" "1.0.0-beta.27" + "@swc/core" "^1.12.11" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.12.2: + version "1.12.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz" + integrity sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.4" + proxy-from-env "^1.1.0" + +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +cookie@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz" + integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA== + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +esbuild@^0.25.0: + version "0.25.10" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz" + integrity sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.10" + "@esbuild/android-arm" "0.25.10" + "@esbuild/android-arm64" "0.25.10" + "@esbuild/android-x64" "0.25.10" + "@esbuild/darwin-arm64" "0.25.10" + "@esbuild/darwin-x64" "0.25.10" + "@esbuild/freebsd-arm64" "0.25.10" + "@esbuild/freebsd-x64" "0.25.10" + "@esbuild/linux-arm" "0.25.10" + "@esbuild/linux-arm64" "0.25.10" + "@esbuild/linux-ia32" "0.25.10" + "@esbuild/linux-loong64" "0.25.10" + "@esbuild/linux-mips64el" "0.25.10" + "@esbuild/linux-ppc64" "0.25.10" + "@esbuild/linux-riscv64" "0.25.10" + "@esbuild/linux-s390x" "0.25.10" + "@esbuild/linux-x64" "0.25.10" + "@esbuild/netbsd-arm64" "0.25.10" + "@esbuild/netbsd-x64" "0.25.10" + "@esbuild/openbsd-arm64" "0.25.10" + "@esbuild/openbsd-x64" "0.25.10" + "@esbuild/openharmony-arm64" "0.25.10" + "@esbuild/sunos-x64" "0.25.10" + "@esbuild/win32-arm64" "0.25.10" + "@esbuild/win32-ia32" "0.25.10" + "@esbuild/win32-x64" "0.25.10" + +fast-glob@^3.3.3: + version "3.3.3" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.8" + +fastq@^1.6.0: + version "1.19.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== + dependencies: + reusify "^1.0.4" + +fd-package-json@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz" + integrity sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ== + dependencies: + walk-up-path "^4.0.0" + +fdir@^6.4.4, fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +follow-redirects@^1.15.6: + version "1.15.11" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +form-data@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + +formatly@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/formatly/-/formatly-0.3.0.tgz" + integrity sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w== + dependencies: + fd-package-json "^2.0.0" + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +jiti@^2.6.0, jiti@>=1.21.0: + version "2.6.1" + resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +knip@^5.59.1: + version "5.64.3" + resolved "https://registry.npmjs.org/knip/-/knip-5.64.3.tgz" + integrity sha512-P9dZetEZfSBwNBFwj55CAnPAMdzVLTTscWx6rdB8eBmPqXPji8F3L+hhWi+Xp+u9O6Xp2ClRDq2JENSK8Z04Qg== + dependencies: + "@nodelib/fs.walk" "^1.2.3" + fast-glob "^3.3.3" + formatly "^0.3.0" + jiti "^2.6.0" + js-yaml "^4.1.0" + minimist "^1.2.8" + oxc-resolver "^11.8.3" + picocolors "^1.1.1" + picomatch "^4.0.1" + smol-toml "^1.4.1" + strip-json-comments "5.0.2" + zod "^4.1.11" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +oxc-resolver@^11.8.3: + version "11.9.0" + resolved "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.9.0.tgz" + integrity sha512-u714L0DBBXpD0ERErCQlun2XwinuBfIGo2T8bA7xE8WLQ4uaJudO/VOEQCWslOmcDY2nEkS+UVir5PpyvSG23w== + optionalDependencies: + "@oxc-resolver/binding-android-arm-eabi" "11.9.0" + "@oxc-resolver/binding-android-arm64" "11.9.0" + "@oxc-resolver/binding-darwin-arm64" "11.9.0" + "@oxc-resolver/binding-darwin-x64" "11.9.0" + "@oxc-resolver/binding-freebsd-x64" "11.9.0" + "@oxc-resolver/binding-linux-arm-gnueabihf" "11.9.0" + "@oxc-resolver/binding-linux-arm-musleabihf" "11.9.0" + "@oxc-resolver/binding-linux-arm64-gnu" "11.9.0" + "@oxc-resolver/binding-linux-arm64-musl" "11.9.0" + "@oxc-resolver/binding-linux-ppc64-gnu" "11.9.0" + "@oxc-resolver/binding-linux-riscv64-gnu" "11.9.0" + "@oxc-resolver/binding-linux-riscv64-musl" "11.9.0" + "@oxc-resolver/binding-linux-s390x-gnu" "11.9.0" + "@oxc-resolver/binding-linux-x64-gnu" "11.9.0" + "@oxc-resolver/binding-linux-x64-musl" "11.9.0" + "@oxc-resolver/binding-wasm32-wasi" "11.9.0" + "@oxc-resolver/binding-win32-arm64-msvc" "11.9.0" + "@oxc-resolver/binding-win32-ia32-msvc" "11.9.0" + "@oxc-resolver/binding-win32-x64-msvc" "11.9.0" + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +"picomatch@^3 || ^4", picomatch@^4.0.1, picomatch@^4.0.2, picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + +postcss@^8.5.3: + version "8.5.6" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== + dependencies: + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-dom@^19.1.0, react-dom@>=18: + version "19.2.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz" + integrity sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ== + dependencies: + scheduler "^0.27.0" + +react-icons@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz" + integrity sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw== + +react-router-dom@^7.9.4: + version "7.9.4" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.4.tgz" + integrity sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA== + dependencies: + react-router "7.9.4" + +react-router@7.9.4: + version "7.9.4" + resolved "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz" + integrity sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA== + dependencies: + cookie "^1.0.1" + set-cookie-parser "^2.6.0" + +react@*, react@^19.1.0, react@^19.2.0, react@>=18: + version "19.2.0" + resolved "https://registry.npmjs.org/react/-/react-19.2.0.tgz" + integrity sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ== + +reusify@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + +rollup@^4.34.9: + version "4.52.4" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz" + integrity sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ== + dependencies: + "@types/estree" "1.0.8" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.52.4" + "@rollup/rollup-android-arm64" "4.52.4" + "@rollup/rollup-darwin-arm64" "4.52.4" + "@rollup/rollup-darwin-x64" "4.52.4" + "@rollup/rollup-freebsd-arm64" "4.52.4" + "@rollup/rollup-freebsd-x64" "4.52.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.52.4" + "@rollup/rollup-linux-arm-musleabihf" "4.52.4" + "@rollup/rollup-linux-arm64-gnu" "4.52.4" + "@rollup/rollup-linux-arm64-musl" "4.52.4" + "@rollup/rollup-linux-loong64-gnu" "4.52.4" + "@rollup/rollup-linux-ppc64-gnu" "4.52.4" + "@rollup/rollup-linux-riscv64-gnu" "4.52.4" + "@rollup/rollup-linux-riscv64-musl" "4.52.4" + "@rollup/rollup-linux-s390x-gnu" "4.52.4" + "@rollup/rollup-linux-x64-gnu" "4.52.4" + "@rollup/rollup-linux-x64-musl" "4.52.4" + "@rollup/rollup-openharmony-arm64" "4.52.4" + "@rollup/rollup-win32-arm64-msvc" "4.52.4" + "@rollup/rollup-win32-ia32-msvc" "4.52.4" + "@rollup/rollup-win32-x64-gnu" "4.52.4" + "@rollup/rollup-win32-x64-msvc" "4.52.4" + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +scheduler@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz" + integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== + +set-cookie-parser@^2.6.0: + version "2.7.1" + resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz" + integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ== + +smol-toml@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz" + integrity sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g== + +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +strip-json-comments@5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.2.tgz" + integrity sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g== + +tinyglobby@^0.2.13: + version "0.2.15" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.3" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +"typescript@>=5.0.4 <7", typescript@~5.8.3: + version "5.8.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +"vite@^4 || ^5 || ^6 || ^7", vite@^6.3.5: + version "6.3.6" + resolved "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz" + integrity sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA== + dependencies: + esbuild "^0.25.0" + fdir "^6.4.4" + picomatch "^4.0.2" + postcss "^8.5.3" + rollup "^4.34.9" + tinyglobby "^0.2.13" + optionalDependencies: + fsevents "~2.3.3" + +walk-up-path@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz" + integrity sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A== + +zod@^4.1.11: + version "4.1.12" + resolved "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz" + integrity sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ== From 9fddaef1a0998196da54dc21c5b18ca7ae64b414 Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Sat, 22 Nov 2025 16:30:15 +0900 Subject: [PATCH 14/18] fix: yarn error --- src/styles/CreateProfile.module.css | 2 +- src/styles/MyPage.module.css | 2 +- src/styles/Profile.module.css | 42 +- src/styles/style.css | 1 - yarn.lock | 2978 +++++++++++++++++++++------ 5 files changed, 2326 insertions(+), 699 deletions(-) diff --git a/src/styles/CreateProfile.module.css b/src/styles/CreateProfile.module.css index 1026012..2ebe447 100644 --- a/src/styles/CreateProfile.module.css +++ b/src/styles/CreateProfile.module.css @@ -5,4 +5,4 @@ label { min-width: 50px; -} \ No newline at end of file +} diff --git a/src/styles/MyPage.module.css b/src/styles/MyPage.module.css index 72a3683..d941b69 100644 --- a/src/styles/MyPage.module.css +++ b/src/styles/MyPage.module.css @@ -61,4 +61,4 @@ .createProfileButton:hover { background-color: #e0e0e0; -} \ No newline at end of file +} diff --git a/src/styles/Profile.module.css b/src/styles/Profile.module.css index 28a13ad..8b3e461 100644 --- a/src/styles/Profile.module.css +++ b/src/styles/Profile.module.css @@ -29,28 +29,28 @@ h3.title { } h4.title { - color: rgba(72, 76, 83, 1); - font-weight: 700; - font-size: 16px; + color: rgba(72, 76, 83, 1); + font-weight: 700; + font-size: 16px; } span.title { - color: rgba(72, 76, 83, 1); - font-size: 14px; + color: rgba(72, 76, 83, 1); + font-size: 14px; } .redText { - color: red; + color: red; } .hide { - display: none; + display: none; } .fileInput { - border: 1px solid #555; - color: #555; - border-radius: 4px; + border: 1px solid #555; + color: #555; + border-radius: 4px; } .stackChips { list-style: none; @@ -65,28 +65,28 @@ span.title { margin-right: 6px; font-size: 13px; color: rgba(72, 76, 83, 1); - float:left; + float: left; border: 1px, solid, rgba(232, 235, 239, 1); border-radius: 4px; padding: 6px 8px 6px 8px; } .link { - background-color: rgba(119, 127, 139, 1); - padding: 6px 10px 6px 10px; - border-radius: 4px; + background-color: rgba(119, 127, 139, 1); + padding: 6px 10px 6px 10px; + border-radius: 4px; } .smallText { - color: rgb(95, 99, 107); - font-size: 10px; - font-weight: 500; + color: rgb(95, 99, 107); + font-size: 10px; + font-weight: 500; } .bodyText { - color: rgba(56, 59, 65, 1); - font-size: 12px; - font-weight: 500; + color: rgba(56, 59, 65, 1); + font-size: 12px; + font-weight: 500; } .profilePromptContainer { @@ -125,4 +125,4 @@ span.title { } .createProfileButton:hover { background-color: #e0e0e0; -} \ No newline at end of file +} diff --git a/src/styles/style.css b/src/styles/style.css index edd2b4c..2667da6 100644 --- a/src/styles/style.css +++ b/src/styles/style.css @@ -26,7 +26,6 @@ body { gap: 8px; } - .row { display: flex; flex-direction: row; diff --git a/yarn.lock b/yarn.lock index fa3f6ae..98e0080 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,675 +1,2303 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@biomejs/biome@1.9.4": - version "1.9.4" - resolved "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz" - integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== - optionalDependencies: - "@biomejs/cli-darwin-arm64" "1.9.4" - "@biomejs/cli-darwin-x64" "1.9.4" - "@biomejs/cli-linux-arm64" "1.9.4" - "@biomejs/cli-linux-arm64-musl" "1.9.4" - "@biomejs/cli-linux-x64" "1.9.4" - "@biomejs/cli-linux-x64-musl" "1.9.4" - "@biomejs/cli-win32-arm64" "1.9.4" - "@biomejs/cli-win32-x64" "1.9.4" - -"@biomejs/cli-darwin-arm64@1.9.4": - version "1.9.4" - resolved "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz" - integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== - -"@esbuild/darwin-arm64@0.25.10": - version "0.25.10" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz" - integrity sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@oxc-resolver/binding-darwin-arm64@11.9.0": - version "11.9.0" - resolved "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.9.0.tgz" - integrity sha512-fM6zE/j6o3C1UIkcZPV7C1f186R7w97guY2N4lyNLlhlgwwhd46acnOezLARvRNU5oyKNev4PvOJhGCCDnFMGg== - -"@rolldown/pluginutils@1.0.0-beta.27": - version "1.0.0-beta.27" - resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz" - integrity sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA== - -"@rollup/rollup-darwin-arm64@4.52.4": - version "4.52.4" - resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz" - integrity sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg== - -"@swc/core-darwin-arm64@1.13.5": - version "1.13.5" - resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz" - integrity sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ== - -"@swc/core@^1.12.11": - version "1.13.5" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz" - integrity sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ== - dependencies: - "@swc/counter" "^0.1.3" - "@swc/types" "^0.1.24" - optionalDependencies: - "@swc/core-darwin-arm64" "1.13.5" - "@swc/core-darwin-x64" "1.13.5" - "@swc/core-linux-arm-gnueabihf" "1.13.5" - "@swc/core-linux-arm64-gnu" "1.13.5" - "@swc/core-linux-arm64-musl" "1.13.5" - "@swc/core-linux-x64-gnu" "1.13.5" - "@swc/core-linux-x64-musl" "1.13.5" - "@swc/core-win32-arm64-msvc" "1.13.5" - "@swc/core-win32-ia32-msvc" "1.13.5" - "@swc/core-win32-x64-msvc" "1.13.5" - -"@swc/counter@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" - integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== - -"@swc/types@^0.1.24": - version "0.1.25" - resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz" - integrity sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g== - dependencies: - "@swc/counter" "^0.1.3" - -"@types/estree@1.0.8": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/node@^18.0.0 || ^20.0.0 || >=22.0.0", "@types/node@^22.15.29", "@types/node@>=18": - version "22.18.9" - resolved "https://registry.npmjs.org/@types/node/-/node-22.18.9.tgz" - integrity sha512-5yBtK0k/q8PjkMXbTfeIEP/XVYnz1R9qZJ3yUicdEW7ppdDJfe+MqXEhpqDL3mtn4Wvs1u0KLEG0RXzCgNpsSg== - dependencies: - undici-types "~6.21.0" - -"@types/react-dom@^19.1.2": - version "19.2.1" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.1.tgz" - integrity sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A== - -"@types/react@^19.1.2", "@types/react@^19.2.0": - version "19.2.2" - resolved "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz" - integrity sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA== - dependencies: - csstype "^3.0.2" - -"@vitejs/plugin-react-swc@^3.9.0": - version "3.11.0" - resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz" - integrity sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w== - dependencies: - "@rolldown/pluginutils" "1.0.0-beta.27" - "@swc/core" "^1.12.11" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.12.2: - version "1.12.2" - resolved "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz" - integrity sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.4" - proxy-from-env "^1.1.0" - -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -cookie@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz" - integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA== - -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -esbuild@^0.25.0: - version "0.25.10" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz" - integrity sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.10" - "@esbuild/android-arm" "0.25.10" - "@esbuild/android-arm64" "0.25.10" - "@esbuild/android-x64" "0.25.10" - "@esbuild/darwin-arm64" "0.25.10" - "@esbuild/darwin-x64" "0.25.10" - "@esbuild/freebsd-arm64" "0.25.10" - "@esbuild/freebsd-x64" "0.25.10" - "@esbuild/linux-arm" "0.25.10" - "@esbuild/linux-arm64" "0.25.10" - "@esbuild/linux-ia32" "0.25.10" - "@esbuild/linux-loong64" "0.25.10" - "@esbuild/linux-mips64el" "0.25.10" - "@esbuild/linux-ppc64" "0.25.10" - "@esbuild/linux-riscv64" "0.25.10" - "@esbuild/linux-s390x" "0.25.10" - "@esbuild/linux-x64" "0.25.10" - "@esbuild/netbsd-arm64" "0.25.10" - "@esbuild/netbsd-x64" "0.25.10" - "@esbuild/openbsd-arm64" "0.25.10" - "@esbuild/openbsd-x64" "0.25.10" - "@esbuild/openharmony-arm64" "0.25.10" - "@esbuild/sunos-x64" "0.25.10" - "@esbuild/win32-arm64" "0.25.10" - "@esbuild/win32-ia32" "0.25.10" - "@esbuild/win32-x64" "0.25.10" - -fast-glob@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -fd-package-json@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz" - integrity sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ== - dependencies: - walk-up-path "^4.0.0" - -fdir@^6.4.4, fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -follow-redirects@^1.15.6: - version "1.15.11" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz" - integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== - -form-data@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.2" - mime-types "^2.1.12" - -formatly@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/formatly/-/formatly-0.3.0.tgz" - integrity sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w== - dependencies: - fd-package-json "^2.0.0" - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -get-intrinsic@^1.2.6: - version "1.3.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -jiti@^2.6.0, jiti@>=1.21.0: - version "2.6.1" - resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" - integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -knip@^5.59.1: - version "5.64.3" - resolved "https://registry.npmjs.org/knip/-/knip-5.64.3.tgz" - integrity sha512-P9dZetEZfSBwNBFwj55CAnPAMdzVLTTscWx6rdB8eBmPqXPji8F3L+hhWi+Xp+u9O6Xp2ClRDq2JENSK8Z04Qg== - dependencies: - "@nodelib/fs.walk" "^1.2.3" - fast-glob "^3.3.3" - formatly "^0.3.0" - jiti "^2.6.0" - js-yaml "^4.1.0" - minimist "^1.2.8" - oxc-resolver "^11.8.3" - picocolors "^1.1.1" - picomatch "^4.0.1" - smol-toml "^1.4.1" - strip-json-comments "5.0.2" - zod "^4.1.11" - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -oxc-resolver@^11.8.3: - version "11.9.0" - resolved "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.9.0.tgz" - integrity sha512-u714L0DBBXpD0ERErCQlun2XwinuBfIGo2T8bA7xE8WLQ4uaJudO/VOEQCWslOmcDY2nEkS+UVir5PpyvSG23w== - optionalDependencies: - "@oxc-resolver/binding-android-arm-eabi" "11.9.0" - "@oxc-resolver/binding-android-arm64" "11.9.0" - "@oxc-resolver/binding-darwin-arm64" "11.9.0" - "@oxc-resolver/binding-darwin-x64" "11.9.0" - "@oxc-resolver/binding-freebsd-x64" "11.9.0" - "@oxc-resolver/binding-linux-arm-gnueabihf" "11.9.0" - "@oxc-resolver/binding-linux-arm-musleabihf" "11.9.0" - "@oxc-resolver/binding-linux-arm64-gnu" "11.9.0" - "@oxc-resolver/binding-linux-arm64-musl" "11.9.0" - "@oxc-resolver/binding-linux-ppc64-gnu" "11.9.0" - "@oxc-resolver/binding-linux-riscv64-gnu" "11.9.0" - "@oxc-resolver/binding-linux-riscv64-musl" "11.9.0" - "@oxc-resolver/binding-linux-s390x-gnu" "11.9.0" - "@oxc-resolver/binding-linux-x64-gnu" "11.9.0" - "@oxc-resolver/binding-linux-x64-musl" "11.9.0" - "@oxc-resolver/binding-wasm32-wasi" "11.9.0" - "@oxc-resolver/binding-win32-arm64-msvc" "11.9.0" - "@oxc-resolver/binding-win32-ia32-msvc" "11.9.0" - "@oxc-resolver/binding-win32-x64-msvc" "11.9.0" - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -"picomatch@^3 || ^4", picomatch@^4.0.1, picomatch@^4.0.2, picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -postcss@^8.5.3: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-dom@^19.1.0, react-dom@>=18: - version "19.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz" - integrity sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ== - dependencies: - scheduler "^0.27.0" - -react-icons@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz" - integrity sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw== - -react-router-dom@^7.9.4: - version "7.9.4" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.4.tgz" - integrity sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA== - dependencies: - react-router "7.9.4" - -react-router@7.9.4: - version "7.9.4" - resolved "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz" - integrity sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA== - dependencies: - cookie "^1.0.1" - set-cookie-parser "^2.6.0" - -react@*, react@^19.1.0, react@^19.2.0, react@>=18: - version "19.2.0" - resolved "https://registry.npmjs.org/react/-/react-19.2.0.tgz" - integrity sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ== - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rollup@^4.34.9: - version "4.52.4" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz" - integrity sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.52.4" - "@rollup/rollup-android-arm64" "4.52.4" - "@rollup/rollup-darwin-arm64" "4.52.4" - "@rollup/rollup-darwin-x64" "4.52.4" - "@rollup/rollup-freebsd-arm64" "4.52.4" - "@rollup/rollup-freebsd-x64" "4.52.4" - "@rollup/rollup-linux-arm-gnueabihf" "4.52.4" - "@rollup/rollup-linux-arm-musleabihf" "4.52.4" - "@rollup/rollup-linux-arm64-gnu" "4.52.4" - "@rollup/rollup-linux-arm64-musl" "4.52.4" - "@rollup/rollup-linux-loong64-gnu" "4.52.4" - "@rollup/rollup-linux-ppc64-gnu" "4.52.4" - "@rollup/rollup-linux-riscv64-gnu" "4.52.4" - "@rollup/rollup-linux-riscv64-musl" "4.52.4" - "@rollup/rollup-linux-s390x-gnu" "4.52.4" - "@rollup/rollup-linux-x64-gnu" "4.52.4" - "@rollup/rollup-linux-x64-musl" "4.52.4" - "@rollup/rollup-openharmony-arm64" "4.52.4" - "@rollup/rollup-win32-arm64-msvc" "4.52.4" - "@rollup/rollup-win32-ia32-msvc" "4.52.4" - "@rollup/rollup-win32-x64-gnu" "4.52.4" - "@rollup/rollup-win32-x64-msvc" "4.52.4" - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -scheduler@^0.27.0: - version "0.27.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz" - integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== - -set-cookie-parser@^2.6.0: - version "2.7.1" - resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz" - integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ== - -smol-toml@^1.4.1: - version "1.4.2" - resolved "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz" - integrity sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -strip-json-comments@5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.2.tgz" - integrity sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g== - -tinyglobby@^0.2.13: - version "0.2.15" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -"typescript@>=5.0.4 <7", typescript@~5.8.3: - version "5.8.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -"vite@^4 || ^5 || ^6 || ^7", vite@^6.3.5: - version "6.3.6" - resolved "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz" - integrity sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA== - dependencies: - esbuild "^0.25.0" - fdir "^6.4.4" - picomatch "^4.0.2" - postcss "^8.5.3" - rollup "^4.34.9" - tinyglobby "^0.2.13" - optionalDependencies: - fsevents "~2.3.3" - -walk-up-path@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz" - integrity sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A== - -zod@^4.1.11: - version "4.1.12" - resolved "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz" - integrity sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@biomejs/biome@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/biome@npm:1.9.4" + dependencies: + "@biomejs/cli-darwin-arm64": "npm:1.9.4" + "@biomejs/cli-darwin-x64": "npm:1.9.4" + "@biomejs/cli-linux-arm64": "npm:1.9.4" + "@biomejs/cli-linux-arm64-musl": "npm:1.9.4" + "@biomejs/cli-linux-x64": "npm:1.9.4" + "@biomejs/cli-linux-x64-musl": "npm:1.9.4" + "@biomejs/cli-win32-arm64": "npm:1.9.4" + "@biomejs/cli-win32-x64": "npm:1.9.4" + dependenciesMeta: + "@biomejs/cli-darwin-arm64": + optional: true + "@biomejs/cli-darwin-x64": + optional: true + "@biomejs/cli-linux-arm64": + optional: true + "@biomejs/cli-linux-arm64-musl": + optional: true + "@biomejs/cli-linux-x64": + optional: true + "@biomejs/cli-linux-x64-musl": + optional: true + "@biomejs/cli-win32-arm64": + optional: true + "@biomejs/cli-win32-x64": + optional: true + bin: + biome: bin/biome + checksum: 10c0/b5655c5aed9a6fffe24f7d04f15ba4444389d0e891c9ed9106fab7388ac9b4be63185852cc2a937b22940dac3e550b71032a4afd306925cfea436c33e5646b3e + languageName: node + linkType: hard + +"@biomejs/cli-darwin-arm64@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-darwin-arm64@npm:1.9.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@biomejs/cli-darwin-x64@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-darwin-x64@npm:1.9.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@biomejs/cli-linux-arm64-musl@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-linux-arm64-musl@npm:1.9.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@biomejs/cli-linux-arm64@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-linux-arm64@npm:1.9.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@biomejs/cli-linux-x64-musl@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-linux-x64-musl@npm:1.9.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@biomejs/cli-linux-x64@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-linux-x64@npm:1.9.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@biomejs/cli-win32-arm64@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-win32-arm64@npm:1.9.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@biomejs/cli-win32-x64@npm:1.9.4": + version: 1.9.4 + resolution: "@biomejs/cli-win32-x64@npm:1.9.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@emnapi/core@npm:^1.5.0": + version: 1.7.1 + resolution: "@emnapi/core@npm:1.7.1" + dependencies: + "@emnapi/wasi-threads": "npm:1.1.0" + tslib: "npm:^2.4.0" + checksum: 10c0/f3740be23440b439333e3ae3832163f60c96c4e35337f3220ceba88f36ee89a57a871d27c94eb7a9ff98a09911ed9a2089e477ab549f4d30029f8b907f84a351 + languageName: node + linkType: hard + +"@emnapi/runtime@npm:^1.5.0": + version: 1.7.1 + resolution: "@emnapi/runtime@npm:1.7.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/26b851cd3e93877d8732a985a2ebf5152325bbacc6204ef5336a47359dedcc23faeb08cdfcb8bb389b5401b3e894b882bc1a1e55b4b7c1ed1e67c991a760ddd5 + languageName: node + linkType: hard + +"@emnapi/wasi-threads@npm:1.1.0": + version: 1.1.0 + resolution: "@emnapi/wasi-threads@npm:1.1.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/aix-ppc64@npm:0.25.10" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/android-arm64@npm:0.25.10" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/android-arm@npm:0.25.10" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/android-x64@npm:0.25.10" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/darwin-arm64@npm:0.25.10" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/darwin-x64@npm:0.25.10" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/freebsd-arm64@npm:0.25.10" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/freebsd-x64@npm:0.25.10" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-arm64@npm:0.25.10" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-arm@npm:0.25.10" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-ia32@npm:0.25.10" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-loong64@npm:0.25.10" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-mips64el@npm:0.25.10" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-ppc64@npm:0.25.10" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-riscv64@npm:0.25.10" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-s390x@npm:0.25.10" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/linux-x64@npm:0.25.10" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/netbsd-arm64@npm:0.25.10" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/netbsd-x64@npm:0.25.10" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/openbsd-arm64@npm:0.25.10" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/openbsd-x64@npm:0.25.10" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/openharmony-arm64@npm:0.25.10" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/sunos-x64@npm:0.25.10" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/win32-arm64@npm:0.25.10" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/win32-ia32@npm:0.25.10" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.25.10": + version: 0.25.10 + resolution: "@esbuild/win32-x64@npm:0.25.10" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@isaacs/balanced-match@npm:^4.0.1": + version: 4.0.1 + resolution: "@isaacs/balanced-match@npm:4.0.1" + checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420 + languageName: node + linkType: hard + +"@isaacs/brace-expansion@npm:^5.0.0": + version: 5.0.0 + resolution: "@isaacs/brace-expansion@npm:5.0.0" + dependencies: + "@isaacs/balanced-match": "npm:^4.0.1" + checksum: 10c0/b4d4812f4be53afc2c5b6c545001ff7a4659af68d4484804e9d514e183d20269bb81def8682c01a22b17c4d6aed14292c8494f7d2ac664e547101c1a905aa977 + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 + languageName: node + linkType: hard + +"@napi-rs/wasm-runtime@npm:^1.0.5": + version: 1.0.7 + resolution: "@napi-rs/wasm-runtime@npm:1.0.7" + dependencies: + "@emnapi/core": "npm:^1.5.0" + "@emnapi/runtime": "npm:^1.5.0" + "@tybys/wasm-util": "npm:^0.10.1" + checksum: 10c0/2d8635498136abb49d6dbf7395b78c63422292240963bf055f307b77aeafbde57ae2c0ceaaef215601531b36d6eb92a2cdd6f5ba90ed2aa8127c27aff9c4ae55 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/agent@npm:4.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^11.2.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^5.0.0": + version: 5.0.0 + resolution: "@npmcli/fs@npm:5.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b + languageName: node + linkType: hard + +"@oxc-resolver/binding-android-arm-eabi@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.9.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxc-resolver/binding-android-arm64@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-android-arm64@npm:11.9.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-resolver/binding-darwin-arm64@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.9.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-resolver/binding-darwin-x64@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-darwin-x64@npm:11.9.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxc-resolver/binding-freebsd-x64@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.9.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.9.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.9.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-arm64-gnu@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.9.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-arm64-musl@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.9.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.9.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.9.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-riscv64-musl@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.9.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-s390x-gnu@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.9.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-x64-gnu@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.9.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-resolver/binding-linux-x64-musl@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.9.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxc-resolver/binding-wasm32-wasi@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.9.0" + dependencies: + "@napi-rs/wasm-runtime": "npm:^1.0.5" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@oxc-resolver/binding-win32-arm64-msvc@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.9.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-resolver/binding-win32-ia32-msvc@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.9.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxc-resolver/binding-win32-x64-msvc@npm:11.9.0": + version: 11.9.0 + resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.9.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rolldown/pluginutils@npm:1.0.0-beta.27": + version: 1.0.0-beta.27 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.27" + checksum: 10c0/9658f235b345201d4f6bfb1f32da9754ca164f892d1cb68154fe5f53c1df42bd675ecd409836dff46884a7847d6c00bdc38af870f7c81e05bba5c2645eb4ab9c + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.52.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-android-arm64@npm:4.52.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.52.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.52.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.52.4" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-freebsd-x64@npm:4.52.4" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.52.4" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.52.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.52.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.52.4" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.52.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.52.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.52.4" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.52.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.52.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.52.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.52.4" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.52.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.52.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.52.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.52.4": + version: 4.52.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.52.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-darwin-arm64@npm:1.13.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-darwin-x64@npm:1.13.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.13.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-linux-arm64-gnu@npm:1.13.5" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-linux-arm64-musl@npm:1.13.5" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-linux-x64-gnu@npm:1.13.5" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-linux-x64-musl@npm:1.13.5" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-win32-arm64-msvc@npm:1.13.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-win32-ia32-msvc@npm:1.13.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.13.5": + version: 1.13.5 + resolution: "@swc/core-win32-x64-msvc@npm:1.13.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.12.11": + version: 1.13.5 + resolution: "@swc/core@npm:1.13.5" + dependencies: + "@swc/core-darwin-arm64": "npm:1.13.5" + "@swc/core-darwin-x64": "npm:1.13.5" + "@swc/core-linux-arm-gnueabihf": "npm:1.13.5" + "@swc/core-linux-arm64-gnu": "npm:1.13.5" + "@swc/core-linux-arm64-musl": "npm:1.13.5" + "@swc/core-linux-x64-gnu": "npm:1.13.5" + "@swc/core-linux-x64-musl": "npm:1.13.5" + "@swc/core-win32-arm64-msvc": "npm:1.13.5" + "@swc/core-win32-ia32-msvc": "npm:1.13.5" + "@swc/core-win32-x64-msvc": "npm:1.13.5" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.24" + peerDependencies: + "@swc/helpers": ">=0.5.17" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10c0/26efc58d2b154050a4d75b215007e2780fc02ccdd35168746e818ef58009201878d5fbe0e074ed2902858c447fd8806e52c03dd05c20ba8501573f57ef34c3be + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.24": + version: 0.1.25 + resolution: "@swc/types@npm:0.1.25" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/847a5b20b131281f89d640a7ed4887fb65724807d53d334b230e84b98c21097aa10cd28a074f9ed287a6ce109e443dd4bafbe7dcfb62333d7806c4ea3e7f8aca + languageName: node + linkType: hard + +"@tybys/wasm-util@npm:^0.10.1": + version: 0.10.1 + resolution: "@tybys/wasm-util@npm:0.10.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8 + languageName: node + linkType: hard + +"@types/estree@npm:1.0.8": + version: 1.0.8 + resolution: "@types/estree@npm:1.0.8" + checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 + languageName: node + linkType: hard + +"@types/node@npm:^22.15.29": + version: 22.18.9 + resolution: "@types/node@npm:22.18.9" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10c0/0d342e17e0b36a4475ba36f0a0b9d7e28cf85ae44b1ea1f218c8cffe8c9519820eef9b97c171b0b93d8066c8710d7660e31660678bac0842655dff2118a23248 + languageName: node + linkType: hard + +"@types/react-dom@npm:^19.1.2": + version: 19.2.1 + resolution: "@types/react-dom@npm:19.2.1" + peerDependencies: + "@types/react": ^19.2.0 + checksum: 10c0/0dbbc5b7ecd74681bfac95a413133b26118a70b8840748277abafa47e5c7a037beae6a660e6a21fb53f5cbdb0b2d33e117ea7bbd976a888c298392a8a96bc68f + languageName: node + linkType: hard + +"@types/react@npm:^19.1.2": + version: 19.2.2 + resolution: "@types/react@npm:19.2.2" + dependencies: + csstype: "npm:^3.0.2" + checksum: 10c0/f830b1204aca4634ce3c6cb3477b5d3d066b80a4dd832a4ee0069acb504b6debd2416548a43a11c1407c12bc60e2dc6cf362934a18fe75fe06a69c0a98cba8ab + languageName: node + linkType: hard + +"@vitejs/plugin-react-swc@npm:^3.9.0": + version: 3.11.0 + resolution: "@vitejs/plugin-react-swc@npm:3.11.0" + dependencies: + "@rolldown/pluginutils": "npm:1.0.0-beta.27" + "@swc/core": "npm:^1.12.11" + peerDependencies: + vite: ^4 || ^5 || ^6 || ^7 + checksum: 10c0/0d12ee81f8c8acb74b35e7acfc45d23ecc2714ab3a0f6060e4bd900a6a739dd5a9be9c6bc842388f3c406f475f2a83e7ff3ade04ec6df9172faa1242e4faa424 + languageName: node + linkType: hard + +"abbrev@npm:^4.0.0": + version: 4.0.0 + resolution: "abbrev@npm:4.0.0" + checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5 + languageName: node + linkType: hard + +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.4 + resolution: "agent-base@npm:7.1.4" + checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"axios@npm:^1.12.2": + version: 1.12.2 + resolution: "axios@npm:1.12.2" + dependencies: + follow-redirects: "npm:^1.15.6" + form-data: "npm:^4.0.4" + proxy-from-env: "npm:^1.1.0" + checksum: 10c0/80b063e318cf05cd33a4d991cea0162f3573481946f9129efb7766f38fde4c061c34f41a93a9f9521f02b7c9565ccbc197c099b0186543ac84a24580017adfed + languageName: node + linkType: hard + +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 + languageName: node + linkType: hard + +"cacache@npm:^20.0.1": + version: 20.0.3 + resolution: "cacache@npm:20.0.3" + dependencies: + "@npmcli/fs": "npm:^5.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^13.0.0" + lru-cache: "npm:^11.1.0" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^13.0.0" + unique-filename: "npm:^5.0.0" + checksum: 10c0/c7da1ca694d20e8f8aedabd21dc11518f809a7d2b59aa76a1fc655db5a9e62379e465c157ddd2afe34b19230808882288effa6911b2de26a088a6d5645123462 + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"cookie@npm:^1.0.1": + version: 1.0.2 + resolution: "cookie@npm:1.0.2" + checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.3.4": + version: 4.4.3 + resolution: "debug@npm:4.4.3" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af + languageName: node + linkType: hard + +"esbuild@npm:^0.25.0": + version: 0.25.10 + resolution: "esbuild@npm:0.25.10" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.10" + "@esbuild/android-arm": "npm:0.25.10" + "@esbuild/android-arm64": "npm:0.25.10" + "@esbuild/android-x64": "npm:0.25.10" + "@esbuild/darwin-arm64": "npm:0.25.10" + "@esbuild/darwin-x64": "npm:0.25.10" + "@esbuild/freebsd-arm64": "npm:0.25.10" + "@esbuild/freebsd-x64": "npm:0.25.10" + "@esbuild/linux-arm": "npm:0.25.10" + "@esbuild/linux-arm64": "npm:0.25.10" + "@esbuild/linux-ia32": "npm:0.25.10" + "@esbuild/linux-loong64": "npm:0.25.10" + "@esbuild/linux-mips64el": "npm:0.25.10" + "@esbuild/linux-ppc64": "npm:0.25.10" + "@esbuild/linux-riscv64": "npm:0.25.10" + "@esbuild/linux-s390x": "npm:0.25.10" + "@esbuild/linux-x64": "npm:0.25.10" + "@esbuild/netbsd-arm64": "npm:0.25.10" + "@esbuild/netbsd-x64": "npm:0.25.10" + "@esbuild/openbsd-arm64": "npm:0.25.10" + "@esbuild/openbsd-x64": "npm:0.25.10" + "@esbuild/openharmony-arm64": "npm:0.25.10" + "@esbuild/sunos-x64": "npm:0.25.10" + "@esbuild/win32-arm64": "npm:0.25.10" + "@esbuild/win32-ia32": "npm:0.25.10" + "@esbuild/win32-x64": "npm:0.25.10" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/8ee5fdd43ed0d4092ce7f41577c63147f54049d5617763f0549c638bbe939e8adaa8f1a2728adb63417eb11df51956b7b0d8eb88ee08c27ad1d42960256158fa + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.3 + resolution: "exponential-backoff@npm:3.1.3" + checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267 + languageName: node + linkType: hard + +"fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.8" + checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.19.1 + resolution: "fastq@npm:1.19.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630 + languageName: node + linkType: hard + +"fd-package-json@npm:^2.0.0": + version: 2.0.0 + resolution: "fd-package-json@npm:2.0.0" + dependencies: + walk-up-path: "npm:^4.0.0" + checksum: 10c0/a0a48745257bc09c939486608dad9f2ced238f0c64266222cc881618ed4c8f6aa0ccfe45a1e6d4f9ce828509e8d617cec60e2a114851bebb1ff4886dc5ed5112 + languageName: node + linkType: hard + +"fdir@npm:^6.4.4, fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.15.6": + version: 1.15.11 + resolution: "follow-redirects@npm:1.15.11" + peerDependenciesMeta: + debug: + optional: true + checksum: 10c0/d301f430542520a54058d4aeeb453233c564aaccac835d29d15e050beb33f339ad67d9bddbce01739c5dc46a6716dbe3d9d0d5134b1ca203effa11a7ef092343 + languageName: node + linkType: hard + +"form-data@npm:^4.0.4": + version: 4.0.4 + resolution: "form-data@npm:4.0.4" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + hasown: "npm:^2.0.2" + mime-types: "npm:^2.1.12" + checksum: 10c0/373525a9a034b9d57073e55eab79e501a714ffac02e7a9b01be1c820780652b16e4101819785e1e18f8d98f0aee866cc654d660a435c378e16a72f2e7cac9695 + languageName: node + linkType: hard + +"formatly@npm:^0.3.0": + version: 0.3.0 + resolution: "formatly@npm:0.3.0" + dependencies: + fd-package-json: "npm:^2.0.0" + bin: + formatly: bin/index.mjs + checksum: 10c0/ef9dbd3cdaee649e9604ea060d8d62d8131eb81117634336592ee2193fc7c98a3f1f1b5d09a045dbd36287ba88edf868ef179d39fbda2f34fbe2be70c42dd014 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.2.6": + version: 1.3.0 + resolution: "get-intrinsic@npm:1.3.0" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10c0/52c81808af9a8130f581e6a6a83e1ba4a9f703359e7a438d1369a5267a25412322f03dcbd7c549edaef0b6214a0630a28511d7df0130c93cfd380f4fa0b5b66a + languageName: node + linkType: hard + +"get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + languageName: node + linkType: hard + +"glob@npm:^13.0.0": + version: 13.0.0 + resolution: "glob@npm:13.0.0" + dependencies: + minimatch: "npm:^10.1.1" + minipass: "npm:^7.1.2" + path-scurry: "npm:^2.0.0" + checksum: 10c0/8e2f5821f3f7c312dd102e23a15b80c79e0837a9872784293ba2e15ec73b3f3749a49a42a31bfcb4e52c84820a474e92331c2eebf18819d20308f5c33876630a + languageName: node + linkType: hard + +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c + languageName: node + linkType: hard + +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"ip-address@npm:^10.0.1": + version: 10.1.0 + resolution: "ip-address@npm:10.1.0" + checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"jiti@npm:^2.6.0": + version: 2.6.1 + resolution: "jiti@npm:2.6.1" + bin: + jiti: lib/jiti-cli.mjs + checksum: 10c0/79b2e96a8e623f66c1b703b98ec1b8be4500e1d217e09b09e343471bbb9c105381b83edbb979d01cef18318cc45ce6e153571b6c83122170eefa531c64b6789b + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + +"knip@npm:^5.59.1": + version: 5.64.3 + resolution: "knip@npm:5.64.3" + dependencies: + "@nodelib/fs.walk": "npm:^1.2.3" + fast-glob: "npm:^3.3.3" + formatly: "npm:^0.3.0" + jiti: "npm:^2.6.0" + js-yaml: "npm:^4.1.0" + minimist: "npm:^1.2.8" + oxc-resolver: "npm:^11.8.3" + picocolors: "npm:^1.1.1" + picomatch: "npm:^4.0.1" + smol-toml: "npm:^1.4.1" + strip-json-comments: "npm:5.0.2" + zod: "npm:^4.1.11" + peerDependencies: + "@types/node": ">=18" + typescript: ">=5.0.4 <7" + bin: + knip: bin/knip.js + knip-bun: bin/knip-bun.js + checksum: 10c0/fbc991ef423a05557ed2d1fba47ad78431400f0a6c2acea14d29188f6d580cc2bd82a5412566032f0bd36e1b8dd5578d5caad44553b0e5de275425244493c791 + languageName: node + linkType: hard + +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": + version: 11.2.2 + resolution: "lru-cache@npm:11.2.2" + checksum: 10c0/72d7831bbebc85e2bdefe01047ee5584db69d641c48d7a509e86f66f6ee111b30af7ec3bd68a967d47b69a4b1fa8bbf3872630bd06a63b6735e6f0a5f1c8e83d + languageName: node + linkType: hard + +"make-fetch-happen@npm:^15.0.0": + version: 15.0.3 + resolution: "make-fetch-happen@npm:15.0.3" + dependencies: + "@npmcli/agent": "npm:^4.0.0" + cacache: "npm:^20.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^5.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^6.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^13.0.0" + checksum: 10c0/525f74915660be60b616bcbd267c4a5b59481b073ba125e45c9c3a041bb1a47a2bd0ae79d028eb6f5f95bf9851a4158423f5068539c3093621abb64027e8e461 + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f + languageName: node + linkType: hard + +"merge2@npm:^1.3.0": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb + languageName: node + linkType: hard + +"micromatch@npm:^4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"minimatch@npm:^10.1.1": + version: 10.1.1 + resolution: "minimatch@npm:10.1.1" + dependencies: + "@isaacs/brace-expansion": "npm:^5.0.0" + checksum: 10c0/c85d44821c71973d636091fddbfbffe62370f5ee3caf0241c5b60c18cd289e916200acb2361b7e987558cd06896d153e25d505db9fc1e43e6b4b6752e2702902 + languageName: node + linkType: hard + +"minimist@npm:^1.2.8": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass-fetch@npm:5.0.0" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/9443aab5feab190972f84b64116e54e58dd87a58e62399cae0a4a7461b80568281039b7c3a38ba96453431ebc799d1e26999e548540156216729a4967cd5ef06 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.11": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 12.1.0 + resolution: "node-gyp@npm:12.1.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^15.0.0" + nopt: "npm:^9.0.0" + proc-log: "npm:^6.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.5.2" + tinyglobby: "npm:^0.2.12" + which: "npm:^6.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/f43efea8aaf0beb6b2f6184e533edad779b2ae38062953e21951f46221dd104006cc574154f2ad4a135467a5aae92c49e84ef289311a82e08481c5df0e8dc495 + languageName: node + linkType: hard + +"nopt@npm:^9.0.0": + version: 9.0.0 + resolution: "nopt@npm:9.0.0" + dependencies: + abbrev: "npm:^4.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd + languageName: node + linkType: hard + +"oxc-resolver@npm:^11.8.3": + version: 11.9.0 + resolution: "oxc-resolver@npm:11.9.0" + dependencies: + "@oxc-resolver/binding-android-arm-eabi": "npm:11.9.0" + "@oxc-resolver/binding-android-arm64": "npm:11.9.0" + "@oxc-resolver/binding-darwin-arm64": "npm:11.9.0" + "@oxc-resolver/binding-darwin-x64": "npm:11.9.0" + "@oxc-resolver/binding-freebsd-x64": "npm:11.9.0" + "@oxc-resolver/binding-linux-arm-gnueabihf": "npm:11.9.0" + "@oxc-resolver/binding-linux-arm-musleabihf": "npm:11.9.0" + "@oxc-resolver/binding-linux-arm64-gnu": "npm:11.9.0" + "@oxc-resolver/binding-linux-arm64-musl": "npm:11.9.0" + "@oxc-resolver/binding-linux-ppc64-gnu": "npm:11.9.0" + "@oxc-resolver/binding-linux-riscv64-gnu": "npm:11.9.0" + "@oxc-resolver/binding-linux-riscv64-musl": "npm:11.9.0" + "@oxc-resolver/binding-linux-s390x-gnu": "npm:11.9.0" + "@oxc-resolver/binding-linux-x64-gnu": "npm:11.9.0" + "@oxc-resolver/binding-linux-x64-musl": "npm:11.9.0" + "@oxc-resolver/binding-wasm32-wasi": "npm:11.9.0" + "@oxc-resolver/binding-win32-arm64-msvc": "npm:11.9.0" + "@oxc-resolver/binding-win32-ia32-msvc": "npm:11.9.0" + "@oxc-resolver/binding-win32-x64-msvc": "npm:11.9.0" + dependenciesMeta: + "@oxc-resolver/binding-android-arm-eabi": + optional: true + "@oxc-resolver/binding-android-arm64": + optional: true + "@oxc-resolver/binding-darwin-arm64": + optional: true + "@oxc-resolver/binding-darwin-x64": + optional: true + "@oxc-resolver/binding-freebsd-x64": + optional: true + "@oxc-resolver/binding-linux-arm-gnueabihf": + optional: true + "@oxc-resolver/binding-linux-arm-musleabihf": + optional: true + "@oxc-resolver/binding-linux-arm64-gnu": + optional: true + "@oxc-resolver/binding-linux-arm64-musl": + optional: true + "@oxc-resolver/binding-linux-ppc64-gnu": + optional: true + "@oxc-resolver/binding-linux-riscv64-gnu": + optional: true + "@oxc-resolver/binding-linux-riscv64-musl": + optional: true + "@oxc-resolver/binding-linux-s390x-gnu": + optional: true + "@oxc-resolver/binding-linux-x64-gnu": + optional: true + "@oxc-resolver/binding-linux-x64-musl": + optional: true + "@oxc-resolver/binding-wasm32-wasi": + optional: true + "@oxc-resolver/binding-win32-arm64-msvc": + optional: true + "@oxc-resolver/binding-win32-ia32-msvc": + optional: true + "@oxc-resolver/binding-win32-x64-msvc": + optional: true + checksum: 10c0/5a6c3381dd190c003cf07e8020684e9818ffd7fb4e75f4ec171fcc537037c55a28a84980c4949b209ba4f29d7c93aaa57a652287bede5d1dc31d58ebda123431 + languageName: node + linkType: hard + +"p-map@npm:^7.0.2": + version: 7.0.4 + resolution: "p-map@npm:7.0.4" + checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd + languageName: node + linkType: hard + +"path-scurry@npm:^2.0.0": + version: 2.0.1 + resolution: "path-scurry@npm:2.0.1" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 10c0/2a16ed0e81fbc43513e245aa5763354e25e787dab0d539581a6c3f0f967461a159ed6236b2559de23aa5b88e7dc32b469b6c47568833dd142a4b24b4f5cd2620 + languageName: node + linkType: hard + +"picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + +"picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"picomatch@npm:^4.0.1, picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": + version: 4.0.3 + resolution: "picomatch@npm:4.0.3" + checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 + languageName: node + linkType: hard + +"postcss@npm:^8.5.3": + version: 8.5.6 + resolution: "postcss@npm:8.5.6" + dependencies: + nanoid: "npm:^3.3.11" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 + languageName: node + linkType: hard + +"proc-log@npm:^6.0.0": + version: 6.0.0 + resolution: "proc-log@npm:6.0.0" + checksum: 10c0/40c5e2b4c55e395a3bd72e38cba9c26e58598a1f4844fa6a115716d5231a0919f46aa8e351147035d91583ad39a794593615078c948bc001fe3beb99276be776 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 + languageName: node + linkType: hard + +"react-dom@npm:^19.1.0": + version: 19.2.0 + resolution: "react-dom@npm:19.2.0" + dependencies: + scheduler: "npm:^0.27.0" + peerDependencies: + react: ^19.2.0 + checksum: 10c0/fa2cae05248d01288e91523b590ce4e7635b1e13f1344e225f850d722a8da037bf0782f63b1c1d46353334e0c696909b82e582f8cad607948fde6f7646cc18d9 + languageName: node + linkType: hard + +"react-icons@npm:^5.5.0": + version: 5.5.0 + resolution: "react-icons@npm:5.5.0" + peerDependencies: + react: "*" + checksum: 10c0/a24309bfc993c19cbcbfc928157e53a137851822779977b9588f6dd41ffc4d11ebc98b447f4039b0d309a858f0a42980f6bfb4477fb19f9f2d1bc2e190fcf79c + languageName: node + linkType: hard + +"react-router-dom@npm:^7.9.4": + version: 7.9.4 + resolution: "react-router-dom@npm:7.9.4" + dependencies: + react-router: "npm:7.9.4" + peerDependencies: + react: ">=18" + react-dom: ">=18" + checksum: 10c0/03979ef887411230188d8eb7e001379c164f28235d5e3589f9192f73edae4c6e59a155aec0bcdcb84b3fa4e72caff0c38f4709ffb2e4cdca4cb8a8ab1c60dd35 + languageName: node + linkType: hard + +"react-router@npm:7.9.4": + version: 7.9.4 + resolution: "react-router@npm:7.9.4" + dependencies: + cookie: "npm:^1.0.1" + set-cookie-parser: "npm:^2.6.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 10c0/c7556b752fa88d2bff600ce3533c962dcbe9ca9bf71f9c4b8e8a21f904856990bcb284844d53eb1dd486adaa7567c7ecf0deb3e518262269ea1ea89bea246be4 + languageName: node + linkType: hard + +"react@npm:^19.1.0": + version: 19.2.0 + resolution: "react@npm:19.2.0" + checksum: 10c0/1b6d64eacb9324725bfe1e7860cb7a6b8a34bc89a482920765ebff5c10578eb487e6b46b2f0df263bd27a25edbdae2c45e5ea5d81ae61404301c1a7192c38330 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.1.0 + resolution: "reusify@npm:1.1.0" + checksum: 10c0/4eff0d4a5f9383566c7d7ec437b671cc51b25963bd61bf127c3f3d3f68e44a026d99b8d2f1ad344afff8d278a8fe70a8ea092650a716d22287e8bef7126bb2fa + languageName: node + linkType: hard + +"rollup@npm:^4.34.9": + version: 4.52.4 + resolution: "rollup@npm:4.52.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.52.4" + "@rollup/rollup-android-arm64": "npm:4.52.4" + "@rollup/rollup-darwin-arm64": "npm:4.52.4" + "@rollup/rollup-darwin-x64": "npm:4.52.4" + "@rollup/rollup-freebsd-arm64": "npm:4.52.4" + "@rollup/rollup-freebsd-x64": "npm:4.52.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.52.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.52.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.52.4" + "@rollup/rollup-linux-loong64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-riscv64-musl": "npm:4.52.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.52.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.52.4" + "@rollup/rollup-linux-x64-musl": "npm:4.52.4" + "@rollup/rollup-openharmony-arm64": "npm:4.52.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.52.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.52.4" + "@rollup/rollup-win32-x64-gnu": "npm:4.52.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.52.4" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/aaec0f57e887d4fb37d152f93cf7133954eec79d11643e95de768ec9a377f08793b1745c648ca65a0dcc6c795c4d9ca398724d013e5745de270e88a543782aea + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"scheduler@npm:^0.27.0": + version: 0.27.0 + resolution: "scheduler@npm:0.27.0" + checksum: 10c0/4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452 + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.7.3 + resolution: "semver@npm:7.7.3" + bin: + semver: bin/semver.js + checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e + languageName: node + linkType: hard + +"set-cookie-parser@npm:^2.6.0": + version: 2.7.1 + resolution: "set-cookie-parser@npm:2.7.1" + checksum: 10c0/060c198c4c92547ac15988256f445eae523f57f2ceefeccf52d30d75dedf6bff22b9c26f756bd44e8e560d44ff4ab2130b178bd2e52ef5571bf7be3bd7632d9a + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"smol-toml@npm:^1.4.1": + version: 1.4.2 + resolution: "smol-toml@npm:1.4.2" + checksum: 10c0/e01e5f249b1ad852d09aa22f338a6cb3896ac35c92bf0d35744ce1b1e2f4b67901d4a0e886027617a2a8aa9f1a6c67c919c41b544c4aec137b6ebe042ca10d36 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.7 + resolution: "socks@npm:2.8.7" + dependencies: + ip-address: "npm:^10.0.1" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2 + languageName: node + linkType: hard + +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + +"ssri@npm:^13.0.0": + version: 13.0.0 + resolution: "ssri@npm:13.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/405f3a531cd98b013cecb355d63555dca42fd12c7bc6671738aaa9a82882ff41cdf0ef9a2b734ca4f9a760338f114c29d01d9238a65db3ccac27929bd6e6d4b2 + languageName: node + linkType: hard + +"strip-json-comments@npm:5.0.2": + version: 5.0.2 + resolution: "strip-json-comments@npm:5.0.2" + checksum: 10c0/e9841b8face78a01b0eb66f81e0a3419186a96f1d26817a5e1f5260b0631c10e0a7f711dddc5988edf599e5c079e4dd6e91defd21523e556636ba5679786f5ac + languageName: node + linkType: hard + +"tar@npm:^7.5.2": + version: 7.5.2 + resolution: "tar@npm:7.5.2" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/a7d8b801139b52f93a7e34830db0de54c5aa45487c7cb551f6f3d44a112c67f1cb8ffdae856b05fd4f17b1749911f1c26f1e3a23bbe0279e17fd96077f13f467 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"tslib@npm:^2.4.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"typescript@npm:~5.8.3": + version: 5.8.3 + resolution: "typescript@npm:5.8.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/5f8bb01196e542e64d44db3d16ee0e4063ce4f3e3966df6005f2588e86d91c03e1fb131c2581baf0fb65ee79669eea6e161cd448178986587e9f6844446dbb48 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A~5.8.3#optional!builtin": + version: 5.8.3 + resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb + languageName: node + linkType: hard + +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04 + languageName: node + linkType: hard + +"unique-filename@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-filename@npm:5.0.0" + dependencies: + unique-slug: "npm:^6.0.0" + checksum: 10c0/afb897e9cf4c2fb622ea716f7c2bb462001928fc5f437972213afdf1cc32101a230c0f1e9d96fc91ee5185eca0f2feb34127145874975f347be52eb91d6ccc2c + languageName: node + linkType: hard + +"unique-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "unique-slug@npm:6.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/da7ade4cb04eb33ad0499861f82fe95ce9c7c878b7139dc54d140ecfb6a6541c18a5c8dac16188b8b379fe62c0c1f1b710814baac910cde5f4fec06212126c6a + languageName: node + linkType: hard + +"vite@npm:^6.3.5": + version: 6.3.6 + resolution: "vite@npm:6.3.6" + dependencies: + esbuild: "npm:^0.25.0" + fdir: "npm:^6.4.4" + fsevents: "npm:~2.3.3" + picomatch: "npm:^4.0.2" + postcss: "npm:^8.5.3" + rollup: "npm:^4.34.9" + tinyglobby: "npm:^0.2.13" + peerDependencies: + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/add701f1e72596c002275782e38d0389ab400c1be330c93a3009804d62db68097a936ca1c53c3301df3aaacfe5e328eab547060f31ef9c49a277ae50df6ad4fb + languageName: node + linkType: hard + +"wafflestudio-2025-fe-seminar-template@workspace:.": + version: 0.0.0-use.local + resolution: "wafflestudio-2025-fe-seminar-template@workspace:." + dependencies: + "@biomejs/biome": "npm:1.9.4" + "@types/node": "npm:^22.15.29" + "@types/react": "npm:^19.1.2" + "@types/react-dom": "npm:^19.1.2" + "@vitejs/plugin-react-swc": "npm:^3.9.0" + axios: "npm:^1.12.2" + knip: "npm:^5.59.1" + react: "npm:^19.1.0" + react-dom: "npm:^19.1.0" + react-icons: "npm:^5.5.0" + react-router-dom: "npm:^7.9.4" + typescript: "npm:~5.8.3" + vite: "npm:^6.3.5" + languageName: unknown + linkType: soft + +"walk-up-path@npm:^4.0.0": + version: 4.0.0 + resolution: "walk-up-path@npm:4.0.0" + checksum: 10c0/fabe344f91387d1d41df230af962ef18bf703dd4178006d55cd6412caacd187b54440002d4d53a982d4f7f0455567dcffb6d3884533c8b2268928eca3ebd8a19 + languageName: node + linkType: hard + +"which@npm:^6.0.0": + version: 6.0.0 + resolution: "which@npm:6.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/fe9d6463fe44a76232bb6e3b3181922c87510a5b250a98f1e43a69c99c079b3f42ddeca7e03d3e5f2241bf2d334f5a7657cfa868b97c109f3870625842f4cc15 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 + languageName: node + linkType: hard + +"zod@npm:^4.1.11": + version: 4.1.12 + resolution: "zod@npm:4.1.12" + checksum: 10c0/b64c1feb19e99d77075261eaf613e0b2be4dfcd3551eff65ad8b4f2a079b61e379854d066f7d447491fcf193f45babd8095551a9d47973d30b46b6d8e2c46774 + languageName: node + linkType: hard From 8287a50fb2a5f97540325f54309b59da42b1507d Mon Sep 17 00:00:00 2001 From: Seoyeon HEO Date: Sat, 22 Nov 2025 18:32:56 +0900 Subject: [PATCH 15/18] feat: optional inputs --- src/components/CreateProfile.tsx | 283 +++++++++++++++++++++++++++++-- src/components/Profile.tsx | 11 +- src/styles/Profile.module.css | 236 ++++++++++++++++++-------- 3 files changed, 440 insertions(+), 90 deletions(-) diff --git a/src/components/CreateProfile.tsx b/src/components/CreateProfile.tsx index cb13cbf..7f00ef0 100644 --- a/src/components/CreateProfile.tsx +++ b/src/components/CreateProfile.tsx @@ -33,6 +33,24 @@ const CreateProfile = () => { ); const [positionsOk, setPositionsOk] = useState(true); + const [stacks, setStacks] = useState( + profile?.stacks?.length ? profile.stacks : [] + ); + const [stackInput, setStackInput] = useState(''); + const [stacksOk, setStacksOk] = useState(true); + + const [slogan, setSlogan] = useState(profile?.slogan ?? ''); + const [sloganOk, setSloganOk] = useState(true); + + const [explanation, setExplanation] = useState(profile?.explanation ?? ''); + const [explanationOk, setExplanationOk] = useState(true); + + type LinkItem = { description: string; link: string }; + const [links, setLinks] = useState( + profile?.links?.length ? profile.links : [{ description: '', link: '' }] + ); + const [linksOk, setLinksOk] = useState(true); + /** * when the index'th major input is edited * @param index @@ -133,6 +151,7 @@ const CreateProfile = () => { checkCV(); }, [checkCV]); + /** POSITIONS */ const handlePositionChange = (index: number, value: string) => { // 100자 제한 if (value.length > 100) value = value.slice(0, 100); @@ -158,9 +177,108 @@ const CreateProfile = () => { checkPositionsOk(); }, [checkPositionsOk]); + /** STACK */ + const addStack = (raw: string) => { + const tag = raw.trim(); + if (!tag) return; + + if (tag.length > 30) { + setStacksOk(false); + return; + } + + if (stacks.includes(tag)) { + setStacksOk(false); + return; + } + + setStacks((prev) => [...prev, tag]); + setStackInput(''); + setStacksOk(true); + }; + + const removeStack = (tag: string) => { + setStacks((prev) => prev.filter((t) => t !== tag)); + }; + + const onStackKeyDown = (e: React.KeyboardEvent) => { + if (e.key === 'Enter') { + e.preventDefault(); + addStack(stackInput); + } + }; + + useEffect(() => { + // validate whether stack exists + const ok = + stacks.length === 0 || + (new Set(stacks).size === stacks.length && + stacks.every((t) => t.length <= 30)); + setStacksOk(ok); + }, [stacks]); + + /** + * SLOGAN + */ + useEffect(() => { + setSloganOk(slogan.length <= 100); + }, [slogan]); + + /** + * INTRO + */ + useEffect(() => { + setExplanationOk(explanation.length <= 5000); + }, [explanation]); + + /** + * LINK + */ + const handleLinkChange = ( + index: number, + field: keyof LinkItem, + value: string + ) => { + if (field === 'description' && value.length > 100) { + value = value.slice(0, 100); + } + setLinks((prev) => + prev.map((item, i) => (i === index ? { ...item, [field]: value } : item)) + ); + }; + + const addLink = () => { + if (links.length >= 5) return; + setLinks((prev) => [...prev, { description: '', link: '' }]); + }; + + const deleteLink = (index: number) => { + setLinks((prev) => prev.filter((_, i) => i !== index)); + }; + + const checkLinksOk = useCallback(() => { + const filled = links.filter((l) => l.description.trim() || l.link.trim()); + + const descOk = filled.every((l) => l.description.trim().length <= 100); + + const httpsOk = filled.every((l) => + l.link.trim() === '' ? false : l.link.trim().startsWith('https://') + ); + + const linkStrings = filled.map((l) => l.link.trim()); + const noDup = new Set(linkStrings).size === linkStrings.length; + + // ok even if nothing + setLinksOk(filled.length === 0 || (descOk && httpsOk && noDup)); + }, [links]); + + useEffect(() => { + checkLinksOk(); + }, [checkLinksOk]); + const checkOptionalOk = useCallback(() => { - return positionsOk; - }, [positionsOk]); + return positionsOk && stacksOk && sloganOk && explanationOk && linksOk; + }, [positionsOk, stacksOk, sloganOk, explanationOk, linksOk]); /** * consider whether required inputs are not empty & are valid @@ -205,7 +323,14 @@ const CreateProfile = () => { const enrollYear: number = parseInt(classNumber) + 2000; const department: string = majors.filter(Boolean).join(','); const cv: string = `static/private/CV/${generateRandomString()}_${getYYMMDD()}/${cvFile.name}.pdf`; + const cleanedPositions = positions.map((p) => p.trim()).filter(Boolean); + const cleanedLinks = links + .filter((l) => l.description.trim() || l.link.trim()) + .map((l) => ({ + description: l.description.trim(), + link: l.link.trim(), + })); // file await apiClient.put('/api/applicant/me', { @@ -213,10 +338,10 @@ const CreateProfile = () => { department, positions: cleanedPositions, cvKey: cv, - // slogan, - // explanation - // stacks - // links + stacks, + slogan: slogan.trim() || null, + explanation: explanation.trim() || null, + links: cleanedLinks, }); setCanSave(true); navigate('/mypage'); @@ -235,18 +360,18 @@ const CreateProfile = () => { }; return ( -
+

{profile ? '프로필 수정' : '프로필 생성'}

필수 작성 항목

아래 항목은 필수로 작성해주세요. -
+
학번 * -
+
{ )}
-
+
학과 * {majors.map((major, idx) => ( -
+
{ )}
-
+
이력서 * @@ -350,10 +475,10 @@ const CreateProfile = () => { 아래 항목은 필수로 작성하지 않아도 괜찮지만, 작성해 주시면 채용 담당자가 지원자의 강점을 이해하는 데 더욱 도움이 되어요. -
+
희망 직무 {positions.map((pos, idx) => ( -
+
{

)}
-
+ +
+ 기술 스택 + +
+ {stacks.map((tag) => ( + + {tag} + + + ))} +
+ + setStackInput(e.target.value)} + onKeyUp={onStackKeyDown} + /> + + {!stacksOk && ( +

+ 기존 태그와 중복되지 않는 30자 이하의 기술 스택을 입력해주세요. +

+ )} +
+ +
+ 한 줄 소개 + +